From 9ff7ec96d168911317da22cc3edced6f500eed4a Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Mon, 24 Feb 2025 10:44:13 +0200 Subject: [PATCH 01/34] [desktop] Tauri update v2.2.5 --- desktop/angular/package-lock.json | 25639 ++++++---------- desktop/angular/package.json | 7 +- .../portmaster-api/src/lib/portapi.service.ts | 2 +- desktop/tauri/src-tauri/Cargo.lock | 6826 +--- desktop/tauri/src-tauri/Cargo.toml | 21 +- .../src-tauri/gen/schemas/acl-manifests.json | 2 +- .../src-tauri/gen/schemas/desktop-schema.json | 50 + .../src-tauri/gen/schemas/windows-schema.json | 50 + 8 files changed, 9996 insertions(+), 22601 deletions(-) diff --git a/desktop/angular/package-lock.json b/desktop/angular/package-lock.json index 8bf3faab..08606cf0 100644 --- a/desktop/angular/package-lock.json +++ b/desktop/angular/package-lock.json @@ -1,7 +1,7 @@ { "name": "portmaster", "version": "0.8.11", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -70,6 +70,7 @@ "@types/whatwg-encoding": "^2.0.3", "@typescript-eslint/eslint-plugin": "^5.59.6", "@typescript-eslint/parser": "^5.59.6", + "cross-env": "^7.0.3", "eslint": "^8.40.0", "jasmine-core": "^5.0.0", "jasmine-spec-reporter": "^7.0.0", @@ -88,17 +89,10 @@ "zip-a-folder": "^1.1.5" } }, - "node_modules/@adobe/css-tools": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", - "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, "license": "MIT", "engines": { @@ -110,6 +104,8 @@ }, "node_modules/@ampproject/remapping": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -120,7 +116,9 @@ } }, "node_modules/@angular-builders/custom-webpack": { - "version": "16.0.0-beta.1", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-builders/custom-webpack/-/custom-webpack-16.0.1.tgz", + "integrity": "sha512-C6INC8UOYDcp8LJwNhE0m66yp+nZX50JdgGI8oRn7fqw3gO58qhDgXrR/8BCrSeC8eOx8WxSuvBJ6u+9dozhyw==", "dev": true, "license": "MIT", "dependencies": { @@ -139,272 +137,14 @@ "@angular/compiler-cli": "^16.0.0" } }, - "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/build-angular": { - "version": "16.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1600.2", - "@angular-devkit/build-webpack": "0.1600.2", - "@angular-devkit/core": "16.0.2", - "@babel/core": "7.21.4", - "@babel/generator": "7.21.4", - "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/helper-split-export-declaration": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.21.4", - "@babel/preset-env": "7.21.4", - "@babel/runtime": "7.21.0", - "@babel/template": "7.20.7", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.0.2", - "@vitejs/plugin-basic-ssl": "1.0.1", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.14", - "babel-loader": "9.1.2", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.5", - "cacache": "17.0.6", - "chokidar": "3.5.3", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.16", - "css-loader": "6.7.3", - "esbuild-wasm": "0.17.18", - "glob": "8.1.0", - "https-proxy-agent": "5.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "karma-source-map-support": "1.4.0", - "less": "4.1.3", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.0", - "mini-css-extract-plugin": "2.7.5", - "mrmime": "1.0.1", - "open": "8.4.2", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "2.3.1", - "piscina": "3.2.0", - "postcss": "8.4.23", - "postcss-loader": "7.2.4", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.62.1", - "sass-loader": "13.2.2", - "semver": "7.4.0", - "source-map-loader": "4.0.1", - "source-map-support": "0.5.21", - "terser": "5.17.1", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.5.0", - "vite": "4.3.1", - "webpack": "5.80.0", - "webpack-dev-middleware": "6.0.2", - "webpack-dev-server": "4.13.2", - "webpack-merge": "5.8.0", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.17.18" - }, - "peerDependencies": { - "@angular/compiler-cli": "^16.0.0", - "@angular/localize": "^16.0.0", - "@angular/platform-server": "^16.0.0", - "@angular/service-worker": "^16.0.0", - "jest": "^29.5.0", - "jest-environment-jsdom": "^29.5.0", - "karma": "^6.3.0", - "ng-packagr": "^16.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.9.3 <5.1" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/platform-server": { - "optional": true - }, - "@angular/service-worker": { - "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-builders/custom-webpack/node_modules/@angular-devkit/build-webpack": { - "version": "0.1600.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1600.2", - "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" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/core": { - "version": "16.0.2", - "dev": true, - "license": "MIT", - "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-builders/custom-webpack/node_modules/@ngtools/webpack": { - "version": "16.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^16.0.0", - "typescript": ">=4.9.3 <5.1", - "webpack": "^5.54.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/glob": { - "version": "8.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/postcss-loader": { - "version": "7.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.1.3", - "cosmiconfig-typescript-loader": "^4.3.0", - "klona": "^2.0.6", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "ts-node": ">=10", - "typescript": ">=4", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@angular-builders/custom-webpack/node_modules/postcss-loader/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular-devkit/architect": { - "version": "0.1600.2", + "version": "0.1602.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.16.tgz", + "integrity": "sha512-aWEeGU4UlbrSKpcAZsldVNxNXAWEeu9hM2BPk77GftbRC8PBMWpgYyrJWTz2ryn8aSmGKT3T8OyBH4gZA/667w==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.0.2", + "@angular-devkit/core": "16.2.16", "rxjs": "7.8.1" }, "engines": { @@ -413,65 +153,52 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/architect/node_modules/@angular-devkit/core": { - "version": "16.0.2", + "node_modules/@angular-devkit/architect/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==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "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 - } + "tslib": "^2.1.0" } }, "node_modules/@angular-devkit/build-angular": { - "version": "16.0.1", + "version": "16.2.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.16.tgz", + "integrity": "sha512-gEni21kza41xaRnVWP1sMuiWHS/rdoym5FEEGDo9PG60LwRC4lekIgT09GpTlmMu007UEfo0ccQnGroD6+MqWg==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1600.1", - "@angular-devkit/build-webpack": "0.1600.1", - "@angular-devkit/core": "16.0.1", - "@babel/core": "7.21.4", - "@babel/generator": "7.21.4", - "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/helper-split-export-declaration": "7.18.6", + "@angular-devkit/architect": "0.1602.16", + "@angular-devkit/build-webpack": "0.1602.16", + "@angular-devkit/core": "16.2.16", + "@babel/core": "7.22.9", + "@babel/generator": "7.22.9", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.21.4", - "@babel/preset-env": "7.21.4", - "@babel/runtime": "7.21.0", - "@babel/template": "7.20.7", + "@babel/plugin-transform-async-to-generator": "7.22.5", + "@babel/plugin-transform-runtime": "7.22.9", + "@babel/preset-env": "7.22.9", + "@babel/runtime": "7.22.6", + "@babel/template": "7.22.5", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.0.1", + "@ngtools/webpack": "16.2.16", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.14", - "babel-loader": "9.1.2", + "babel-loader": "9.1.3", "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.5", - "cacache": "17.0.6", + "browserslist": "^4.21.5", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", - "critters": "0.0.16", - "css-loader": "6.7.3", - "esbuild-wasm": "0.17.18", - "glob": "8.1.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.18.17", + "fast-glob": "3.3.1", + "guess-parser": "0.4.22", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", @@ -480,32 +207,32 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.30.0", - "mini-css-extract-plugin": "2.7.5", + "magic-string": "0.30.1", + "mini-css-extract-plugin": "2.7.6", "mrmime": "1.0.1", "open": "8.4.2", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "2.3.1", - "piscina": "3.2.0", - "postcss": "8.4.23", - "postcss-loader": "7.2.4", + "piscina": "4.0.0", + "postcss": "8.4.31", + "postcss-loader": "7.3.3", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.62.1", - "sass-loader": "13.2.2", - "semver": "7.4.0", + "sass": "1.64.1", + "sass-loader": "13.3.2", + "semver": "7.5.4", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.17.1", + "terser": "5.19.2", "text-table": "0.2.0", "tree-kill": "1.2.2", - "tslib": "2.5.0", - "vite": "4.3.1", - "webpack": "5.80.0", - "webpack-dev-middleware": "6.0.2", - "webpack-dev-server": "4.13.2", - "webpack-merge": "5.8.0", + "tslib": "2.6.1", + "vite": "4.5.5", + "webpack": "5.94.0", + "webpack-dev-middleware": "6.1.2", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.9.0", "webpack-subresource-integrity": "5.1.0" }, "engines": { @@ -514,7 +241,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.17.18" + "esbuild": "0.18.17" }, "peerDependencies": { "@angular/compiler-cli": "^16.0.0", @@ -527,7 +254,7 @@ "ng-packagr": "^16.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.9.3 <5.1" + "typescript": ">=4.9.3 <5.2" }, "peerDependenciesMeta": { "@angular/localize": { @@ -559,65 +286,136 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1600.1", + "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.0.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/build-angular/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/glob": { - "version": "8.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" + "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/isaacs" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@angular-devkit/build-angular/node_modules/minimatch": { - "version": "5.1.6", + "node_modules/@angular-devkit/build-angular/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": "ISC", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" }, "engines": { - "node": ">=10" + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/@angular-devkit/build-angular/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, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@angular-devkit/build-angular/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "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.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, "node_modules/@angular-devkit/build-angular/node_modules/postcss-loader": { - "version": "7.2.4", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^8.1.3", - "cosmiconfig-typescript-loader": "^4.3.0", - "klona": "^2.0.6", + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", "semver": "^7.3.8" }, "engines": { @@ -629,37 +427,114 @@ }, "peerDependencies": { "postcss": "^7.0.0 || ^8.0.1", - "ts-node": ">=10", - "typescript": ">=4", "webpack": "^5.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/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==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@angular-devkit/build-angular/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": { + "@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/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack": { + "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/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", + "chrome-trace-event": "^1.0.2", + "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.11", + "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.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { + "webpack-cli": { "optional": true } } }, - "node_modules/@angular-devkit/build-angular/node_modules/postcss-loader/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1600.1", + "node_modules/@angular-devkit/build-angular/node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1600.1", + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1602.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.16.tgz", + "integrity": "sha512-b99Sj0btI0C2GIfzoyP8epDMIOLqSTqXOxw6klGtBLaGZfM5KAxqFzekXh8cAnHxWCj20WdNhezS1eUTLOkaIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/architect": "0.1602.16", "rxjs": "7.8.1" }, "engines": { @@ -672,28 +547,27 @@ "webpack-dev-server": "^4.0.0" } }, - "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1600.1", + "node_modules/@angular-devkit/build-webpack/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==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@angular-devkit/core": "16.0.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" + "tslib": "^2.1.0" } }, "node_modules/@angular-devkit/core": { - "version": "16.0.1", + "version": "16.2.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.16.tgz", + "integrity": "sha512-5xHs9JFmp78sydrOAg0UGErxfMVv5c2f3RXoikS7eBOOXTWEi5pmnOkOvSJ3loQFGVs3Y7i+u02G3VrF5ZxOrA==", "dev": true, "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" }, @@ -711,14 +585,24 @@ } } }, + "node_modules/@angular-devkit/core/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==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, "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==", + "version": "16.2.16", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.16.tgz", + "integrity": "sha512-pF6fdtJh6yLmgA7Gs45JIdxPl2MsTAhYcZIMrX1a6ID64dfwtF0MP8fDE6vrWInV1zXbzzf7l7PeKuqVtTSzKg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.2.14", + "@angular-devkit/core": "16.2.16", "jsonc-parser": "3.2.0", "magic-string": "0.30.1", "ora": "5.4.1", @@ -730,53 +614,20 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/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==", + "node_modules/@angular-devkit/schematics/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==", "dev": true, + "license": "Apache-2.0", "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/schematics/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/@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, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "tslib": "^2.1.0" } }, "node_modules/@angular-eslint/builder": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-16.0.1.tgz", + "integrity": "sha512-yjFltV+r3YjisVjASMPmWB/ASz39wdh0q5g0l6/4G+8yaxl6hEYs5o0ZOGeGdTFstCql8FGY+QKwKgsq9Ec4QQ==", "dev": true, "license": "MIT", "dependencies": { @@ -790,11 +641,15 @@ }, "node_modules/@angular-eslint/bundled-angular-compiler": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-16.0.1.tgz", + "integrity": "sha512-amvTgKHtZoygivW3LAYZ9qjLWsXM7/7eaRvaHdmAEdjyFnYQZ7UbWMPSQNz1mlW/AzTFvk9lGGQORglNOSDnww==", "dev": true, "license": "MIT" }, "node_modules/@angular-eslint/eslint-plugin": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-16.0.1.tgz", + "integrity": "sha512-CM9keS9cH1QAfSVfsvhw/oGCZcP/D8gfekWwVNjN/uEMEAak0czn1KOG7JQkE36NXOGtwCpTspMi1aa9CVKo9g==", "dev": true, "license": "MIT", "dependencies": { @@ -808,6 +663,8 @@ }, "node_modules/@angular-eslint/eslint-plugin-template": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-16.0.1.tgz", + "integrity": "sha512-1hyfs+Iq7K2x3mDDE4985d8vDcMyknbE9HKHKUtRLfLKC9gnV3N5d4+UeySQ7Rrjvgzkc1g9qHADyuhwRWpDSA==", "dev": true, "license": "MIT", "dependencies": { @@ -823,332 +680,10 @@ "typescript": "*" } }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/type-utils": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.2", - "@typescript-eslint/utils": "5.59.2", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/types": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/utils": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/aria-query": { - "version": "5.1.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/axobject-query": { - "version": "3.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-eslint/eslint-plugin-template/node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-eslint/eslint-plugin/node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@angular-eslint/schematics": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-16.0.1.tgz", + "integrity": "sha512-1oJJEWVbgPkNK1E8rAJfrgxzNWWzJKv3frTHeAm8gvZ7GftYhHjDcrcnxLWrYNxb9+q8Awi0hvGta/4HROmmnA==", "dev": true, "license": "MIT", "dependencies": { @@ -1164,19 +699,10 @@ "@angular/cli": ">= 16.0.0 < 17.0.0" } }, - "node_modules/@angular-eslint/schematics/node_modules/tmp": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, "node_modules/@angular-eslint/template-parser": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-16.0.1.tgz", + "integrity": "sha512-x0+SwSeqa3TiVZan6fE5grHsCkjGqU+zAS2DB6wAw5pyvgNAIjrI4cZEQ8pkgHfXe5tuumTKztlkpisah5s/hg==", "dev": true, "license": "MIT", "dependencies": { @@ -1188,31 +714,10 @@ "typescript": "*" } }, - "node_modules/@angular-eslint/template-parser/node_modules/eslint-scope": { - "version": "7.2.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@angular-eslint/template-parser/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/@angular-eslint/utils": { "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-16.0.1.tgz", + "integrity": "sha512-2xnJuhIrMZEYK6UyBym6FaFXZgopIIbqfQ4sAtMWY6zYkCEsVUvx5qKIrsnXAwvpDQrv0WiMXteqi/5ICpVMZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1224,149 +729,10 @@ "typescript": "*" } }, - "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/utils": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@angular-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@angular-eslint/utils/node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-eslint/utils/node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular-eslint/utils/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-eslint/utils/node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@angular/animations": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.12.tgz", + "integrity": "sha512-MD0ElviEfAJY8qMOd6/jjSSvtqER2RDAi0lxe6EtUacC1DHCYkaPrKW4vLqY+tmZBg1yf+6n+uS77pXcHHcA3w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1375,11 +741,13 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.1" + "@angular/core": "16.2.12" } }, "node_modules/@angular/cdk": { - "version": "16.0.1", + "version": "16.2.14", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.2.14.tgz", + "integrity": "sha512-n6PrGdiVeSTEmM/HEiwIyg6YQUUymZrb5afaNLGFRM5YL0Y8OBqd+XhCjb0OfD/AfgCUtedVEPwNqrfW8KzgGw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1394,16 +762,16 @@ } }, "node_modules/@angular/cli": { - "version": "16.2.14", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.14.tgz", - "integrity": "sha512-0y71jtitigVolm4Rim1b8xPQ+B22cGp4Spef2Wunpqj67UowN6tsZaVuWBEQh4u5xauX8LAHKqsvy37ZPWCc4A==", + "version": "16.2.16", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.16.tgz", + "integrity": "sha512-aqfNYZ45ndrf36i+7AhQ9R8BCm025j7TtYaUmvvjT4LwiUg6f6KtlZPB/ivBlXmd1g9oXqW4advL0AIi8A/Ozg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1602.14", - "@angular-devkit/core": "16.2.14", - "@angular-devkit/schematics": "16.2.14", - "@schematics/angular": "16.2.14", + "@angular-devkit/architect": "0.1602.16", + "@angular-devkit/core": "16.2.16", + "@angular-devkit/schematics": "16.2.16", + "@schematics/angular": "16.2.16", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -1428,66 +796,10 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1602.14", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.14.tgz", - "integrity": "sha512-eSdONEV5dbtLNiOMBy9Ue9DdJ1ct6dH9RdZfYiedq6VZn0lejePAjY36MYVXgq2jTE+v/uIiaNy7caea5pt55A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "16.2.14", - "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/cli/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, - "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/cli/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular/common": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.12.tgz", + "integrity": "sha512-B+WY/cT2VgEaz9HfJitBmgdk4I333XG/ybC98CMC4Wz8E49T8yzivmmxXB3OD6qvjcOB6ftuicl6WBqLbZNg2w==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1496,12 +808,14 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.1", + "@angular/core": "16.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.12.tgz", + "integrity": "sha512-6SMXUgSVekGM7R6l1Z9rCtUGtlg58GFmgbpMCsGf+VXxP468Njw8rjT2YZkf5aEPxEuRpSHhDYjqz7n14cwCXQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1510,7 +824,7 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.0.1" + "@angular/core": "16.2.12" }, "peerDependenciesMeta": { "@angular/core": { @@ -1519,10 +833,12 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.12.tgz", + "integrity": "sha512-pWSrr152562ujh6lsFZR8NfNc5Ljj+zSTQO44DsuB0tZjwEpnRcjJEgzuhGXr+CoiBf+jTSPZKemtSktDk5aaA==", "license": "MIT", "dependencies": { - "@babel/core": "7.19.3", + "@babel/core": "7.23.2", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", @@ -1540,29 +856,31 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.0.1", - "typescript": ">=4.9.3 <5.1" + "@angular/compiler": "16.2.12", + "typescript": ">=4.9.3 <5.2" } }, "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.19.3", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", - "convert-source-map": "^1.7.0", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1572,29 +890,67 @@ "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==", + "license": "MIT" + }, "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==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { - "version": "7.21.5", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@angular/compiler-cli/node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@angular/core": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.12.tgz", + "integrity": "sha512-GLLlDeke/NjroaLYOks0uyzFVo6HyLl7VOm0K1QpLXnYvW63W9Ql/T3yguRZa7tRkOAeFZ3jw+1wnBD4O8MoUA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1608,7 +964,9 @@ } }, "node_modules/@angular/forms": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.12.tgz", + "integrity": "sha512-1Eao89hlBgLR3v8tU91vccn21BBKL06WWxl7zLpQmG6Hun+2jrThgOE4Pf3os4fkkbH4Apj0tWL2fNIWe/blbw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1617,18 +975,20 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.1", - "@angular/core": "16.0.1", - "@angular/platform-browser": "16.0.1", + "@angular/common": "16.2.12", + "@angular/core": "16.2.12", + "@angular/platform-browser": "16.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-16.2.12.tgz", + "integrity": "sha512-sNIHDlZKENPQqx64qGF99g2sOCy9i9O4VOmjKD/FZbeE8O5qBbaQlkwOlFoQIt35/cnvtAtf7oQF6tqmiVtS2w==", "license": "MIT", "dependencies": { - "@babel/core": "7.19.3", - "glob": "8.1.0", + "@babel/core": "7.23.2", + "fast-glob": "3.3.0", "yargs": "^17.2.1" }, "bin": { @@ -1640,29 +1000,31 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.0.1", - "@angular/compiler-cli": "16.0.1" + "@angular/compiler": "16.2.12", + "@angular/compiler-cli": "16.2.12" } }, "node_modules/@angular/localize/node_modules/@babel/core": { - "version": "7.19.3", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", - "convert-source-map": "^1.7.0", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1673,62 +1035,82 @@ } }, "node_modules/@angular/localize/node_modules/@babel/generator": { - "version": "7.21.5", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@angular/localize/node_modules/brace-expansion": { - "version": "2.0.1", + "node_modules/@angular/localize/node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@angular/localize/node_modules/glob": { - "version": "8.1.0", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=6.9.0" } }, - "node_modules/@angular/localize/node_modules/minimatch": { - "version": "5.1.6", - "license": "ISC", + "node_modules/@angular/localize/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==", + "license": "MIT" + }, + "node_modules/@angular/localize/node_modules/fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@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": ">=10" + "node": ">=8.6.0" + } + }, + "node_modules/@angular/localize/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, "node_modules/@angular/localize/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@angular/platform-browser": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.12.tgz", + "integrity": "sha512-NnH7ju1iirmVEsUq432DTm0nZBGQsBrU40M3ZeVHMQ2subnGiyUs3QyzDz8+VWLL/T5xTxWLt9BkDn65vgzlIQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1737,9 +1119,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "16.0.1", - "@angular/common": "16.0.1", - "@angular/core": "16.0.1" + "@angular/animations": "16.2.12", + "@angular/common": "16.2.12", + "@angular/core": "16.2.12" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1748,7 +1130,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.12.tgz", + "integrity": "sha512-ya54jerNgreCVAR278wZavwjrUWImMr2F8yM5n9HBvsMBbFaAQ83anwbOEiHEF2BlR+gJiEBLfpuPRMw20pHqw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1757,14 +1141,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.1", - "@angular/compiler": "16.0.1", - "@angular/core": "16.0.1", - "@angular/platform-browser": "16.0.1" + "@angular/common": "16.2.12", + "@angular/compiler": "16.2.12", + "@angular/core": "16.2.12", + "@angular/platform-browser": "16.2.12" } }, "node_modules/@angular/router": { - "version": "16.0.1", + "version": "16.2.12", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.12.tgz", + "integrity": "sha512-aU6QnYSza005V9P3W6PpkieL56O0IHps96DjqI1RS8yOJUl3THmokqYN4Fm5+HXy4f390FN9i6ftadYQDKeWmA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1773,21 +1159,55 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.0.1", - "@angular/core": "16.0.1", - "@angular/platform-browser": "16.0.1", + "@angular/common": "16.2.12", + "@angular/core": "16.2.12", + "@angular/platform-browser": "16.2.12", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@ant-design/colors": { - "version": "7.0.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.0.tgz", + "integrity": "sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==", "license": "MIT", "dependencies": { - "@ctrl/tinycolor": "^3.4.0" + "@ant-design/fast-color": "^2.0.6" } }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/fast-color/node_modules/@babel/runtime": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ant-design/fast-color/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==", + "license": "MIT" + }, "node_modules/@ant-design/icons-angular": { "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons-angular/-/icons-angular-16.0.0.tgz", + "integrity": "sha512-KWBmWZl2so49R/MdAT7aG+xaBlMKl9SArR3Du/iPA0Am9GI1i9R89KgnnLWz+gkzHTye15S1IBXpgts4GPPU/w==", "license": "MIT", "dependencies": { "@ant-design/colors": "^7.0.0", @@ -1802,15 +1222,19 @@ }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", "dev": true, "license": "Apache-2.0" }, "node_modules/@babel/code-frame": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", - "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.6", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -1818,31 +1242,35 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.21.7", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.4", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.2", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1856,15 +1284,18 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.21.4", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4", + "@babel/types": "^7.22.5", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -1874,77 +1305,57 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", + "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, "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@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.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" } }, "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==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.8", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", + "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" + "@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.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.26.9", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1953,6 +1364,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-class-features-plugin/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "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", @@ -1964,13 +1388,15 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.8", + "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.18.6", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1979,6 +1405,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-create-regexp-features-plugin/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "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", @@ -1990,141 +1429,71 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", + "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": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@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", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/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" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", - "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", - "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name/node_modules/@babel/template": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", - "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", - "dependencies": { - "@babel/code-frame": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", - "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", - "dependencies": { - "@babel/types": "^7.24.6" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.5", + "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/types": "^7.21.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", + "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==", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2133,120 +1502,197 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.21.5", + "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==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "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==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5" + "@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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "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==", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", + "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/types": "^7.20.0" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", + "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, "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", - "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==", + "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==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", - "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", + "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/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.5", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", - "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", + "node_modules/@babel/helpers/node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.6", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", - "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.9" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -2255,11 +1701,13 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", + "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.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2269,13 +1717,15 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", + "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.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.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" @@ -2286,6 +1736,9 @@ }, "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", "dev": true, "license": "MIT", "dependencies": { @@ -2301,201 +1754,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@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-proposal-json-strings": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@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-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@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-proposal-numeric-separator": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@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-proposal-optional-chaining": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", + "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", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, "engines": { "node": ">=6.9.0" }, @@ -2505,6 +1769,9 @@ }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", "dev": true, "license": "MIT", "dependencies": { @@ -2520,6 +1787,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -2531,6 +1800,8 @@ }, "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": { @@ -2542,6 +1813,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -2556,6 +1829,8 @@ }, "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": { @@ -2567,6 +1842,8 @@ }, "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": { @@ -2577,11 +1854,13 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", + "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.19.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2590,8 +1869,39 @@ "@babel/core": "^7.0.0-0" } }, + "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.25.9" + }, + "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": { @@ -2603,6 +1913,8 @@ }, "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": { @@ -2614,6 +1926,8 @@ }, "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": { @@ -2625,6 +1939,8 @@ }, "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": { @@ -2636,6 +1952,8 @@ }, "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": { @@ -2647,6 +1965,8 @@ }, "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": { @@ -2658,6 +1978,8 @@ }, "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": { @@ -2669,6 +1991,8 @@ }, "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": { @@ -2683,6 +2007,8 @@ }, "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": { @@ -2695,117 +2021,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { + "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, "license": "MIT", "dependencies": { @@ -2815,16 +2034,251 @@ "engines": { "node": ">=6.9.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.26.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "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==", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties/node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "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-0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", + "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.18.9" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2834,12 +2288,29 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", + "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.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2849,11 +2320,14 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.5", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", + "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2863,13 +2337,31 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", + "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.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2879,11 +2371,29 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", + "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.18.9" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2893,11 +2403,13 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", + "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.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2907,12 +2419,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", + "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.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2922,13 +2436,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", + "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.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2938,14 +2453,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", + "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-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" + "@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" @@ -2955,12 +2472,14 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", + "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.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2970,12 +2489,14 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", + "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.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2985,11 +2506,63 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", + "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.18.6" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "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" }, "engines": { "node": ">=6.9.0" @@ -2999,12 +2572,47 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", + "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.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3014,11 +2622,13 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", + "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.20.2" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3027,12 +2637,62 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", + "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==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3042,12 +2702,14 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.21.5", + "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.21.5", - "regenerator-transform": "^0.15.1" + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -3057,11 +2719,13 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", + "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.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3071,16 +2735,18 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.21.4", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz", + "integrity": "sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -3100,11 +2766,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", + "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.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3114,12 +2782,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", + "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.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3129,11 +2799,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", + "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.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3143,11 +2815,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -3157,11 +2831,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -3171,11 +2847,30 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", + "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.21.5" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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==", + "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" @@ -3185,12 +2880,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", + "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.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -3199,38 +2896,45 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.21.4", + "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==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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/preset-env": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", + "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@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.20.0", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@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", @@ -3240,45 +2944,62 @@ "@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-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -3298,7 +3019,9 @@ } }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, "license": "MIT", "dependencies": { @@ -3309,16 +3032,13 @@ "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "dev": true, - "license": "MIT" - }, "node_modules/@babel/runtime": { - "version": "7.21.0", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.11" @@ -3328,30 +3048,30 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", - "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-hoist-variables": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -3360,60 +3080,71 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", - "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.6", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", "@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/traverse/node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", - "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", + "node_modules/@babel/traverse/node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.6" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", - "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6", - "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" } }, "node_modules/@braintree/sanitize-url": { - "version": "6.0.2", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", + "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==", "license": "MIT", "optional": true }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "license": "MIT", "dependencies": { @@ -3425,6 +3156,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3432,23 +3165,292 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@ctrl/tinycolor": { - "version": "3.6.1", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "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, "license": "MIT", "engines": { "node": ">=10.0.0" } }, + "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, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.18", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", "cpu": [ "x64" ], @@ -3462,22 +3464,131 @@ "node": ">=12" } }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -3485,13 +3596,15 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.3", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3508,6 +3621,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { @@ -3523,11 +3638,15 @@ }, "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3542,6 +3661,8 @@ }, "node_modules/@eslint/eslintrc/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": { @@ -3553,22 +3674,15 @@ }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -3579,7 +3693,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.40.0", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "license": "MIT", "engines": { @@ -3588,6 +3704,8 @@ }, "node_modules/@fortawesome/angular-fontawesome": { "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.13.0.tgz", + "integrity": "sha512-gzSPRdveOXNO7NIiMgTyB46aiHG0i98KinnAEqHXi8qzraM/kCcHn/0y3f4MhemX6kftwsFli0IU8RyHmtXlSQ==", "license": "MIT", "dependencies": { "tslib": "^2.4.1" @@ -3598,52 +3716,57 @@ } }, "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.4.0", - "hasInstallScript": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", + "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.4.0", - "hasInstallScript": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", + "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", "license": "MIT", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.0" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-brands-svg-icons": { - "version": "6.4.0", - "hasInstallScript": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.2.tgz", + "integrity": "sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q==", "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.0" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "6.4.0", - "hasInstallScript": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz", + "integrity": "sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==", "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.0" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "6.4.0", - "hasInstallScript": true, + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", + "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==", "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.0" + "@fortawesome/fontawesome-common-types": "6.7.2" }, "engines": { "node": ">=6" @@ -3651,6 +3774,8 @@ }, "node_modules/@fullhuman/postcss-purgecss": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-5.0.0.tgz", + "integrity": "sha512-onDS/b/2pMRzqSoj4qOs2tYFmOpaspjTAgvACIHMPiicu1ptajiBruTrjBzTKdxWdX0ldaBb7wj8nEaTLyFkJw==", "dev": true, "license": "MIT", "dependencies": { @@ -3662,16 +3787,21 @@ }, "node_modules/@gar/promisify": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", "dev": true, "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -3680,6 +3810,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3691,12 +3823,17 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, "license": "BSD-3-Clause" }, "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": { @@ -3712,7 +3849,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", + "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": { @@ -3724,6 +3863,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==", "dev": true, "license": "MIT", "engines": { @@ -3735,11 +3876,15 @@ }, "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==", "dev": true, "license": "MIT", "dependencies": { @@ -3755,7 +3900,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.0.1", + "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": { @@ -3770,6 +3917,8 @@ }, "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": { @@ -3786,6 +3935,8 @@ }, "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, "license": "ISC", "dependencies": { @@ -3799,16 +3950,10 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "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, "license": "MIT", "engines": { @@ -3816,9 +3961,10 @@ } }, "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==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3829,7 +3975,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "license": "MIT", "engines": { "node": ">=6.0.0" @@ -3839,39 +3987,49 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.3", + "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, "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", + "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/@ngtools/webpack": { - "version": "16.0.1", + "version": "16.2.16", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.16.tgz", + "integrity": "sha512-4gm2allK0Pjy/Lxb9IGRnhEZNEOJSOTWwy09VOdHouV2ODRK7Tto2LgteaFJUUSLkuvWRsI7pfuA6yrz8KDfHw==", "dev": true, "license": "MIT", "engines": { @@ -3881,13 +4039,14 @@ }, "peerDependencies": { "@angular/compiler-cli": "^16.0.0", - "typescript": ">=4.9.3 <5.1", + "typescript": ">=4.9.3 <5.2", "webpack": "^5.54.0" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "dev": true, + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -3899,7 +4058,8 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "dev": true, + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "license": "MIT", "engines": { "node": ">= 8" @@ -3907,7 +4067,8 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "dev": true, + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -3918,7 +4079,9 @@ } }, "node_modules/@npmcli/fs": { - "version": "3.1.0", + "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": { @@ -3950,6 +4113,8 @@ }, "node_modules/@npmcli/git/node_modules/lru-cache": { "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "license": "ISC", "engines": { @@ -3958,6 +4123,8 @@ }, "node_modules/@npmcli/git/node_modules/which": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "license": "ISC", "dependencies": { @@ -3989,6 +4156,9 @@ }, "node_modules/@npmcli/move-file": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "license": "MIT", "dependencies": { @@ -4001,6 +4171,8 @@ }, "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, "license": "ISC", "engines": { @@ -4009,6 +4181,8 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", "dev": true, "license": "ISC", "dependencies": { @@ -4020,6 +4194,8 @@ }, "node_modules/@npmcli/promise-spawn/node_modules/which": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "license": "ISC", "dependencies": { @@ -4034,6 +4210,8 @@ }, "node_modules/@npmcli/run-script": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", "dev": true, "license": "ISC", "dependencies": { @@ -4049,6 +4227,8 @@ }, "node_modules/@npmcli/run-script/node_modules/which": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "license": "ISC", "dependencies": { @@ -4063,6 +4243,8 @@ }, "node_modules/@nrwl/devkit": { "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-SAEcImeQHdSTauO05FUn2vVl9/y5Kx1LNCZ4YE+SdY5/QRq18fuo/DCWmjOGG9M8r06vYGsAgMzkiB4soimcyA==", "dev": true, "license": "MIT", "dependencies": { @@ -4071,6 +4253,8 @@ }, "node_modules/@nrwl/tao": { "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-16.0.2.tgz", + "integrity": "sha512-wimEe4OTpI7/nDK67RnpZpEXCU+fzA0sDgpIhMgbpPd0vPmKgaZv4nbs8zrm0goFlacmmnLaGRhhGYMOxE+1Lg==", "dev": true, "license": "MIT", "dependencies": { @@ -4082,6 +4266,8 @@ }, "node_modules/@nx/devkit": { "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-16.0.2.tgz", + "integrity": "sha512-BY1Bj0BbAl6XJL0O+QGTWPs/3WMJTEQ+Y4Lfoq4dZM7RllE6rAylr54NA2wa4lsgordZhq1+0g5PVhKKvSVRRw==", "dev": true, "license": "MIT", "dependencies": { @@ -4096,8 +4282,23 @@ "nx": ">= 15 <= 17" } }, + "node_modules/@nx/devkit/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, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@nx/devkit/node_modules/semver": { "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "license": "ISC", "dependencies": { @@ -4110,19 +4311,97 @@ "node": ">=10" } }, - "node_modules/@nx/devkit/node_modules/tmp": { - "version": "0.2.1", + "node_modules/@nx/devkit/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", - "dependencies": { - "rimraf": "^3.0.0" - }, + "license": "ISC" + }, + "node_modules/@nx/nx-darwin-arm64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-16.0.2.tgz", + "integrity": "sha512-nAT8WJ/qKGEvUcoFLHHye1dbwCd7b8CTZJlDF+ZkyCD/UZRHt4eJxy8gvKmxgkZTFb2+PPMQt4UORCUGpZzuoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8.17.0" + "node": ">= 10" + } + }, + "node_modules/@nx/nx-darwin-x64": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-16.0.2.tgz", + "integrity": "sha512-r0rfOrZaOyrwFR5a0UT05xkYRumfkP65cRSZM1TjCA027AG9llYtkLT1hlz8uMKt+P12zrWVzXSqGLDi022ZZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-16.0.2.tgz", + "integrity": "sha512-TfDQaGvCIDjn9sPg5U1Fr2rsSul/4PIQB59qrLBJRPiCWgpzwO71Il1qwSX68En+JH3lwXr+g5EjcDIEQ8fGYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-16.0.2.tgz", + "integrity": "sha512-MICaUp7uz8WVQFXWPrmQaX1o4bdL7f3C7b3MDDf6+Zau6RcyQuw97UEKaYi9OqrV3w8yuPplqoLosFblAgb8uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-16.0.2.tgz", + "integrity": "sha512-wcBURG+6A2srm+6ujj8SShjwmYWs0eHI5D8vgZr8Bni+lXbKP/IosE9JGXKtRoh27/owyR8PGHhDVzjv46tlFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, "node_modules/@nx/nx-linux-x64-gnu": { "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-16.0.2.tgz", + "integrity": "sha512-Xyml2gFdVDHUj2g67DKz2aD78x1BciN1ZaaBTCxXL4MHfwR78SZa7mtRtE+1kj5OgVIwupZP50jq7C8GuSn3Hw==", "cpu": [ "x64" ], @@ -4137,6 +4416,8 @@ }, "node_modules/@nx/nx-linux-x64-musl": { "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-16.0.2.tgz", + "integrity": "sha512-j3xdN8I5DlTgW5N5eCquyBZswrrYf6EazUCvnEpeejygwh3N6XN7DlD68Bs0CB4Zmd0tWLfTjNVAtUJSP6g2mA==", "cpu": [ "x64" ], @@ -4149,8 +4430,42 @@ "node": ">= 10" } }, + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-16.0.2.tgz", + "integrity": "sha512-R2pzoW3SUFBbe9C1vifJnXuysPl6kmutQHN2yQ9lwJptzPvMxfDU1FuXmKCGRUGmEwFxk/XPhwDL/ZcbABTrzw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-16.0.2.tgz", + "integrity": "sha512-r4H/SsqfpIJa8QLSpnscgkMnLsnkRYXj8TcILDrf+nJazfEdJZLUvVhN9O85OB7pskv86NuGfnJmJHHXy6QVQg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@parcel/watcher": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4168,6 +4483,8 @@ }, "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, @@ -4176,22 +4493,26 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.21", + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", "dev": true, "license": "MIT" }, "node_modules/@rollup/plugin-json": { - "version": "6.0.0", + "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.0.1" + "@rollup/pluginutils": "^5.1.0" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -4200,14 +4521,15 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.0.2", + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", "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" }, @@ -4215,7 +4537,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -4224,19 +4546,21 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.2", + "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": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -4244,15 +4568,28 @@ } } }, + "node_modules/@rollup/pluginutils/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", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/@schematics/angular": { - "version": "16.2.14", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.14.tgz", - "integrity": "sha512-YqIv727l9Qze8/OL6H9mBHc2jVXzAGRNBYnxYWqWhLbfvuVbbldo6NNIIjgv6lrl2LJSdPAAMNOD5m/f6210ug==", + "version": "16.2.16", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.16.tgz", + "integrity": "sha512-V4cE4R5MbusKaNW9DWsisiSRUoQzbAaBIeJh42yCkg5H/lUdf18hUB7DG6Pl7yH6/tjzzz4SqIVD7N64uCDC2A==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "16.2.14", - "@angular-devkit/schematics": "16.2.14", + "@angular-devkit/core": "16.2.16", + "@angular-devkit/schematics": "16.2.16", "jsonc-parser": "3.2.0" }, "engines": { @@ -4261,38 +4598,12 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@schematics/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, - "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/@sigstore/bundle": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz", "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.2.0" }, @@ -4315,6 +4626,7 @@ "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz", "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^1.1.0", "@sigstore/protobuf-specs": "^0.2.0", @@ -4324,11 +4636,61 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/@sigstore/sign/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@sigstore/sign/node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@sigstore/sign/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } @@ -4338,6 +4700,7 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, + "license": "ISC", "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^17.0.0", @@ -4359,11 +4722,48 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/@sigstore/sign/node_modules/make-fetch-happen/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/@sigstore/sign/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sigstore/sign/node_modules/minipass-collect/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/@sigstore/sign/node_modules/minipass-fetch": { "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", @@ -4376,20 +4776,19 @@ "encoding": "^0.1.13" } }, - "node_modules/@sigstore/sign/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/@sigstore/sign/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, - "engines": { - "node": ">=16 || 14 >=14.17" - } + "license": "ISC" }, "node_modules/@sigstore/tuf": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.2.0", "tuf-js": "^1.1.7" @@ -4398,17 +4797,10 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/@tauri-apps/api": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.1.1.tgz", - "integrity": "sha512-fzUfFFKo4lknXGJq8qrCidkUcKcH2UHhfaaCNt4GzgzGaW2iS26uFOg4tS3H4P8D6ZEeUxtiD5z0nwFF0UN30A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.2.0.tgz", + "integrity": "sha512-R8epOeZl1eJEl603aUMIGb4RXlhPjpgxbGVEaqY+0G5JG9vzV/clNlzTeqc+NLYXVqXcn8mb4c5b9pJIUDEyAg==", "license": "Apache-2.0 OR MIT", "funding": { "type": "opencollective", @@ -4416,89 +4808,101 @@ } }, "node_modules/@tauri-apps/plugin-cli": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-cli/-/plugin-cli-2.0.0.tgz", - "integrity": "sha512-glQmlL1IiCGEa1FHYa/PTPSeYhfu56omLRgHXWlJECDt6DbJyRuJWVgtkQfUxtqnVdYnnU+DGIGeiInoEqtjLw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-cli/-/plugin-cli-2.2.0.tgz", + "integrity": "sha512-rvNhMog9rHr01Xk+trBFKJ0eZICIvPkm9GX6ogB89/0hROU/lf+a/sb4vC0wtSeR7zrJuCSxwxYuvHCZheaYFA==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "node_modules/@tauri-apps/plugin-clipboard-manager": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-clipboard-manager/-/plugin-clipboard-manager-2.0.0.tgz", - "integrity": "sha512-V1sXmbjnwfXt/r48RJMwfUmDMSaP/8/YbH4CLNxt+/sf1eHlIP8PRFdFDQwLN0cNQKu2rqQVbG/Wc/Ps6cDUhw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-clipboard-manager/-/plugin-clipboard-manager-2.2.1.tgz", + "integrity": "sha512-+7YDULB9Bk4fejxYrVNBQcxs3KsjPA3A3r53wwn7K8zOQvxjNBSYBRx/FW1OUBPGzm8BrreJFBkPVzQZSF2R4A==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "node_modules/@tauri-apps/plugin-dialog": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.0.1.tgz", - "integrity": "sha512-fnUrNr6EfvTqdls/ufusU7h6UbNFzLKvHk/zTuOiBq01R3dTODqwctZlzakdbfSp/7pNwTKvgKTAgl/NAP/Z0Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.2.0.tgz", + "integrity": "sha512-6bLkYK68zyK31418AK5fNccCdVuRnNpbxquCl8IqgFByOgWFivbiIlvb79wpSXi0O+8k8RCSsIpOquebusRVSg==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "node_modules/@tauri-apps/plugin-notification": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.0.0.tgz", - "integrity": "sha512-6qEDYJS7mgXZWLXA0EFL+DVCJh8sJlzSoyw6B50pxhLPVFjc5Vr5DVzl5W3mUHaYhod5wsC984eQnlCCGqxYDA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.2.1.tgz", + "integrity": "sha512-QF8Zod6XDhxD6xkD5nU/BjbOpJ6+3gxGCrVULOdLpvMuMSN2Z2IdObV/qgnrEJk1UamUCF1ClQUqNCbk4zTJNQ==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "node_modules/@tauri-apps/plugin-os": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-os/-/plugin-os-2.0.0.tgz", - "integrity": "sha512-M7hG/nNyQYTJxVG/UhTKhp9mpXriwWzrs9mqDreB8mIgqA3ek5nHLdwRZJWhkKjZrnDT4v9CpA9BhYeplTlAiA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-os/-/plugin-os-2.2.0.tgz", + "integrity": "sha512-HszbCdbisMlu5QhCNAN8YIWyz2v33abAWha6+uvV2CKX8P5VSct/y+kEe22JeyqrxCnWlQ3DRx7s49Byg7/0EA==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "node_modules/@tauri-apps/plugin-shell": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.0.1.tgz", - "integrity": "sha512-akU1b77sw3qHiynrK0s930y8zKmcdrSD60htjH+mFZqv5WaakZA/XxHR3/sF1nNv9Mgmt/Shls37HwnOr00aSw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.2.0.tgz", + "integrity": "sha512-iC3Ic1hLmasoboG7BO+7p+AriSoqAwKrIk+Hpk+S/bjTQdXqbl2GbdclghI4gM32X0bls7xHzIFqhRdrlvJeaA==", "license": "MIT OR Apache-2.0", "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "node_modules/@tootallnate/once": { - "version": "2.0.0", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 6" } }, "node_modules/@tsconfig/node10": { - "version": "1.0.8", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node12": { - "version": "1.0.9", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node14": { - "version": "1.0.1", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node16": { - "version": "1.0.2", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, "license": "MIT" }, "node_modules/@tufjs/canonical-json": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", "dev": true, "license": "MIT", "engines": { @@ -4507,6 +4911,8 @@ }, "node_modules/@tufjs/models": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", "dev": true, "license": "MIT", "dependencies": { @@ -4519,6 +4925,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -4526,9 +4934,9 @@ } }, "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": { @@ -4542,7 +4950,9 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.2", + "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, "license": "MIT", "dependencies": { @@ -4551,7 +4961,9 @@ } }, "node_modules/@types/bonjour": { - "version": "3.5.10", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4560,6 +4972,8 @@ }, "node_modules/@types/chrome": { "version": "0.0.236", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.236.tgz", + "integrity": "sha512-ArQoxO9WtDY6GWcT2cpo+D+hyASPeFt7PHQEUDXwQhRS00Rbop07rnEOA046yws0HkM83Tcew/hW6Dgvnj4iMQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4568,7 +4982,9 @@ } }, "node_modules/@types/connect": { - "version": "3.4.35", + "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": { @@ -4576,7 +4992,9 @@ } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.0", + "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": { @@ -4584,25 +5002,10 @@ "@types/node": "*" } }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@types/cors": { - "version": "2.8.13", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/d3": { - "version": "7.4.0", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", "dev": true, "license": "MIT", "dependencies": { @@ -4639,12 +5042,16 @@ } }, "node_modules/@types/d3-array": { - "version": "3.0.2", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-axis": { - "version": "3.0.1", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, "license": "MIT", "dependencies": { @@ -4652,7 +5059,9 @@ } }, "node_modules/@types/d3-brush": { - "version": "3.0.1", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, "license": "MIT", "dependencies": { @@ -4660,17 +5069,23 @@ } }, "node_modules/@types/d3-chord": { - "version": "3.0.1", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-color": { - "version": "3.0.2", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-contour": { - "version": "3.0.1", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, "license": "MIT", "dependencies": { @@ -4679,17 +5094,23 @@ } }, "node_modules/@types/d3-delaunay": { - "version": "6.0.0", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-dispatch": { - "version": "3.0.1", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", + "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-drag": { - "version": "3.0.1", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4697,17 +5118,23 @@ } }, "node_modules/@types/d3-dsv": { - "version": "3.0.0", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-ease": { - "version": "3.0.0", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-fetch": { - "version": "3.0.1", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", "dev": true, "license": "MIT", "dependencies": { @@ -4715,17 +5142,23 @@ } }, "node_modules/@types/d3-force": { - "version": "3.0.3", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-format": { - "version": "3.0.1", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-geo": { - "version": "3.0.2", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4733,12 +5166,16 @@ } }, "node_modules/@types/d3-hierarchy": { - "version": "3.0.2", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-interpolate": { - "version": "3.0.1", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, "license": "MIT", "dependencies": { @@ -4746,27 +5183,37 @@ } }, "node_modules/@types/d3-path": { - "version": "3.0.0", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-polygon": { - "version": "3.0.0", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-quadtree": { - "version": "3.0.2", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-random": { - "version": "3.0.1", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-scale": { - "version": "4.0.2", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", "dev": true, "license": "MIT", "dependencies": { @@ -4774,17 +5221,23 @@ } }, "node_modules/@types/d3-scale-chromatic": { - "version": "3.0.0", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-selection": { - "version": "3.0.2", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-shape": { - "version": "3.0.2", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", "dev": true, "license": "MIT", "dependencies": { @@ -4792,22 +5245,30 @@ } }, "node_modules/@types/d3-time": { - "version": "3.0.0", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-time-format": { - "version": "4.0.0", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-timer": { - "version": "3.0.0", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", "dev": true, "license": "MIT" }, "node_modules/@types/d3-transition": { - "version": "3.0.1", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", "dev": true, "license": "MIT", "dependencies": { @@ -4815,7 +5276,9 @@ } }, "node_modules/@types/d3-zoom": { - "version": "3.0.1", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, "license": "MIT", "dependencies": { @@ -4825,6 +5288,8 @@ }, "node_modules/@types/data-urls": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/data-urls/-/data-urls-3.0.4.tgz", + "integrity": "sha512-XRY2WVaOFSTKpNMaplqY1unPgAGk/DosOJ+eFrB6LJcFFbRH3nVbwJuGqLmDwdTWWx+V7U614/kmrj1JmCDl2A==", "dev": true, "license": "MIT", "dependencies": { @@ -4833,30 +5298,40 @@ } }, "node_modules/@types/eslint": { - "version": "8.2.2", + "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", + "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { - "version": "3.7.3", + "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", + "peer": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "1.0.1", + "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.17", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4867,7 +5342,22 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "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": { @@ -4878,7 +5368,9 @@ } }, "node_modules/@types/filesystem": { - "version": "0.0.32", + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz", + "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", "dev": true, "license": "MIT", "dependencies": { @@ -4886,17 +5378,23 @@ } }, "node_modules/@types/filewriter": { - "version": "0.0.29", + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz", + "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==", "dev": true, "license": "MIT" }, "node_modules/@types/geojson": { - "version": "7946.0.8", + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", "dev": true, "license": "MIT" }, "node_modules/@types/glob": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, "license": "MIT", "dependencies": { @@ -4905,12 +5403,23 @@ } }, "node_modules/@types/har-format": { - "version": "1.2.8", + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.16.tgz", + "integrity": "sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==", + "dev": true, + "license": "MIT" + }, + "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, "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.11", + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", "dev": true, "license": "MIT", "dependencies": { @@ -4918,12 +5427,16 @@ } }, "node_modules/@types/jasmine": { - "version": "4.3.1", + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.6.5.tgz", + "integrity": "sha512-QgQkk8QL3vhML6msrckf7olLTwi+qeP5rLtmMeP4573HWlFw13xBX8M7YklKoP/Vu/gIXcwWYirTIa/8XVew9g==", "dev": true, "license": "MIT" }, "node_modules/@types/jasminewd2": { - "version": "2.0.10", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.13.tgz", + "integrity": "sha512-aJ3wj8tXMpBrzQ5ghIaqMisD8C3FIrcO6sDKHqFbuqAsI7yOxj0fA7MrRCPLZHIVUjERIwsMmGn/vB0UQ9u0Hg==", "dev": true, "license": "MIT", "dependencies": { @@ -4931,72 +5444,113 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.9", + "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, "license": "MIT" }, "node_modules/@types/marked": { - "version": "4.3.0", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", + "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==", "license": "MIT", "peer": true }, "node_modules/@types/mime": { - "version": "1.3.2", + "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/minimatch": { - "version": "3.0.5", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "20.1.5", + "version": "20.17.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.19.tgz", + "integrity": "sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==", "dev": true, - "license": "MIT" + "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": "*" + } }, "node_modules/@types/psl": { - "version": "1.1.0", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/psl/-/psl-1.1.3.tgz", + "integrity": "sha512-Iu174JHfLd7i/XkXY6VDrqSlPvTDQOtQI7wNAXKKOAADJ9TduRLkNdMgjGiMxSttUIZnomv81JAbAbC0DhggxA==", "dev": true, "license": "MIT" }, "node_modules/@types/q": { "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==", "dev": true, "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.7", + "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" }, "node_modules/@types/range-parser": { - "version": "1.2.4", + "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/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.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true, "license": "MIT" }, "node_modules/@types/selenium-webdriver": { - "version": "3.0.19", + "version": "3.0.26", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.26.tgz", + "integrity": "sha512-dyIGFKXfUFiwkMfNGn1+F6b80ZjR3uSYv1j6xVJSDlft5waZ2cwkHW4e7zNzvq7hiEackcgvBpmnXZrI1GltPg==", "dev": true, "license": "MIT" }, "node_modules/@types/semver": { - "version": "7.5.0", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true, "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.1", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, "license": "MIT", "dependencies": { @@ -5005,7 +5559,9 @@ } }, "node_modules/@types/serve-index": { - "version": "1.9.1", + "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": { @@ -5013,16 +5569,21 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.1", + "version": "1.15.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/mime": "*", - "@types/node": "*" + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sockjs": { - "version": "0.3.33", + "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": { @@ -5030,12 +5591,16 @@ } }, "node_modules/@types/source-list-map": { - "version": "0.1.2", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", "dev": true, "license": "MIT" }, "node_modules/@types/topojson-client": { - "version": "3.1.1", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/topojson-client/-/topojson-client-3.1.5.tgz", + "integrity": "sha512-C79rySTyPxnQNNguTZNI1Ct4D7IXgvyAs3p9HPecnl6mNrJ5+UhvGNYcZfpROYV2lMHI48kJPxwR+F9C6c7nmw==", "dev": true, "license": "MIT", "dependencies": { @@ -5044,7 +5609,9 @@ } }, "node_modules/@types/topojson-simplify": { - "version": "3.0.1", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/topojson-simplify/-/topojson-simplify-3.0.3.tgz", + "integrity": "sha512-sBO5UZ0O2dB0bNwo0vut2yLHhj3neUGi9uL7/ROdm8Gs6dtt4jcB9OGDKr+M2isZwQM2RuzVmifnMZpxj4IGNw==", "dev": true, "license": "MIT", "dependencies": { @@ -5053,7 +5620,9 @@ } }, "node_modules/@types/topojson-specification": { - "version": "1.0.2", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/topojson-specification/-/topojson-specification-1.0.5.tgz", + "integrity": "sha512-C7KvcQh+C2nr6Y2Ub4YfgvWvWCgP2nOQMtfhlnwsRL4pYmmwzBS7HclGiS87eQfDOU/DLQpX6GEscviaz4yLIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5061,27 +5630,23 @@ } }, "node_modules/@types/webextension-polyfill": { - "version": "0.8.3", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@types/webextension-polyfill/-/webextension-polyfill-0.10.7.tgz", + "integrity": "sha512-10ql7A0qzBmFB+F+qAke/nP1PIonS0TXZAOMVOxEUsm+lGSW6uwVcISFNa0I4Oyj0884TZVWGGMIWeXOVSNFHw==", "dev": true, "license": "MIT" }, "node_modules/@types/webidl-conversions": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", "dev": true, "license": "MIT" }, - "node_modules/@types/webpack": { - "version": "5.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "tapable": "^2.2.0", - "webpack": "^5" - } - }, "node_modules/@types/webpack-sources": { - "version": "3.2.0", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", "dev": true, "license": "MIT", "dependencies": { @@ -5092,16 +5657,22 @@ }, "node_modules/@types/whatwg-encoding": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/whatwg-encoding/-/whatwg-encoding-2.0.3.tgz", + "integrity": "sha512-7TJfeaSFIWAKQ4ZynOb5zV3xzJQEEmL0U0j+uH7tnqfL97apXDTwMo0dB2uAWXAbr2dRRi5/eO9jV9dK/1GkiA==", "dev": true, "license": "MIT" }, "node_modules/@types/whatwg-mimetype": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz", + "integrity": "sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==", "dev": true, "license": "MIT" }, "node_modules/@types/whatwg-url": { - "version": "11.0.4", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5109,7 +5680,9 @@ } }, "node_modules/@types/ws": { - "version": "8.5.4", + "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": { @@ -5117,16 +5690,18 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.6", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/type-utils": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", @@ -5149,74 +5724,15 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { - "version": "3.21.0", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, "license": "MIT", "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.59.6", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.6", - "@typescript-eslint/utils": "5.59.6", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -5236,27 +5752,135 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { - "version": "3.21.0", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, "license": "MIT", "dependencies": { - "tslib": "^1.8.1" + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.6", + "node_modules/@typescript-eslint/eslint-plugin/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, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz", + "integrity": "sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.59.2", + "@typescript-eslint/utils": "5.59.2", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", + "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", "dev": true, "license": "MIT", "engines": { @@ -5267,13 +5891,15 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.6", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", + "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5293,63 +5919,79 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.1.0", + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", "dev": true, "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@typescript-eslint/types": "5.59.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { - "version": "3.0.0", + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tslib": { - "version": "1.14.1", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, - "license": "0BSD" - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "tslib": "^1.8.1" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">= 6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.6", + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz", + "integrity": "sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", + "@typescript-eslint/scope-manager": "5.59.2", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/typescript-estree": "5.59.2", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -5364,12 +6006,74 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz", + "integrity": "sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.59.6", + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz", + "integrity": "sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz", + "integrity": "sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.59.2", + "@typescript-eslint/visitor-keys": "5.59.2", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz", + "integrity": "sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.59.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5380,8 +6084,59 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/utils/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, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, "node_modules/@vitejs/plugin-basic-ssl": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", "dev": true, "license": "MIT", "engines": { @@ -5392,57 +6147,73 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", + "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", + "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", + "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.11.6", + "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", + "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", + "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.11.6", + "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.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@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", + "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": { @@ -5450,7 +6221,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", + "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": { @@ -5458,87 +6231,131 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", + "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.11.6", + "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.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@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.11.6", + "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.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-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.11.6", + "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.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@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.11.6", + "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.11.6", - "@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.11.6", + "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.11.6", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, + "node_modules/@wessberg/ts-evaluator": { + "version": "0.0.27", + "resolved": "https://registry.npmjs.org/@wessberg/ts-evaluator/-/ts-evaluator-0.0.27.tgz", + "integrity": "sha512-7gOpVm3yYojUp/Yn7F4ZybJRxyqfMNf0LXK5KJiawbPfL0XTsJV+0mgrEDjOIR6Bi0OYk2Cyg4tjFu1r8MCZaA==", + "deprecated": "this package has been renamed to ts-evaluator. Please install ts-evaluator instead", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "jsdom": "^16.4.0", + "object-path": "^0.11.5", + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10.1.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/wessberg/ts-evaluator?sponsor=1" + }, + "peerDependencies": { + "typescript": ">=3.2.x || >= 4.x" + } + }, "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, "license": "BSD-2-Clause" }, "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.43", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", + "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5546,11 +6363,13 @@ "tslib": "^2.4.0" }, "engines": { - "node": ">=14.15.0" + "node": ">=18.12.0" } }, "node_modules/@zkochan/js-yaml": { "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", "dev": true, "license": "MIT", "dependencies": { @@ -5562,21 +6381,30 @@ }, "node_modules/@zkochan/js-yaml/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/abab": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true, "license": "BSD-3-Clause" }, "node_modules/abbrev": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "license": "ISC" }, "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, "license": "MIT", "dependencies": { @@ -5587,11 +6415,22 @@ "node": ">= 0.6" } }, - "node_modules/acorn": { - "version": "7.4.1", + "node_modules/accepts/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.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5599,16 +6438,64 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "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/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.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, "license": "MIT", "dependencies": { @@ -5621,6 +6508,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -5633,15 +6522,19 @@ } }, "node_modules/adm-zip": { - "version": "0.5.10", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">=12.0" } }, "node_modules/agent-base": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5652,9 +6545,9 @@ } }, "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5666,6 +6559,8 @@ }, "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": { @@ -5678,6 +6573,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, "license": "MIT", "dependencies": { @@ -5693,6 +6590,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -5709,6 +6608,8 @@ }, "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": { @@ -5720,6 +6621,8 @@ }, "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": { @@ -5728,6 +6631,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -5742,6 +6647,8 @@ }, "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" @@ -5753,28 +6660,39 @@ }, "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==", "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "3.2.1", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/any-promise": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true, "license": "MIT" }, "node_modules/anymatch": { - "version": "3.1.2", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -5786,19 +6704,23 @@ }, "node_modules/aproba": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true, "license": "ISC" }, "node_modules/archiver": { - "version": "5.3.1", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", "dev": true, "license": "MIT", "dependencies": { "archiver-utils": "^2.1.0", - "async": "^3.2.3", + "async": "^3.2.4", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", + "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" }, @@ -5808,6 +6730,8 @@ }, "node_modules/archiver-utils": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", "dev": true, "license": "MIT", "dependencies": { @@ -5826,8 +6750,39 @@ "node": ">= 6" } }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/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/archiver-utils/node_modules/readable-stream": { - "version": "2.3.7", + "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": { @@ -5840,8 +6795,17 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/archiver-utils/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/archiver-utils/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": { @@ -5865,29 +6829,40 @@ }, "node_modules/arg": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true, "license": "MIT" }, "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, "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, - "license": "BSD-3-Clause" + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -5897,12 +6872,16 @@ } }, "node_modules/array-flatten": { - "version": "2.1.2", + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "license": "MIT", "engines": { @@ -5911,6 +6890,8 @@ }, "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, "license": "MIT", "engines": { @@ -5918,18 +6899,19 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "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" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -5940,6 +6922,8 @@ }, "node_modules/arrify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "license": "MIT", "engines": { @@ -5948,6 +6932,8 @@ }, "node_modules/asn1": { "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5956,6 +6942,8 @@ }, "node_modules/assert-plus": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true, "license": "MIT", "engines": { @@ -5963,17 +6951,33 @@ } }, "node_modules/async": { - "version": "3.2.4", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true, "license": "MIT" }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/asynckit": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true, "license": "MIT" }, "node_modules/autoprefixer": { - "version": "10.4.14", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "funding": [ { "type": "opencollective", @@ -5982,15 +6986,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", + "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": { @@ -6005,6 +7013,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -6019,6 +7029,8 @@ }, "node_modules/aws-sign2": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6026,14 +7038,16 @@ } }, "node_modules/aws4": { - "version": "1.11.0", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", "dev": true, "license": "MIT" }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dev": true, "license": "MIT", "dependencies": { @@ -6043,24 +7057,39 @@ } }, "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { "node": ">= 6" } }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, "node_modules/babel-loader": { - "version": "9.1.2", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, "license": "MIT", "dependencies": { - "find-cache-dir": "^3.3.2", + "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" }, "engines": { @@ -6073,6 +7102,8 @@ }, "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, "license": "BSD-3-Clause", "dependencies": { @@ -6087,16 +7118,18 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", + "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.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { @@ -6110,34 +7143,77 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@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.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "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" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", + "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, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.5.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@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, + "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" + }, + "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, "license": "MIT" }, "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": [ { @@ -6155,23 +7231,17 @@ ], "license": "MIT" }, - "node_modules/base64id": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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, "license": "MIT" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -6180,6 +7250,8 @@ }, "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, "license": "MIT", "engines": { @@ -6187,14 +7259,21 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "license": "MIT", "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, "license": "MIT", "dependencies": { @@ -6205,6 +7284,8 @@ }, "node_modules/blocking-proxy": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, "license": "MIT", "dependencies": { @@ -6218,9 +7299,9 @@ } }, "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": { @@ -6232,7 +7313,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" @@ -6244,6 +7325,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -6252,6 +7335,8 @@ }, "node_modules/body-parser/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": "MIT", "dependencies": { @@ -6263,38 +7348,49 @@ }, "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, "license": "MIT" }, - "node_modules/body-parser/node_modules/on-finished": { - "version": "2.4.1", + "node_modules/body-parser/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": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "ee-first": "1.1.1" + "side-channel": "^1.0.6" }, "engines": { - "node": ">= 0.8" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/bonjour-service": { - "version": "1.1.1", + "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": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", "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, "license": "MIT", "dependencies": { @@ -6303,17 +7399,28 @@ } }, "node_modules/braces": { - "version": "3.0.2", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/browserslist": { - "version": "4.21.5", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "funding": [ { "type": "opencollective", @@ -6322,14 +7429,18 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "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" @@ -6340,6 +7451,8 @@ }, "node_modules/browserstack": { "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", "dev": true, "license": "MIT", "dependencies": { @@ -6348,6 +7461,8 @@ }, "node_modules/browserstack/node_modules/agent-base": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "license": "MIT", "dependencies": { @@ -6359,6 +7474,8 @@ }, "node_modules/browserstack/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", "dependencies": { @@ -6367,6 +7484,8 @@ }, "node_modules/browserstack/node_modules/https-proxy-agent": { "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -6379,6 +7498,8 @@ }, "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": [ { @@ -6402,6 +7523,8 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, "license": "MIT", "engines": { @@ -6412,10 +7535,13 @@ "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 + "dev": true, + "license": "MIT" }, "node_modules/bytes": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "license": "MIT", "engines": { @@ -6423,89 +7549,78 @@ } }, "node_modules/cacache": { - "version": "17.0.6", + "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", "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.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", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "10.2.4", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.0", - "path-scurry": "^1.7.0" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", + "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", - "engines": { - "node": ">=12" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "ISC" }, "node_modules/call-bind": { - "version": "1.0.7", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "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" + "set-function-length": "^1.2.2" + }, + "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.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -6516,6 +7631,8 @@ }, "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": { @@ -6524,6 +7641,8 @@ }, "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, "license": "MIT", "engines": { @@ -6532,6 +7651,8 @@ }, "node_modules/camelcase-css": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true, "license": "MIT", "engines": { @@ -6539,7 +7660,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001487", + "version": "1.0.30001700", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", + "integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==", "funding": [ { "type": "opencollective", @@ -6558,28 +7681,39 @@ }, "node_modules/caseless": { "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true, "license": "Apache-2.0" }, "node_modules/chalk": { - "version": "2.4.2", + "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": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "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, "license": "MIT" }, "node_modules/chokidar": { "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "funding": [ { "type": "individual", @@ -6605,6 +7739,8 @@ }, "node_modules/chownr": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "license": "ISC", "engines": { @@ -6612,7 +7748,9 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, "license": "MIT", "engines": { @@ -6621,6 +7759,8 @@ }, "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": { @@ -6629,6 +7769,8 @@ }, "node_modules/clean-webpack-plugin": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", "dev": true, "license": "MIT", "dependencies": { @@ -6643,6 +7785,8 @@ }, "node_modules/clean-webpack-plugin/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": { @@ -6654,6 +7798,8 @@ }, "node_modules/clean-webpack-plugin/node_modules/del": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6669,16 +7815,32 @@ "node": ">=6" } }, - "node_modules/clean-webpack-plugin/node_modules/del/node_modules/pify": { - "version": "4.0.1", + "node_modules/clean-webpack-plugin/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/clean-webpack-plugin/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": { @@ -6692,8 +7854,20 @@ "node": ">=0.10.0" } }, + "node_modules/clean-webpack-plugin/node_modules/globby/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", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clean-webpack-plugin/node_modules/is-path-cwd": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, "license": "MIT", "engines": { @@ -6702,6 +7876,8 @@ }, "node_modules/clean-webpack-plugin/node_modules/is-path-in-cwd": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6713,6 +7889,8 @@ }, "node_modules/clean-webpack-plugin/node_modules/is-path-inside": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "license": "MIT", "dependencies": { @@ -6724,6 +7902,8 @@ }, "node_modules/clean-webpack-plugin/node_modules/p-map": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, "license": "MIT", "engines": { @@ -6732,6 +7912,9 @@ }, "node_modules/clean-webpack-plugin/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -6743,6 +7926,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -6754,6 +7939,8 @@ }, "node_modules/cli-spinners": { "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true, "license": "MIT", "engines": { @@ -6765,6 +7952,8 @@ }, "node_modules/cli-width": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, "license": "ISC", "engines": { @@ -6773,6 +7962,8 @@ }, "node_modules/clipboard": { "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", "license": "MIT", "optional": true, "dependencies": { @@ -6783,6 +7974,8 @@ }, "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": "ISC", "dependencies": { @@ -6793,6 +7986,8 @@ }, "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, "license": "MIT", "engines": { @@ -6801,6 +7996,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": { @@ -6813,18 +8010,27 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/color-support": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, "license": "ISC", "bin": { @@ -6833,11 +8039,15 @@ }, "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/colors": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, "license": "MIT", "engines": { @@ -6846,6 +8056,8 @@ }, "node_modules/combined-stream": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "license": "MIT", "dependencies": { @@ -6856,16 +8068,32 @@ } }, "node_modules/commander": { - "version": "2.20.3", - "license": "MIT" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "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, "license": "MIT" }, "node_modules/compress-commons": { - "version": "4.1.1", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", "dev": true, "license": "MIT", "dependencies": { @@ -6880,6 +8108,8 @@ }, "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": { @@ -6890,32 +8120,28 @@ } }, "node_modules/compression": { - "version": "1.7.4", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", "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", - "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", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", "dependencies": { @@ -6924,62 +8150,39 @@ }, "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/concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, - "node_modules/connect": { - "version": "3.7.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/console-control-strings": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true, "license": "ISC" }, "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": { @@ -6989,25 +8192,6 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "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/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", @@ -7019,29 +8203,32 @@ } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "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==", + "license": "MIT" }, "node_modules/cookie": { - "version": "0.4.2", + "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", - "optional": true, - "peer": 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, "license": "MIT" }, "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, "license": "MIT", "dependencies": { @@ -7053,6 +8240,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -7076,6 +8265,8 @@ }, "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": { @@ -7085,12 +8276,47 @@ "node": ">=10.13.0" } }, - "node_modules/core-js-compat": { - "version": "3.30.2", + "node_modules/copy-webpack-plugin/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, "license": "MIT", "dependencies": { - "browserslist": "^4.21.5" + "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/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -7099,25 +8325,15 @@ }, "node_modules/core-util-is": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true, "license": "MIT" }, - "node_modules/cors": { - "version": "2.8.5", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/cose-base": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", "license": "MIT", "optional": true, "dependencies": { @@ -7125,13 +8341,15 @@ } }, "node_modules/cosmiconfig": { - "version": "8.1.3", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "license": "MIT", "dependencies": { - "import-fresh": "^3.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", + "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "engines": { @@ -7139,30 +8357,27 @@ }, "funding": { "url": "https://github.com/sponsors/d-fischer" - } - }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12", - "npm": ">=6" }, "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", - "typescript": ">=3" + "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, "license": "Python-2.0" }, "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": { @@ -7174,6 +8389,8 @@ }, "node_modules/crc-32": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7184,7 +8401,9 @@ } }, "node_modules/crc32-stream": { - "version": "4.0.2", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", "dev": true, "license": "MIT", "dependencies": { @@ -7197,93 +8416,31 @@ }, "node_modules/create-require": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, "license": "MIT" }, "node_modules/critters": { - "version": "0.0.16", + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", "dev": true, "license": "Apache-2.0", "dependencies": { "chalk": "^4.1.0", - "css-select": "^4.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "postcss": "^8.3.7", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", "pretty-bytes": "^5.3.0" } }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "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", - "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" - } - }, - "node_modules/critters/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/critters/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/critters/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/critters/node_modules/parse5": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cross-env": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, "license": "MIT", "dependencies": { @@ -7300,7 +8457,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", + "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": { @@ -7312,29 +8471,17 @@ "node": ">= 8" } }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/css-loader": { - "version": "6.7.3", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.19", + "postcss": "^8.4.21", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-local-by-default": "^4.0.3", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", @@ -7351,29 +8498,17 @@ "webpack": "^5.0.0" } }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/css-select": { - "version": "4.3.0", + "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, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", "nth-check": "^2.0.1" }, "funding": { @@ -7382,6 +8517,8 @@ }, "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, "license": "BSD-2-Clause", "engines": { @@ -7393,6 +8530,8 @@ }, "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": { @@ -7402,32 +8541,54 @@ "node": ">=4" } }, - "node_modules/cuint": { - "version": "0.2.2", + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true, "license": "MIT" }, - "node_modules/custom-event": { - "version": "1.0.1", + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", + "dev": true, + "license": "MIT" }, "node_modules/cytoscape": { - "version": "3.25.0", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.0.tgz", + "integrity": "sha512-zDGn1K/tfZwEnoGOcHc0H4XazqAAXAuDpcYw9mUnUjATjqljyCNGJv8uEvbvxGaGHaVshxMecyl6oc6uKzRfbw==", "license": "MIT", "optional": true, - "dependencies": { - "heap": "^0.2.6", - "lodash": "^4.17.21" - }, "engines": { "node": ">=0.10" } }, "node_modules/cytoscape-cose-bilkent": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", "license": "MIT", "optional": true, "dependencies": { @@ -7439,6 +8600,8 @@ }, "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==", "license": "MIT", "optional": true, "dependencies": { @@ -7450,6 +8613,8 @@ }, "node_modules/cytoscape-fcose/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==", "license": "MIT", "optional": true, "dependencies": { @@ -7458,11 +8623,15 @@ }, "node_modules/cytoscape-fcose/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==", "license": "MIT", "optional": true }, "node_modules/d3": { - "version": "7.8.4", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", "license": "ISC", "dependencies": { "d3-array": "3", @@ -7501,7 +8670,9 @@ } }, "node_modules/d3-array": { - "version": "3.2.0", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "license": "ISC", "dependencies": { "internmap": "1 - 2" @@ -7512,6 +8683,8 @@ }, "node_modules/d3-axis": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", "license": "ISC", "engines": { "node": ">=12" @@ -7519,6 +8692,8 @@ }, "node_modules/d3-brush": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -7533,6 +8708,8 @@ }, "node_modules/d3-chord": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", "license": "ISC", "dependencies": { "d3-path": "1 - 3" @@ -7543,13 +8720,17 @@ }, "node_modules/d3-color": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/d3-contour": { - "version": "4.0.0", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", "license": "ISC", "dependencies": { "d3-array": "^3.2.0" @@ -7559,7 +8740,9 @@ } }, "node_modules/d3-delaunay": { - "version": "6.0.2", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", "license": "ISC", "dependencies": { "delaunator": "5" @@ -7570,6 +8753,8 @@ }, "node_modules/d3-dispatch": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "license": "ISC", "engines": { "node": ">=12" @@ -7577,6 +8762,8 @@ }, "node_modules/d3-drag": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -7588,6 +8775,8 @@ }, "node_modules/d3-dsv": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "license": "ISC", "dependencies": { "commander": "7", @@ -7609,15 +8798,10 @@ "node": ">=12" } }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/d3-ease": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", "license": "BSD-3-Clause", "engines": { "node": ">=12" @@ -7625,6 +8809,8 @@ }, "node_modules/d3-fetch": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", "license": "ISC", "dependencies": { "d3-dsv": "1 - 3" @@ -7635,6 +8821,8 @@ }, "node_modules/d3-force": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -7647,13 +8835,17 @@ }, "node_modules/d3-format": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/d3-geo": { - "version": "3.0.1", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", "license": "ISC", "dependencies": { "d3-array": "2.5.0 - 3" @@ -7663,7 +8855,9 @@ } }, "node_modules/d3-hierarchy": { - "version": "3.1.1", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "license": "ISC", "engines": { "node": ">=12" @@ -7671,6 +8865,8 @@ }, "node_modules/d3-interpolate": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "license": "ISC", "dependencies": { "d3-color": "1 - 3" @@ -7680,7 +8876,9 @@ } }, "node_modules/d3-path": { - "version": "3.0.1", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", "license": "ISC", "engines": { "node": ">=12" @@ -7688,6 +8886,8 @@ }, "node_modules/d3-polygon": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", "license": "ISC", "engines": { "node": ">=12" @@ -7695,6 +8895,8 @@ }, "node_modules/d3-quadtree": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "license": "ISC", "engines": { "node": ">=12" @@ -7702,6 +8904,8 @@ }, "node_modules/d3-random": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", "license": "ISC", "engines": { "node": ">=12" @@ -7709,6 +8913,8 @@ }, "node_modules/d3-scale": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "license": "ISC", "dependencies": { "d3-array": "2.10.0 - 3", @@ -7722,7 +8928,9 @@ } }, "node_modules/d3-scale-chromatic": { - "version": "3.0.0", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", "license": "ISC", "dependencies": { "d3-color": "1 - 3", @@ -7734,23 +8942,29 @@ }, "node_modules/d3-selection": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/d3-shape": { - "version": "3.1.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", "license": "ISC", "dependencies": { - "d3-path": "1 - 3" + "d3-path": "^3.1.0" }, "engines": { "node": ">=12" } }, "node_modules/d3-time": { - "version": "3.0.0", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", "license": "ISC", "dependencies": { "d3-array": "2 - 3" @@ -7761,6 +8975,8 @@ }, "node_modules/d3-time-format": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "license": "ISC", "dependencies": { "d3-time": "1 - 3" @@ -7771,6 +8987,8 @@ }, "node_modules/d3-timer": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "license": "ISC", "engines": { "node": ">=12" @@ -7778,6 +8996,8 @@ }, "node_modules/d3-transition": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", "license": "ISC", "dependencies": { "d3-color": "1 - 3", @@ -7795,6 +9015,8 @@ }, "node_modules/d3-zoom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", "license": "ISC", "dependencies": { "d3-dispatch": "1 - 3", @@ -7809,6 +9031,8 @@ }, "node_modules/dagre-d3-es": { "version": "7.0.9", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.9.tgz", + "integrity": "sha512-rYR4QfVmy+sR44IBDvVtcAmOReGBvRCWDpO2QjYwqgh9yijw6eSHBqaPG/LIOEy7aBsniLvtMW6pg19qJhq60w==", "license": "MIT", "optional": true, "dependencies": { @@ -7818,6 +9042,8 @@ }, "node_modules/dashdash": { "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dev": true, "license": "MIT", "dependencies": { @@ -7829,6 +9055,8 @@ }, "node_modules/data-urls": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "license": "MIT", "dependencies": { "whatwg-mimetype": "^4.0.0", @@ -7838,8 +9066,64 @@ "node": ">=18" } }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "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-fns": { "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" @@ -7852,26 +9136,27 @@ "url": "https://opencollective.com/date-fns" } }, - "node_modules/date-format": { - "version": "4.0.11", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/dayjs": { - "version": "1.11.7", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", "license": "MIT", "optional": true }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true, + "license": "MIT" + }, "node_modules/debug": { - "version": "4.3.4", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -7884,21 +9169,32 @@ }, "node_modules/decamelize": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "dev": true, + "license": "MIT" + }, "node_modules/deep-equal": { - "version": "2.2.1", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.2.2", "is-arguments": "^1.1.1", "is-array-buffer": "^3.0.2", "is-date-object": "^1.0.5", @@ -7908,28 +9204,30 @@ "object-is": "^1.1.5", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", + "regexp.prototype.flags": "^1.5.1", "side-channel": "^1.0.4", "which-boxed-primitive": "^1.0.2", "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-equal/node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, "node_modules/deep-is": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, "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": { @@ -7938,6 +9236,8 @@ }, "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": { @@ -7948,15 +9248,22 @@ } }, "node_modules/defaults": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "license": "MIT", "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, "license": "MIT", "dependencies": { @@ -7973,6 +9280,8 @@ }, "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, "license": "MIT", "engines": { @@ -7981,6 +9290,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, "license": "MIT", "dependencies": { @@ -7997,6 +9308,8 @@ }, "node_modules/del": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8014,6 +9327,8 @@ }, "node_modules/del/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": { @@ -8023,8 +9338,32 @@ "node": ">=0.10.0" } }, + "node_modules/del/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/del/node_modules/globby": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8039,8 +9378,21 @@ "node": ">=0.10.0" } }, + "node_modules/del/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", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/del/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -8051,14 +9403,18 @@ } }, "node_modules/delaunator": { - "version": "5.0.0", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", "license": "ISC", "dependencies": { - "robust-predicates": "^3.0.0" + "robust-predicates": "^3.0.2" } }, "node_modules/delayed-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "license": "MIT", "engines": { @@ -8067,16 +9423,22 @@ }, "node_modules/delegate": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", "license": "MIT", "optional": true }, "node_modules/delegates": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true, "license": "MIT" }, "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, "license": "MIT", "engines": { @@ -8085,6 +9447,8 @@ }, "node_modules/dependency-graph": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, "license": "MIT", "engines": { @@ -8093,6 +9457,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, "license": "MIT", "engines": { @@ -8102,23 +9468,22 @@ }, "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", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/didyoumean": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true, "license": "Apache-2.0" }, "node_modules/diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -8127,6 +9492,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -8138,16 +9505,15 @@ }, "node_modules/dlv": { "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/dns-equal": { - "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true, "license": "MIT" }, "node_modules/dns-packet": { - "version": "5.6.0", + "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": { @@ -8159,6 +9525,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -8168,27 +9536,16 @@ "node": ">=6.0.0" } }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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": "1.4.1", + "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.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" @@ -8196,6 +9553,8 @@ }, "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": [ { @@ -8205,12 +9564,38 @@ ], "license": "BSD-2-Clause" }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, "node_modules/domhandler": { - "version": "4.3.1", + "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.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -8221,17 +9606,21 @@ }, "node_modules/dompurify": { "version": "2.4.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.3.tgz", + "integrity": "sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==", "license": "(MPL-2.0 OR Apache-2.0)", "optional": true }, "node_modules/domutils": { - "version": "2.8.0", + "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": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -8239,24 +9628,47 @@ }, "node_modules/dotenv": { "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=10" } }, + "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/duplexer": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true, "license": "MIT" }, "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, "license": "MIT" }, "node_modules/ecc-jsbn": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dev": true, "license": "MIT", "dependencies": { @@ -8264,8 +9676,17 @@ "safer-buffer": "^2.1.0" } }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "license": "MIT" + }, "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, "license": "MIT" }, @@ -8286,24 +9707,34 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.396", + "version": "1.5.103", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.103.tgz", + "integrity": "sha512-P6+XzIkfndgsrjROJWfSvVEgNHtPgbhVyTkwLjUM2HU/h7pZRORgaTlHqfAikqxKmdJMLW8fftrdGWbd/Ds0FA==", "license": "ISC" }, "node_modules/elkjs": { "version": "0.8.2", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", + "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==", "license": "EPL-2.0", "optional": 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==", "license": "MIT" }, "node_modules/emoji-toolkit": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/emoji-toolkit/-/emoji-toolkit-7.0.1.tgz", + "integrity": "sha512-l5aJyAhpC5s4mDuoVuqt4SzVjwIsIvakPh4ZGJJE4KWuWFCEHaXacQFkStVdD9zbRR+/BbRXob7u99o0lQFr8A==", "license": "MIT" }, "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, "license": "MIT", "engines": { @@ -8311,7 +9742,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "license": "MIT", "engines": { @@ -8320,6 +9753,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, @@ -8329,46 +9764,18 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "license": "MIT", "dependencies": { "once": "^1.4.0" } }, - "node_modules/engine.io": { - "version": "6.4.2", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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.0.3", - "ws": "~8.11.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "5.0.6", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/enhanced-resolve": { - "version": "5.14.0", + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", "dev": true, "license": "MIT", "dependencies": { @@ -8381,6 +9788,8 @@ }, "node_modules/enquirer": { "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "license": "MIT", "dependencies": { @@ -8390,23 +9799,23 @@ "node": ">=8.6" } }, - "node_modules/ent": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/entities": { - "version": "2.2.0", - "dev": true, + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": 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, "license": "MIT", "engines": { @@ -8415,11 +9824,15 @@ }, "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, @@ -8432,6 +9845,8 @@ }, "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", "dependencies": { @@ -8439,51 +9854,63 @@ } }, "node_modules/es-abstract": { - "version": "1.22.5", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.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", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.1", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "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", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.0", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "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.5", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -8493,18 +9920,19 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", + "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", - "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, "license": "MIT", "engines": { @@ -8513,6 +9941,8 @@ }, "node_modules/es-get-iterator": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dev": true, "license": "MIT", "dependencies": { @@ -8530,37 +9960,52 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-get-iterator/node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, "node_modules/es-module-lexer": { - "version": "1.2.1", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true, "license": "MIT" }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-to-primitive": { - "version": "1.2.1", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -8571,11 +10016,15 @@ }, "node_modules/es6-promise": { "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true, "license": "MIT" }, "node_modules/es6-promisify": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8583,7 +10032,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.18", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -8594,32 +10045,34 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.18", - "@esbuild/android-arm64": "0.17.18", - "@esbuild/android-x64": "0.17.18", - "@esbuild/darwin-arm64": "0.17.18", - "@esbuild/darwin-x64": "0.17.18", - "@esbuild/freebsd-arm64": "0.17.18", - "@esbuild/freebsd-x64": "0.17.18", - "@esbuild/linux-arm": "0.17.18", - "@esbuild/linux-arm64": "0.17.18", - "@esbuild/linux-ia32": "0.17.18", - "@esbuild/linux-loong64": "0.17.18", - "@esbuild/linux-mips64el": "0.17.18", - "@esbuild/linux-ppc64": "0.17.18", - "@esbuild/linux-riscv64": "0.17.18", - "@esbuild/linux-s390x": "0.17.18", - "@esbuild/linux-x64": "0.17.18", - "@esbuild/netbsd-x64": "0.17.18", - "@esbuild/openbsd-x64": "0.17.18", - "@esbuild/sunos-x64": "0.17.18", - "@esbuild/win32-arm64": "0.17.18", - "@esbuild/win32-ia32": "0.17.18", - "@esbuild/win32-x64": "0.17.18" + "@esbuild/android-arm": "0.18.17", + "@esbuild/android-arm64": "0.18.17", + "@esbuild/android-x64": "0.18.17", + "@esbuild/darwin-arm64": "0.18.17", + "@esbuild/darwin-x64": "0.18.17", + "@esbuild/freebsd-arm64": "0.18.17", + "@esbuild/freebsd-x64": "0.18.17", + "@esbuild/linux-arm": "0.18.17", + "@esbuild/linux-arm64": "0.18.17", + "@esbuild/linux-ia32": "0.18.17", + "@esbuild/linux-loong64": "0.18.17", + "@esbuild/linux-mips64el": "0.18.17", + "@esbuild/linux-ppc64": "0.18.17", + "@esbuild/linux-riscv64": "0.18.17", + "@esbuild/linux-s390x": "0.18.17", + "@esbuild/linux-x64": "0.18.17", + "@esbuild/netbsd-x64": "0.18.17", + "@esbuild/openbsd-x64": "0.18.17", + "@esbuild/sunos-x64": "0.18.17", + "@esbuild/win32-arm64": "0.18.17", + "@esbuild/win32-ia32": "0.18.17", + "@esbuild/win32-x64": "0.18.17" } }, "node_modules/esbuild-wasm": { - "version": "0.17.18", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.18.17.tgz", + "integrity": "sha512-9OHGcuRzy+I8ziF9FzjfKLWAPbvi0e/metACVg9k6bK+SI4FFxeV6PcZsz8RIVaMD4YNehw+qj6UMR3+qj/EuQ==", "dev": true, "license": "MIT", "bin": { @@ -8630,7 +10083,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "license": "MIT", "engines": { "node": ">=6" @@ -8638,37 +10093,82 @@ }, "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, "license": "MIT" }, "node_modules/escape-string-regexp": { - "version": "1.0.5", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/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/eslint": { - "version": "8.40.0", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -8676,22 +10176,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -8705,106 +10202,9 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "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/eslint/node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "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" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8818,16 +10218,47 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "license": "BSD-2-Clause", + "license": "Apache-2.0", "engines": { - "node": ">=4.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/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/eslint/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": { @@ -8843,6 +10274,8 @@ }, "node_modules/eslint/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": { @@ -8853,7 +10286,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8866,24 +10301,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/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": { @@ -8895,11 +10316,15 @@ }, "node_modules/eslint/node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, "node_modules/eslint/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": { @@ -8912,19 +10337,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/eslint/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": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "yocto-queue": "^0.1.0" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/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": { @@ -8937,19 +10369,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -8960,11 +10383,13 @@ } }, "node_modules/espree": { - "version": "9.5.2", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -8975,19 +10400,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/acorn": { - "version": "8.8.2", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.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, "license": "BSD-2-Clause", "bin": { @@ -8999,7 +10415,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9009,16 +10427,10 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.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, "license": "BSD-2-Clause", "dependencies": { @@ -9028,16 +10440,10 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/estraverse": { - "version": "4.3.0", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -9046,11 +10452,15 @@ }, "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" }, "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": { @@ -9059,6 +10469,8 @@ }, "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, "license": "MIT", "engines": { @@ -9067,16 +10479,22 @@ }, "node_modules/eventemitter-asyncresource": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true, "license": "MIT" }, "node_modules/eventemitter3": { "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true, "license": "MIT" }, "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, "license": "MIT", "engines": { @@ -9085,6 +10503,8 @@ }, "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": { @@ -9105,52 +10525,62 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/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, + "license": "ISC" + }, "node_modules/exit": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "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 + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.2.tgz", + "integrity": "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==", + "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.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "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": "0.7.1", "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.12", "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", @@ -9159,98 +10589,56 @@ }, "engines": { "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "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, - "license": "MIT", - "engines": { - "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "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/finalhandler": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "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, "license": "MIT" }, - "node_modules/express/node_modules/on-finished": { - "version": "2.4.1", + "node_modules/express/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": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "ee-first": "1.1.1" + "side-channel": "^1.0.6" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "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/express/node_modules/statuses": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "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, "license": "MIT" }, "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": { @@ -9264,6 +10652,8 @@ }, "node_modules/external-editor/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": "MIT", "dependencies": { @@ -9273,8 +10663,23 @@ "node": ">=0.10.0" } }, + "node_modules/external-editor/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" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/extsprintf": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "dev": true, "engines": [ "node >=0.6.0" @@ -9283,11 +10688,15 @@ }, "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, "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.2.12", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "license": "MIT", "dependencies": { @@ -9303,17 +10712,22 @@ }, "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, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, "node_modules/fastq": { - "version": "1.13.0", - "dev": true, + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -9321,6 +10735,8 @@ }, "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": { @@ -9332,6 +10748,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -9344,8 +10762,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/figures/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "license": "MIT", "dependencies": { @@ -9357,6 +10787,8 @@ }, "node_modules/filelist": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9365,6 +10797,8 @@ }, "node_modules/filelist/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": { @@ -9373,6 +10807,8 @@ }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -9383,7 +10819,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -9393,18 +10831,18 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "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": { @@ -9413,39 +10851,42 @@ }, "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", - "optional": true, - "peer": 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, - "license": "MIT", - "optional": true, - "peer": true + "license": "MIT" }, "node_modules/find-cache-dir": { - "version": "3.3.2", + "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": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "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, "license": "MIT", "dependencies": { @@ -9458,6 +10899,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": { @@ -9465,11 +10908,14 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -9477,14 +10923,16 @@ } }, "node_modules/flatted": { - "version": "3.2.6", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, "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==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, "funding": [ { @@ -9503,15 +10951,25 @@ } }, "node_modules/for-each": { - "version": "0.3.3", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/foreground-child": { - "version": "3.1.1", + "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": { @@ -9525,19 +10983,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.0.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/forever-agent": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -9545,20 +10994,25 @@ } }, "node_modules/form-data": { - "version": "2.3.3", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz", + "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.35" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "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": { @@ -9566,18 +11020,22 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "license": "MIT", "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "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": { @@ -9586,46 +11044,71 @@ }, "node_modules/fs-constants": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true, "license": "MIT" }, "node_modules/fs-extra": { - "version": "10.1.0", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs-minipass": { - "version": "3.0.2", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, "license": "ISC", "dependencies": { - "minipass": "^5.0.0" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/fs-monkey": { - "version": "1.0.3", + "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, "license": "Unlicense" }, "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, "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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, "license": "MIT", "funding": { @@ -9633,14 +11116,18 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "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" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -9651,6 +11138,8 @@ }, "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", "funding": { @@ -9659,6 +11148,8 @@ }, "node_modules/fuse.js": { "version": "6.6.2", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", + "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", "license": "Apache-2.0", "engines": { "node": ">=10" @@ -9685,8 +11176,17 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/gauge/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, + "license": "ISC" + }, "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==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -9694,21 +11194,30 @@ }, "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==", "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", + "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" @@ -9719,14 +11228,32 @@ }, "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, "license": "MIT", "engines": { "node": ">=8.0.0" } }, + "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-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": { @@ -9737,13 +11264,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -9754,6 +11283,8 @@ }, "node_modules/getpass": { "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "license": "MIT", "dependencies": { @@ -9761,19 +11292,21 @@ } }, "node_modules/glob": { - "version": "7.1.7", + "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": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "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": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9781,6 +11314,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==", "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -9791,22 +11326,55 @@ }, "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/glob/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/glob/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/globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globalthis": { - "version": "1.0.3", + "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": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -9816,18 +11384,21 @@ } }, "node_modules/globby": { - "version": "13.1.4", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "license": "MIT", "dependencies": { + "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", - "slash": "^4.0.0" + "slash": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9835,6 +11406,8 @@ }, "node_modules/good-listener": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", "license": "MIT", "optional": true, "dependencies": { @@ -9842,28 +11415,49 @@ } }, "node_modules/gopd": { - "version": "1.0.1", + "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": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/graceful-fs": { - "version": "4.2.9", + "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, "license": "ISC" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, "license": "MIT" }, + "node_modules/guess-parser": { + "version": "0.4.22", + "resolved": "https://registry.npmjs.org/guess-parser/-/guess-parser-0.4.22.tgz", + "integrity": "sha512-KcUWZ5ACGaBM69SbqwVIuWGoSAgD+9iJnchR9j/IarVI1jHVeXv+bUXBIMeqVMSKt3zrn0Dgf9UpcOEpPBLbSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@wessberg/ts-evaluator": "0.0.27" + }, + "peerDependencies": { + "typescript": ">=3.7.5" + } + }, "node_modules/gzip-size": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -9878,11 +11472,15 @@ }, "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/har-schema": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "dev": true, "license": "ISC", "engines": { @@ -9891,6 +11489,9 @@ }, "node_modules/har-validator": { "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dev": true, "license": "MIT", "dependencies": { @@ -9903,6 +11504,8 @@ }, "node_modules/har-validator/node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { @@ -9918,22 +11521,15 @@ }, "node_modules/har-validator/node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, - "node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-ansi": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, "license": "MIT", "dependencies": { @@ -9945,6 +11541,8 @@ }, "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "license": "MIT", "engines": { @@ -9952,22 +11550,32 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "3.0.0", + "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": ">=4" + "node": ">=8" } }, "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, "license": "MIT", "dependencies": { @@ -9978,9 +11586,14 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -9989,7 +11602,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", + "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": { @@ -10001,6 +11616,8 @@ }, "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": { @@ -10015,11 +11632,15 @@ }, "node_modules/has-unicode": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true, "license": "ISC" }, "node_modules/hasown": { - "version": "2.0.1", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10031,6 +11652,8 @@ }, "node_modules/hdr-histogram-js": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", "dev": true, "license": "BSD", "dependencies": { @@ -10041,16 +11664,15 @@ }, "node_modules/hdr-histogram-percentiles-obj": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", "dev": true, "license": "MIT" }, - "node_modules/heap": { - "version": "0.2.7", - "license": "MIT", - "optional": true - }, "node_modules/hosted-git-info": { - "version": "6.1.1", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz", + "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==", "dev": true, "license": "ISC", "dependencies": { @@ -10062,6 +11684,8 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "license": "ISC", "engines": { @@ -10070,6 +11694,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==", "dev": true, "license": "MIT", "dependencies": { @@ -10079,8 +11705,17 @@ "wbuf": "^1.1.0" } }, + "node_modules/hpack.js/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/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": { @@ -10093,31 +11728,121 @@ "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, + "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/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-encoding-sniffer/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": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-encoding-sniffer/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, "node_modules/html-entities": { - "version": "2.3.3", + "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, "license": "MIT" }, + "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" + } + ], + "license": "MIT", + "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, "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==", "dev": true, "license": "MIT", "dependencies": { @@ -10131,21 +11856,17 @@ "node": ">= 0.8" } }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/http-parser-js": { - "version": "0.5.8", + "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" }, "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, "license": "MIT", "dependencies": { @@ -10158,11 +11879,13 @@ } }, "node_modules/http-proxy-agent": { - "version": "5.0.0", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "2", + "@tootallnate/once": "1", "agent-base": "6", "debug": "4" }, @@ -10171,7 +11894,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.6", + "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": { @@ -10195,6 +11920,8 @@ }, "node_modules/http-signature": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10209,6 +11936,8 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "license": "MIT", "dependencies": { @@ -10221,6 +11950,8 @@ }, "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, "license": "Apache-2.0", "engines": { @@ -10229,6 +11960,8 @@ }, "node_modules/humanize-ms": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10237,6 +11970,8 @@ }, "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==", "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -10247,6 +11982,8 @@ }, "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": { @@ -10258,6 +11995,8 @@ }, "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": [ { @@ -10277,6 +12016,8 @@ }, "node_modules/ignore": { "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "license": "MIT", "engines": { @@ -10298,6 +12039,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -10305,9 +12048,9 @@ } }, "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": { @@ -10322,6 +12065,8 @@ }, "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, "license": "MIT", "optional": true, @@ -10334,16 +12079,22 @@ }, "node_modules/immediate": { "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "dev": true, "license": "MIT" }, "node_modules/immutable": { - "version": "4.3.0", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", "dev": true, "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", + "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": { @@ -10357,8 +12108,20 @@ "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, + "license": "MIT", + "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, "license": "MIT", "engines": { @@ -10367,6 +12130,8 @@ }, "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, "license": "MIT", "engines": { @@ -10375,11 +12140,17 @@ }, "node_modules/infer-owner": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true, "license": "ISC" }, "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -10388,6 +12159,9 @@ }, "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, "license": "ISC" }, "node_modules/ini": { @@ -10402,6 +12176,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==", "dev": true, "license": "MIT", "dependencies": { @@ -10410,6 +12186,8 @@ }, "node_modules/inquirer": { "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, "license": "MIT", "dependencies": { @@ -10433,78 +12211,16 @@ "node": ">=12.0.0" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "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/inquirer/node_modules/chalk": { - "version": "4.1.2", - "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" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/internal-slot": { - "version": "1.0.7", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -10512,6 +12228,8 @@ }, "node_modules/internmap": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "license": "ISC", "engines": { "node": ">=12" @@ -10522,6 +12240,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" @@ -10530,14 +12249,17 @@ "node": ">= 12" } }, - "node_modules/ip-address/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/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, + "license": "BSD-3-Clause" }, "node_modules/ipaddr.js": { - "version": "2.0.1", + "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": { @@ -10545,12 +12267,14 @@ } }, "node_modules/is-arguments": { - "version": "1.1.1", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10560,12 +12284,15 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -10576,15 +12303,42 @@ }, "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, "license": "MIT" }, - "node_modules/is-bigint": { - "version": "1.0.4", + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10592,6 +12346,8 @@ }, "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==", "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -10601,12 +12357,14 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.2", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10615,33 +12373,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-builtin-module/node_modules/builtin-modules": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "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, "license": "MIT", "engines": { @@ -10652,22 +12387,48 @@ } }, "node_modules/is-core-module": { - "version": "2.12.0", + "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": { - "has": "^1.0.3" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "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", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10678,6 +12439,8 @@ }, "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, "license": "MIT", "bin": { @@ -10692,20 +12455,61 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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==", "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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==", "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -10716,6 +12520,8 @@ }, "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", "engines": { @@ -10724,24 +12530,15 @@ }, "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-map": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/is-negative-zero": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "license": "MIT", "engines": { @@ -10751,19 +12548,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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, + "license": "MIT" + }, "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==", "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { - "version": "1.0.7", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10774,6 +12583,8 @@ }, "node_modules/is-path-cwd": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", "dev": true, "license": "MIT", "engines": { @@ -10782,6 +12593,8 @@ }, "node_modules/is-path-in-cwd": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10791,8 +12604,10 @@ "node": ">=0.10.0" } }, - "node_modules/is-path-inside": { + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", "dev": true, "license": "MIT", "dependencies": { @@ -10802,8 +12617,20 @@ "node": ">=0.10.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "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": { @@ -10815,6 +12642,8 @@ }, "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": { @@ -10824,13 +12653,24 @@ "node": ">=0.10.0" } }, + "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" + }, "node_modules/is-regex": { - "version": "1.1.4", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -10840,19 +12680,26 @@ } }, "node_modules/is-set": { - "version": "2.0.2", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -10863,6 +12710,8 @@ }, "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, "license": "MIT", "engines": { @@ -10873,11 +12722,14 @@ } }, "node_modules/is-string": { - "version": "1.0.7", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10887,11 +12739,15 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -10901,11 +12757,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -10916,11 +12774,15 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true, "license": "MIT" }, "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", "engines": { @@ -10931,31 +12793,46 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { - "version": "1.0.2", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.2", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10963,11 +12840,15 @@ }, "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, "license": "MIT" }, "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, "license": "MIT", "dependencies": { @@ -10978,30 +12859,23 @@ } }, "node_modules/isarray": { - "version": "1.0.0", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, "license": "MIT" }, - "node_modules/isbinaryfile": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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, "license": "ISC" }, "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": { @@ -11010,11 +12884,15 @@ }, "node_modules/isstream": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true, "license": "MIT" }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", + "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": "BSD-3-Clause", "engines": { @@ -11023,6 +12901,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, "license": "BSD-3-Clause", "dependencies": { @@ -11047,15 +12927,14 @@ } }, "node_modules/jackspeak": { - "version": "2.2.0", + "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" }, @@ -11064,7 +12943,9 @@ } }, "node_modules/jake": { - "version": "10.8.6", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -11080,83 +12961,10 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "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/jake/node_modules/chalk": { - "version": "4.1.2", - "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" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jasmine": { "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", "dev": true, "license": "MIT", "dependencies": { @@ -11169,25 +12977,55 @@ } }, "node_modules/jasmine-core": { - "version": "5.0.0", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.6.0.tgz", + "integrity": "sha512-niVlkeYVRwKFpmfWg6suo6H9CrNnydfBLEqefM5UjibYS+UoTjZdmvPJSiuyrRLGnFj1eYRhFd/ch+5hSlsFVA==", "dev": true, "license": "MIT" }, "node_modules/jasmine-spec-reporter": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", + "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", "dev": true, "license": "Apache-2.0", "dependencies": { "colors": "1.4.0" } }, + "node_modules/jasmine/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jasmine/node_modules/jasmine-core": { "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", "dev": true, "license": "MIT" }, "node_modules/jasminewd2": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==", "dev": true, "license": "MIT", "engines": { @@ -11195,7 +13033,9 @@ } }, "node_modules/jest-worker": { - "version": "27.4.6", + "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, "license": "MIT", "dependencies": { @@ -11207,16 +13047,10 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "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, "license": "MIT", "dependencies": { @@ -11230,28 +13064,25 @@ } }, "node_modules/jiti": { - "version": "1.18.2", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "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==", "license": "MIT" }, "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, "license": "MIT", "dependencies": { @@ -11264,6 +13095,8 @@ }, "node_modules/js-yaml-loader": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/js-yaml-loader/-/js-yaml-loader-1.2.2.tgz", + "integrity": "sha512-H+NeuNrG6uOs/WMjna2SjkaCw13rMWiT/D7l9+9x5n8aq88BDsh2sRmdfxckWPIHtViYHWRG6XiCKYvS1dfyLg==", "dev": true, "license": "MIT", "dependencies": { @@ -11274,6 +13107,8 @@ }, "node_modules/js-yaml-loader/node_modules/json5": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", "dependencies": { @@ -11285,6 +13120,8 @@ }, "node_modules/js-yaml-loader/node_modules/loader-utils": { "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, "license": "MIT", "dependencies": { @@ -11297,12 +13134,143 @@ } }, "node_modules/jsbn": { - "version": "0.1.1", + "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/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsdom/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": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsdom/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsdom/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/jsdom/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jsesc": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -11311,38 +13279,59 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "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, "license": "MIT" }, "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/json-schema": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", "dev": true, "license": "(AFL-2.1 OR BSD-3-Clause)" }, "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, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true, "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -11353,11 +13342,15 @@ }, "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, "license": "MIT" }, "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, "license": "MIT", "dependencies": { @@ -11369,6 +13362,8 @@ }, "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" @@ -11377,6 +13372,8 @@ }, "node_modules/jsprim": { "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dev": true, "license": "MIT", "dependencies": { @@ -11391,6 +13388,8 @@ }, "node_modules/jszip": { "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { @@ -11400,8 +13399,17 @@ "setimmediate": "^1.0.5" } }, + "node_modules/jszip/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/jszip/node_modules/readable-stream": { - "version": "2.3.7", + "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": { @@ -11414,130 +13422,37 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/jszip/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/jszip/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/karma": { - "version": "6.4.2", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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.4.1", - "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-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/karma/node_modules/mkdirp": { - "version": "0.5.6", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/karma/node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, "node_modules/katex": { - "version": "0.16.10", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz", - "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==", + "version": "0.16.21", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", + "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -11553,18 +13468,34 @@ }, "node_modules/katex/node_modules/commander": { "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "license": "MIT", "optional": true, "engines": { "node": ">= 12" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/khroma": { - "version": "2.0.0", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", "optional": true }, "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": { @@ -11573,6 +13504,8 @@ }, "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, "license": "MIT", "engines": { @@ -11580,21 +13513,27 @@ } }, "node_modules/launch-editor": { - "version": "2.6.0", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", "dev": true, "license": "MIT", "dependencies": { "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" + "shell-quote": "^1.8.1" } }, "node_modules/layout-base": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", "license": "MIT", "optional": true }, "node_modules/lazystream": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, "license": "MIT", "dependencies": { @@ -11604,8 +13543,17 @@ "node": ">= 0.6.3" } }, + "node_modules/lazystream/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/lazystream/node_modules/readable-stream": { - "version": "2.3.7", + "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": { @@ -11618,8 +13566,17 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "license": "MIT", "dependencies": { @@ -11628,6 +13585,8 @@ }, "node_modules/less": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -11653,6 +13612,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -11670,53 +13631,10 @@ "webpack": "^5.0.0" } }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/mime": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/pify": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "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, - "license": "ISC", - "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, @@ -11726,6 +13644,8 @@ }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11738,6 +13658,8 @@ }, "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": "ISC", "dependencies": { @@ -11754,6 +13676,8 @@ }, "node_modules/lie": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11761,20 +13685,32 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { - "version": "1.2.4", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.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==", "dev": true, "license": "MIT", "dependencies": { @@ -11789,6 +13725,8 @@ }, "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": { @@ -11801,6 +13739,8 @@ }, "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", "engines": { @@ -11808,7 +13748,9 @@ } }, "node_modules/loader-runner": { - "version": "4.2.0", + "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", "engines": { @@ -11817,6 +13759,8 @@ }, "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, "license": "MIT", "engines": { @@ -11825,6 +13769,8 @@ }, "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": "MIT", "dependencies": { @@ -11836,51 +13782,71 @@ }, "node_modules/lodash": { "version": "4.17.21", - "devOptional": true, + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", "license": "MIT", "optional": 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/lodash.defaults": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", "dev": true, "license": "MIT" }, "node_modules/lodash.difference": { "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", "dev": true, "license": "MIT" }, "node_modules/lodash.flatten": { "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", "dev": true, "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", "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" }, "node_modules/lodash.union": { "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", "dev": true, "license": "MIT" }, "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, "license": "MIT", "dependencies": { @@ -11894,139 +13860,65 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "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/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "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" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log4js": { - "version": "6.6.0", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "date-format": "^4.0.11", - "debug": "^4.3.4", - "flatted": "^3.2.5", - "rfdc": "^1.3.0", - "streamroller": "^3.1.1" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/lru-cache": { - "version": "6.0.0", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "license": "ISC", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/magic-string": { - "version": "0.30.0", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" } }, "node_modules/make-dir": { - "version": "3.1.0", + "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, "license": "MIT", + "optional": true, "dependencies": { - "semver": "^6.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", + "optional": true, "bin": { - "semver": "bin/semver.js" + "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, "license": "ISC" }, "node_modules/make-fetch-happen": { "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "dev": true, "license": "ISC", "dependencies": { @@ -12053,6 +13945,8 @@ }, "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12063,8 +13957,20 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/make-fetch-happen/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": { @@ -12073,6 +13979,8 @@ }, "node_modules/make-fetch-happen/node_modules/cacache": { "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12101,6 +14009,8 @@ }, "node_modules/make-fetch-happen/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": { @@ -12131,8 +14041,25 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/make-fetch-happen/node_modules/lru-cache": { "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "license": "ISC", "engines": { @@ -12141,6 +14068,8 @@ }, "node_modules/make-fetch-happen/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -12152,6 +14081,8 @@ }, "node_modules/make-fetch-happen/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": { @@ -12161,8 +14092,23 @@ "node": ">=8" } }, + "node_modules/make-fetch-happen/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/make-fetch-happen/node_modules/ssri": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "license": "ISC", "dependencies": { @@ -12174,6 +14120,8 @@ }, "node_modules/make-fetch-happen/node_modules/unique-filename": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, "license": "ISC", "dependencies": { @@ -12185,6 +14133,8 @@ }, "node_modules/make-fetch-happen/node_modules/unique-slug": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, "license": "ISC", "dependencies": { @@ -12194,8 +14144,17 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/make-fetch-happen/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/marked": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "license": "MIT", "peer": true, "bin": { @@ -12205,8 +14164,20 @@ "node": ">= 12" } }, + "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": { "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", "engines": { @@ -12214,11 +14185,13 @@ } }, "node_modules/memfs": { - "version": "3.5.1", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "license": "Unlicense", "dependencies": { - "fs-monkey": "^1.0.3" + "fs-monkey": "^1.0.4" }, "engines": { "node": ">= 4.0.0" @@ -12226,24 +14199,34 @@ }, "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", + "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" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "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/merge2": { "version": "1.4.1", - "dev": true, + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "license": "MIT", "engines": { "node": ">= 8" @@ -12251,6 +14234,8 @@ }, "node_modules/mermaid": { "version": "9.4.3", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.4.3.tgz", + "integrity": "sha512-TLkQEtqhRSuEHSE34lh5bCa94KATCyluAXmFnNI2PRZwOpXFeqiJWwZl+d2CcemE1RS6QbbueSSq9QIg8Uxcyw==", "license": "MIT", "optional": true, "dependencies": { @@ -12272,16 +14257,10 @@ "web-worker": "^1.2.0" } }, - "node_modules/mermaid/node_modules/uuid": { - "version": "9.0.0", - "license": "MIT", - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "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, "license": "MIT", "engines": { @@ -12289,11 +14268,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "dev": true, + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -12301,20 +14281,22 @@ } }, "node_modules/mime": { - "version": "2.6.0", + "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, - "peer": true, "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=4" } }, "node_modules/mime-db": { - "version": "1.51.0", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "license": "MIT", "engines": { @@ -12322,11 +14304,13 @@ } }, "node_modules/mime-types": { - "version": "2.1.34", + "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, "license": "MIT", "dependencies": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -12334,6 +14318,8 @@ }, "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", "engines": { @@ -12341,7 +14327,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.5", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", "dev": true, "license": "MIT", "dependencies": { @@ -12360,11 +14348,15 @@ }, "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.0.5", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -12375,42 +14367,42 @@ } }, "node_modules/minimist": { - "version": "1.2.6", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "license": "MIT" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { - "version": "5.0.0", + "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": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-collect": { - "version": "1.0.2", + "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": "^3.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-fetch": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dev": true, "license": "MIT", "dependencies": { @@ -12427,6 +14419,8 @@ }, "node_modules/minipass-fetch/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": { @@ -12436,8 +14430,17 @@ "node": ">=8" } }, + "node_modules/minipass-fetch/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-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": { @@ -12449,6 +14452,8 @@ }, "node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -12458,8 +14463,17 @@ "node": ">=8" } }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/minipass-json-stream": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.2.tgz", + "integrity": "sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==", "dev": true, "license": "MIT", "dependencies": { @@ -12469,6 +14483,8 @@ }, "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, "license": "ISC", "dependencies": { @@ -12478,8 +14494,17 @@ "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": { @@ -12491,6 +14516,8 @@ }, "node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -12500,8 +14527,17 @@ "node": ">=8" } }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/minipass-sized": { "version": "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": { @@ -12513,6 +14549,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": { @@ -12522,8 +14560,17 @@ "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": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "license": "MIT", "dependencies": { @@ -12536,6 +14583,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, "license": "ISC", "dependencies": { @@ -12545,8 +14594,17 @@ "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, + "license": "ISC" + }, "node_modules/mkdirp": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "license": "MIT", "bin": { @@ -12558,6 +14616,8 @@ }, "node_modules/mrmime": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", "dev": true, "license": "MIT", "engines": { @@ -12565,11 +14625,15 @@ } }, "node_modules/ms": { - "version": "2.1.2", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "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": { @@ -12582,11 +14646,15 @@ }, "node_modules/mute-stream": { "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true, "license": "ISC" }, "node_modules/mz": { "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, "license": "MIT", "dependencies": { @@ -12596,7 +14664,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -12613,21 +14683,26 @@ }, "node_modules/natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, "license": "MIT" }, "node_modules/natural-compare-lite": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true, "license": "MIT" }, "node_modules/needle": { - "version": "3.2.0", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "debug": "^3.2.6", "iconv-lite": "^0.6.3", "sax": "^1.2.4" }, @@ -12638,17 +14713,10 @@ "node": ">= 4.4.x" } }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/negotiator": { - "version": "0.6.3", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true, "license": "MIT", "engines": { @@ -12657,11 +14725,15 @@ }, "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, "license": "MIT" }, "node_modules/ng-packagr": { - "version": "16.0.1", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-16.2.3.tgz", + "integrity": "sha512-VTJ7Qtge52+1subkhmF5nOqLNbVutA8/igJ0A5vH6Mgpb8Z/3HeZomtD1SHzZF5Dqp+p+QPHE548FWYu1MdMSQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12671,19 +14743,19 @@ "ansi-colors": "^4.1.3", "autoprefixer": "^10.4.12", "browserslist": "^4.21.4", - "cacache": "^17.0.0", + "cacache": "^18.0.0", "chokidar": "^3.5.3", - "commander": "^10.0.0", + "commander": "^11.0.0", "convert-source-map": "^2.0.0", "dependency-graph": "^0.11.0", - "esbuild-wasm": "^0.17.0", + "esbuild-wasm": "^0.19.0", "fast-glob": "^3.2.12", "find-cache-dir": "^3.3.2", "injection-js": "^2.4.0", "jsonc-parser": "^3.2.0", "less": "^4.1.3", "ora": "^5.1.0", - "piscina": "^3.2.0", + "piscina": "^4.0.0", "postcss": "^8.4.16", "postcss-url": "^10.1.3", "rollup": "^3.0.0", @@ -12697,13 +14769,13 @@ "node": "^16.14.0 || >=18.10.0" }, "optionalDependencies": { - "esbuild": "^0.17.0" + "esbuild": "^0.19.0" }, "peerDependencies": { - "@angular/compiler-cli": "^16.0.0-next.0", + "@angular/compiler-cli": "^16.0.0 || ^16.2.0-next.0", "tailwindcss": "^2.0.0 || ^3.0.0", "tslib": "^2.3.0", - "typescript": ">=4.9.3 <5.1" + "typescript": ">=4.9.3 <5.2" }, "peerDependenciesMeta": { "tailwindcss": { @@ -12711,21 +14783,511 @@ } } }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/ng-packagr/node_modules/commander": { - "version": "10.0.1", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=14" + "node": ">=16" } }, "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": "MIT" }, + "node_modules/ng-packagr/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, + "license": "MIT", + "optional": 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/ng-packagr/node_modules/esbuild-wasm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.12.tgz", + "integrity": "sha512-Zmc4hk6FibJZBcTx5/8K/4jT3/oG1vkGTEeKJUQFCUQKimD6Q7+adp/bdVQyYJFolMKaXkQnVZdV4O5ZaTYmyQ==", + "dev": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "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", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/ng-zorro-antd": { - "version": "16.1.0", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/ng-zorro-antd/-/ng-zorro-antd-16.2.2.tgz", + "integrity": "sha512-Y7ALO+iRjqBfVW9hqnlU4jJUovM5r6wNzXuwTxKIo/5c35/PJFwk++73iwhas6pCb3+kFucwL5XTUWUoLce3wQ==", "license": "MIT", "dependencies": { "@angular/cdk": "^16.0.0", @@ -12744,6 +15306,8 @@ }, "node_modules/ngx-markdown": { "version": "16.0.0", + "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-16.0.0.tgz", + "integrity": "sha512-/rlbXi+HBscJCDdwaTWIUrRkvwJicPnuAgeugOCZa0UbZ4VCWV3U0+uB1Zv6krRDF6FXJNXNLTUrMZV7yH8I6A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -12767,6 +15331,8 @@ }, "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", @@ -12781,16 +15347,22 @@ }, "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, "license": "MIT" }, "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" }, "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": { @@ -12824,7 +15396,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.5.0", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "dev": true, "license": "MIT", "bin": { @@ -12833,31 +15407,45 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "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": ">= 8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/node-releases": { - "version": "2.0.10", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "license": "MIT" }, "node_modules/non-layered-tidy-tree-layout": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", + "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==", "license": "MIT", "optional": true }, "node_modules/nopt": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", "dev": true, "license": "ISC", "dependencies": { @@ -12872,6 +15460,8 @@ }, "node_modules/normalize-package-data": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -12886,6 +15476,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==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -12893,6 +15485,8 @@ }, "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==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -12926,6 +15520,8 @@ }, "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": { @@ -12934,6 +15530,8 @@ }, "node_modules/npm-package-arg": { "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", "dev": true, "license": "ISC", "dependencies": { @@ -12948,6 +15546,8 @@ }, "node_modules/npm-packlist": { "version": "7.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", + "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", "dev": true, "license": "ISC", "dependencies": { @@ -12959,6 +15559,8 @@ }, "node_modules/npm-pick-manifest": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", + "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", "dev": true, "license": "ISC", "dependencies": { @@ -12973,6 +15575,8 @@ }, "node_modules/npm-registry-fetch": { "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "license": "ISC", "dependencies": { @@ -12988,8 +15592,69 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm-registry-fetch/node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/cacache/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": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/npm-registry-fetch/node_modules/lru-cache": { "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "license": "ISC", "engines": { @@ -12998,6 +15663,8 @@ }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "license": "ISC", "dependencies": { @@ -13021,6 +15688,42 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm-registry-fetch/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/npm-registry-fetch/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm-registry-fetch/node_modules/minipass-collect/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/npm-registry-fetch/node_modules/minipass-fetch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", @@ -13044,12 +15747,22 @@ "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" } }, + "node_modules/npm-registry-fetch/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/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": { @@ -13072,8 +15785,55 @@ "node": ">= 4" } }, + "node_modules/npm-run-all/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": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/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": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/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, + "license": "MIT" + }, "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dev": true, "license": "MIT", "dependencies": { @@ -13087,8 +15847,30 @@ "node": ">=4.8" } }, + "node_modules/npm-run-all/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/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": ">=4" + } + }, "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": { @@ -13097,6 +15879,8 @@ }, "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, "license": "ISC", "bin": { @@ -13105,6 +15889,8 @@ }, "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": "MIT", "dependencies": { @@ -13116,14 +15902,44 @@ }, "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": ">=0.10.0" } }, + "node_modules/npm-run-all/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": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "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, "license": "MIT", "dependencies": { @@ -13152,6 +15968,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, "license": "BSD-2-Clause", "dependencies": { @@ -13161,8 +15979,17 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/nwsapi": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/nx": { "version": "16.0.2", + "resolved": "https://registry.npmjs.org/nx/-/nx-16.0.2.tgz", + "integrity": "sha512-8Z9Bo1D2VbYjyC/F2ONensKjm10snz1UfkzURZiFA+oXikBPldiH1u67TOTpoCYZfyYQg4l6h6EpOaAvHF6Abg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -13229,58 +16056,17 @@ } } }, - "node_modules/nx/node_modules/ansi-styles": { - "version": "4.3.0", - "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/nx/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/nx/node_modules/chalk": { - "version": "4.1.2", - "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" - } - }, - "node_modules/nx/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/nx/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/nx/node_modules/fast-glob": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -13294,21 +16080,11 @@ "node": ">=8" } }, - "node_modules/nx/node_modules/fs-extra": { - "version": "11.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/nx/node_modules/glob": { "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -13323,16 +16099,10 @@ "node": "*" } }, - "node_modules/nx/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/nx/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": { @@ -13342,16 +16112,36 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/nx/node_modules/lines-and-columns": { - "version": "2.0.3", + "node_modules/nx/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, - "license": "MIT", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" + } + }, + "node_modules/nx/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/nx/node_modules/semver": { "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "license": "ISC", "dependencies": { @@ -13364,30 +16154,17 @@ "node": ">=10" } }, - "node_modules/nx/node_modules/supports-color": { - "version": "7.2.0", + "node_modules/nx/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", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/tmp": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } + "license": "ISC" }, "node_modules/oauth-sign": { "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -13396,6 +16173,8 @@ }, "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", "engines": { @@ -13404,6 +16183,8 @@ }, "node_modules/object-hash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, "license": "MIT", "engines": { @@ -13411,20 +16192,27 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", + "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" } }, "node_modules/object-is": { - "version": "1.1.5", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -13435,20 +16223,36 @@ }, "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", "engines": { "node": ">= 0.4" } }, + "node_modules/object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.12.0" + } + }, "node_modules/object.assign": { - "version": "4.1.5", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -13460,15 +16264,17 @@ }, "node_modules/obuf": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true, "license": "MIT" }, "node_modules/on-finished": { - "version": "2.3.0", + "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", - "optional": true, - "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -13478,6 +16284,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, "license": "MIT", "engines": { @@ -13486,6 +16294,9 @@ }, "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": "ISC", "dependencies": { "wrappy": "1" @@ -13493,6 +16304,8 @@ }, "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": "MIT", "dependencies": { @@ -13507,6 +16320,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -13523,6 +16338,8 @@ }, "node_modules/opener": { "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, "license": "(WTFPL OR MIT)", "bin": { @@ -13530,7 +16347,9 @@ } }, "node_modules/optionator": { - "version": "0.9.1", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -13539,7 +16358,7 @@ "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -13547,6 +16366,8 @@ }, "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": "MIT", "dependencies": { @@ -13567,105 +16388,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "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/ora/node_modules/chalk": { - "version": "4.1.2", - "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" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "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, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^0.1.0" + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { + "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, "license": "MIT", "dependencies": { @@ -13678,8 +16432,23 @@ "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, + "license": "MIT", + "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, "license": "MIT", "dependencies": { @@ -13694,6 +16463,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -13706,6 +16477,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, "license": "MIT", "engines": { @@ -13714,12 +16487,21 @@ }, "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/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": "15.2.0", "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", @@ -13753,13 +16535,104 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/pacote/node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/pacote/node_modules/cacache/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": ">=16 || 14 >=14.17" + } + }, + "node_modules/pacote/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/pacote/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/pacote/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pacote/node_modules/minipass-collect/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/pacote/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/pako": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true, "license": "(MIT AND Zlib)" }, "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": { @@ -13771,6 +16644,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -13786,8 +16661,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-json/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, + "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==", "dev": true, "license": "MIT", "engines": { @@ -13795,11 +16679,13 @@ } }, "node_modules/parse5": { - "version": "7.1.2", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "devOptional": true, "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -13807,6 +16693,8 @@ }, "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": { @@ -13818,32 +16706,10 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-html-rewriting-stream/node_modules/entities": { - "version": "4.5.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, "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": "MIT", "dependencies": { @@ -13853,19 +16719,10 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5/node_modules/entities": { - "version": "4.5.0", - "devOptional": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?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, "license": "MIT", "engines": { @@ -13874,6 +16731,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, "license": "MIT", "engines": { @@ -13882,6 +16741,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, "license": "MIT", "engines": { @@ -13890,11 +16751,15 @@ }, "node_modules/path-is-inside": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true, "license": "(WTFPL OR MIT)" }, "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": { @@ -13903,6 +16768,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, "license": "MIT" }, @@ -13924,22 +16791,23 @@ } }, "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, - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-to-regexp": { - "version": "0.1.7", + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "license": "MIT", "engines": { @@ -13948,15 +16816,21 @@ }, "node_modules/performance-now": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", "dev": true, "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.0", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", "engines": { "node": ">=8.6" @@ -13967,6 +16841,8 @@ }, "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", "bin": { @@ -13977,15 +16853,19 @@ } }, "node_modules/pify": { - "version": "2.3.0", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "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, "license": "MIT", "engines": { @@ -13994,6 +16874,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==", "dev": true, "license": "MIT", "dependencies": { @@ -14004,7 +16886,9 @@ } }, "node_modules/pirates": { - "version": "4.0.5", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "license": "MIT", "engines": { @@ -14012,7 +16896,9 @@ } }, "node_modules/piscina": { - "version": "3.2.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.0.0.tgz", + "integrity": "sha512-641nAmJS4k4iqpNUqfggqUBUMmlw0ZoM5VZKdQkV2e970Inn3Tk9kroCc1wpsYLD07vCwpys5iY0d3xI/9WkTg==", "dev": true, "license": "MIT", "dependencies": { @@ -14025,18 +16911,113 @@ } }, "node_modules/pkg-dir": { - "version": "4.2.0", + "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": "^4.0.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=8" + "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, + "license": "MIT", + "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, + "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_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": { + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/possible-typed-array-names": { - "version": "1.0.0", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, "license": "MIT", "engines": { @@ -14044,7 +17025,9 @@ } }, "node_modules/postcss": { - "version": "8.4.23", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "funding": [ { "type": "opencollective", @@ -14061,9 +17044,9 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -14071,6 +17054,8 @@ }, "node_modules/postcss-import": { "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "dev": true, "license": "MIT", "dependencies": { @@ -14087,6 +17072,8 @@ }, "node_modules/postcss-js": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", "dev": true, "license": "MIT", "dependencies": { @@ -14104,20 +17091,28 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.1", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { "node": ">= 14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" @@ -14132,14 +17127,15 @@ } }, "node_modules/postcss-loader": { - "version": "7.3.0", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", "dev": true, "license": "MIT", "dependencies": { - "cosmiconfig": "^8.1.3", - "jiti": "^1.18.2", - "klona": "^2.0.6", - "semver": "^7.3.8" + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" }, "engines": { "node": ">= 14.15.0" @@ -14153,22 +17149,10 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", + "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": { @@ -14179,12 +17163,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", + "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": { @@ -14195,11 +17181,13 @@ } }, "node_modules/postcss-modules-scope": { - "version": "3.0.0", + "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" @@ -14210,6 +17198,8 @@ }, "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": { @@ -14223,25 +17213,49 @@ } }, "node_modules/postcss-nested": { - "version": "6.0.1", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, + "node_modules/postcss-nested/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": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-scss": { - "version": "4.0.6", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", "dev": true, "funding": [ { @@ -14251,6 +17265,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", @@ -14258,11 +17276,13 @@ "node": ">=12.0" }, "peerDependencies": { - "postcss": "^8.4.19" + "postcss": "^8.4.29" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", "dependencies": { @@ -14275,6 +17295,8 @@ }, "node_modules/postcss-url": { "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz", + "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==", "dev": true, "license": "MIT", "dependencies": { @@ -14290,8 +17312,26 @@ "postcss": "^8.0.0" } }, + "node_modules/postcss-url/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": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/postcss-url/node_modules/mime": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "dev": true, "license": "MIT", "bin": { @@ -14301,12 +17341,39 @@ "node": ">=4.0.0" } }, + "node_modules/postcss-url/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/postcss-url/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/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==", "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -14315,6 +17382,8 @@ }, "node_modules/pretty-bytes": { "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, "license": "MIT", "engines": { @@ -14326,6 +17395,8 @@ }, "node_modules/prismjs": { "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "license": "MIT", "engines": { "node": ">=6" @@ -14333,6 +17404,8 @@ }, "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, "license": "ISC", "engines": { @@ -14341,16 +17414,22 @@ }, "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==", "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": { @@ -14363,6 +17442,9 @@ }, "node_modules/protractor": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", "dev": true, "license": "MIT", "dependencies": { @@ -14392,6 +17474,8 @@ }, "node_modules/protractor/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "license": "MIT", "engines": { @@ -14400,6 +17484,8 @@ }, "node_modules/protractor/node_modules/ansi-styles": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, "license": "MIT", "engines": { @@ -14408,6 +17494,8 @@ }, "node_modules/protractor/node_modules/chalk": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "license": "MIT", "dependencies": { @@ -14423,6 +17511,8 @@ }, "node_modules/protractor/node_modules/cliui": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14433,6 +17523,8 @@ }, "node_modules/protractor/node_modules/cliui/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": "MIT", "engines": { @@ -14441,6 +17533,8 @@ }, "node_modules/protractor/node_modules/cliui/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": "MIT", "dependencies": { @@ -14450,24 +17544,42 @@ "node": ">=8" } }, - "node_modules/protractor/node_modules/color-convert": { - "version": "2.0.1", + "node_modules/protractor/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, "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=0.8.0" } }, - "node_modules/protractor/node_modules/color-name": { - "version": "1.1.4", + "node_modules/protractor/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/protractor/node_modules/source-map": { "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -14476,6 +17588,8 @@ }, "node_modules/protractor/node_modules/source-map-support": { "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "license": "MIT", "dependencies": { @@ -14484,6 +17598,8 @@ }, "node_modules/protractor/node_modules/strip-ansi": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "license": "MIT", "dependencies": { @@ -14495,6 +17611,8 @@ }, "node_modules/protractor/node_modules/supports-color": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, "license": "MIT", "engines": { @@ -14503,6 +17621,8 @@ }, "node_modules/protractor/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": { @@ -14516,6 +17636,8 @@ }, "node_modules/protractor/node_modules/wrap-ansi/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": "MIT", "engines": { @@ -14524,6 +17646,8 @@ }, "node_modules/protractor/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": { @@ -14538,6 +17662,8 @@ }, "node_modules/protractor/node_modules/wrap-ansi/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": "MIT", "dependencies": { @@ -14549,11 +17675,15 @@ }, "node_modules/protractor/node_modules/y18n": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true, "license": "ISC" }, "node_modules/protractor/node_modules/yargs": { "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "license": "MIT", "dependencies": { @@ -14575,6 +17705,8 @@ }, "node_modules/protractor/node_modules/yargs-parser": { "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14587,6 +17719,8 @@ }, "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": { @@ -14599,6 +17733,8 @@ }, "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": { @@ -14607,26 +17743,42 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true, "license": "MIT" }, "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", "optional": true }, "node_modules/pseudomap": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true, "license": "ISC" }, "node_modules/psl": { - "version": "1.9.0", - "license": "MIT" + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, "node_modules/punycode": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "license": "MIT", "engines": { "node": ">=6" @@ -14634,6 +17786,8 @@ }, "node_modules/purgecss": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz", + "integrity": "sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==", "dev": true, "license": "MIT", "dependencies": { @@ -14648,6 +17802,8 @@ }, "node_modules/purgecss/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": { @@ -14656,6 +17812,8 @@ }, "node_modules/purgecss/node_modules/commander": { "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, "license": "MIT", "engines": { @@ -14664,6 +17822,9 @@ }, "node_modules/purgecss/node_modules/glob": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -14682,6 +17843,8 @@ }, "node_modules/purgecss/node_modules/minimatch": { "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -14691,8 +17854,25 @@ "node": ">=10" } }, + "node_modules/purgecss/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": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/q": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", "dev": true, "license": "MIT", "engines": { @@ -14700,33 +17880,27 @@ "teleport": ">=0.2.0" } }, - "node_modules/qjobs": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.9" - } - }, "node_modules/qs": { - "version": "6.11.0", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "dev": true, "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, "engines": { "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" + }, "node_modules/queue-microtask": { "version": "1.2.3", - "dev": true, + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "funding": [ { "type": "github", @@ -14745,6 +17919,8 @@ }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14753,6 +17929,8 @@ }, "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": { @@ -14777,6 +17955,8 @@ }, "node_modules/raw-body/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": "MIT", "dependencies": { @@ -14788,12 +17968,24 @@ }, "node_modules/read-cache": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, "license": "MIT", "dependencies": { "pify": "^2.3.0" } }, + "node_modules/read-cache/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", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/read-package-json": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", @@ -14813,6 +18005,8 @@ }, "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, "license": "ISC", "dependencies": { @@ -14833,55 +18027,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", - "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/read-package-json/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", @@ -14892,33 +18037,10 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "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, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "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": { @@ -14932,11 +18054,15 @@ }, "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, "license": "ISC" }, "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, "license": "BSD-2-Clause", "dependencies": { @@ -14948,6 +18074,8 @@ }, "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": { @@ -14959,6 +18087,8 @@ }, "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": { @@ -14967,6 +18097,8 @@ }, "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": "ISC", "bin": { @@ -14974,7 +18106,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", + "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", "dependencies": { @@ -14987,7 +18121,9 @@ } }, "node_modules/readdir-glob": { - "version": "1.1.2", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -14996,6 +18132,8 @@ }, "node_modules/readdir-glob/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": { @@ -15003,7 +18141,9 @@ } }, "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.0", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -15015,6 +18155,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -15024,16 +18166,45 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.13", + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", "license": "Apache-2.0" }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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.1.0", + "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": { @@ -15045,10 +18216,14 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, "node_modules/regenerator-transform": { - "version": "0.15.1", + "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": { @@ -15056,19 +18231,25 @@ } }, "node_modules/regex-parser": { - "version": "2.2.11", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", "dev": true, "license": "MIT" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -15078,14 +18259,16 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", + "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": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "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" }, @@ -15093,26 +18276,44 @@ "node": ">=4" } }, + "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.9.1", + "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": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", + "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/request": { "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -15141,16 +18342,40 @@ "node": ">= 6" } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, "engines": { - "node": ">=0.6" + "node": ">=0.8" } }, "node_modules/request/node_modules/uuid": { "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, "license": "MIT", "bin": { @@ -15159,6 +18384,8 @@ }, "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==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -15166,6 +18393,8 @@ }, "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", "engines": { @@ -15174,16 +18403,22 @@ }, "node_modules/require-main-filename": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true, "license": "ISC" }, "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, "license": "MIT" }, "node_modules/resolve": { "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dev": true, "license": "MIT", "dependencies": { @@ -15199,15 +18434,19 @@ } }, "node_modules/resolve-from": { - "version": "4.0.0", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "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, "license": "MIT", "dependencies": { @@ -15223,6 +18462,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==", "dev": true, "license": "MIT", "dependencies": { @@ -15236,6 +18477,8 @@ }, "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": "BSD-3-Clause", "engines": { @@ -15244,6 +18487,8 @@ }, "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": { @@ -15254,8 +18499,17 @@ "node": ">=8" } }, + "node_modules/restore-cursor/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, + "license": "ISC" + }, "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": { @@ -15264,22 +18518,19 @@ }, "node_modules/reusify": { "version": "1.0.4", - "dev": true, + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rfdc": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -15292,12 +18543,38 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/robust-predicates": { - "version": "3.0.1", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", "license": "Unlicense" }, "node_modules/rollup": { - "version": "3.21.8", + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", "dev": true, "license": "MIT", "bin": { @@ -15313,6 +18590,8 @@ }, "node_modules/run-async": { "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, "license": "MIT", "engines": { @@ -15321,7 +18600,8 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "dev": true, + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "funding": [ { "type": "github", @@ -15343,23 +18623,30 @@ }, "node_modules/rw": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", "license": "BSD-3-Clause" }, "node_modules/rxjs": { - "version": "7.8.1", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { - "version": "1.1.0", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -15369,23 +18656,54 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, "node_modules/safe-buffer": { - "version": "5.1.2", + "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" + } + ], "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.0.3", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -15396,10 +18714,14 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, "node_modules/sass": { - "version": "1.62.1", + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.1.tgz", + "integrity": "sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15415,11 +18737,12 @@ } }, "node_modules/sass-loader": { - "version": "13.2.2", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", "dev": true, "license": "MIT", "dependencies": { - "klona": "^2.0.6", "neo-async": "^2.6.2" }, "engines": { @@ -15431,7 +18754,7 @@ }, "peerDependencies": { "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.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" @@ -15453,6 +18776,8 @@ }, "node_modules/saucelabs": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "dependencies": { "https-proxy-agent": "^2.2.1" @@ -15463,6 +18788,8 @@ }, "node_modules/saucelabs/node_modules/agent-base": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "license": "MIT", "dependencies": { @@ -15474,6 +18801,8 @@ }, "node_modules/saucelabs/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", "dependencies": { @@ -15482,6 +18811,8 @@ }, "node_modules/saucelabs/node_modules/https-proxy-agent": { "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -15493,12 +18824,29 @@ } }, "node_modules/sax": { - "version": "1.2.4", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "dev": true, "license": "ISC" }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/schema-utils": { - "version": "4.0.1", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, "license": "MIT", "dependencies": { @@ -15508,7 +18856,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -15517,16 +18865,22 @@ }, "node_modules/select": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", "license": "MIT", "optional": 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/selenium-webdriver": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -15539,8 +18893,33 @@ "node": ">= 6.9.0" } }, + "node_modules/selenium-webdriver/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/selenium-webdriver/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -15552,6 +18931,8 @@ }, "node_modules/selenium-webdriver/node_modules/tmp": { "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", "dev": true, "license": "MIT", "dependencies": { @@ -15562,10 +18943,13 @@ } }, "node_modules/selfsigned": { - "version": "2.1.1", + "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" }, "engines": { @@ -15573,7 +18957,9 @@ } }, "node_modules/semver": { - "version": "7.4.0", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -15585,8 +18971,28 @@ "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==", + "license": "ISC", + "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==", + "license": "ISC" + }, "node_modules/send": { - "version": "0.18.0", + "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": { @@ -15610,6 +19016,8 @@ }, "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", "dependencies": { @@ -15618,38 +19026,15 @@ }, "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/send/node_modules/mime": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", + "node_modules/send/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, "license": "MIT", "engines": { @@ -15657,7 +19042,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.1", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -15666,6 +19053,8 @@ }, "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": { @@ -15683,6 +19072,8 @@ }, "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": { @@ -15691,6 +19082,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==", "dev": true, "license": "MIT", "engines": { @@ -15699,6 +19092,8 @@ }, "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": { @@ -15713,28 +19108,46 @@ }, "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==", "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-index/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": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-static": { - "version": "1.15.0", + "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" @@ -15742,20 +19155,24 @@ }, "node_modules/set-blocking": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true, "license": "ISC" }, "node_modules/set-function-length": { - "version": "1.2.1", + "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": "MIT", "dependencies": { - "define-data-property": "^1.1.2", + "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -15763,6 +19180,8 @@ }, "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": { @@ -15775,18 +19194,39 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true, "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true, "license": "ISC" }, "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": { @@ -15798,6 +19238,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, "license": "MIT", "dependencies": { @@ -15809,6 +19251,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, "license": "MIT", "engines": { @@ -15816,30 +19260,106 @@ } }, "node_modules/shell-quote": { - "version": "1.8.1", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.4", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/signal-exit": { - "version": "3.0.7", + "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" + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/sigstore": { "version": "1.9.0", @@ -15861,8 +19381,59 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/sigstore/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/sigstore/node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/sigstore/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/sigstore/node_modules/lru-cache": { "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "license": "ISC", "engines": { @@ -15871,6 +19442,8 @@ }, "node_modules/sigstore/node_modules/make-fetch-happen": { "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "license": "ISC", "dependencies": { @@ -15894,6 +19467,42 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/sigstore/node_modules/make-fetch-happen/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/sigstore/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/sigstore/node_modules/minipass-collect/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/sigstore/node_modules/minipass-fetch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", @@ -15912,41 +19521,52 @@ "encoding": "^0.1.13" } }, - "node_modules/sigstore/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/sigstore/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, - "engines": { - "node": ">=16 || 14 >=14.17" - } + "license": "ISC" }, "node_modules/sirv": { - "version": "1.0.19", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", "dev": true, "license": "MIT", "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" }, "engines": { "node": ">= 10" } }, - "node_modules/slash": { - "version": "4.0.0", + "node_modules/sirv/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": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, "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": { @@ -15954,50 +19574,10 @@ "npm": ">= 3.0.0" } }, - "node_modules/socket.io": { - "version": "4.6.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.4.1", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "ws": "~8.11.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "optional": true, - "peer": 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, "license": "MIT", "dependencies": { @@ -16006,10 +19586,20 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/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", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "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.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", + "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16023,6 +19613,8 @@ }, "node_modules/socks-proxy-agent": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, "license": "MIT", "dependencies": { @@ -16036,6 +19628,8 @@ }, "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, "license": "BSD-3-Clause", "engines": { @@ -16043,7 +19637,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", + "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==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -16051,6 +19647,8 @@ }, "node_modules/source-map-loader": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", "dev": true, "license": "MIT", "dependencies": { @@ -16071,6 +19669,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -16080,6 +19680,8 @@ }, "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": "BSD-3-Clause", "engines": { @@ -16088,6 +19690,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==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -16096,12 +19700,16 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true, "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "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, "license": "MIT", "dependencies": { @@ -16110,12 +19718,16 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", "dev": true, "license": "CC0-1.0" }, "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": "MIT", "dependencies": { @@ -16131,6 +19743,8 @@ }, "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": { @@ -16143,13 +19757,16 @@ } }, "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 + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/sshpk": { - "version": "1.17.0", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16172,80 +19789,64 @@ "node": ">=0.10.0" } }, + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "license": "MIT" + }, "node_modules/ssri": { - "version": "10.0.4", + "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": "^5.0.0" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/statuses": { - "version": "1.5.0", + "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.6" + "node": ">= 0.8" } }, "node_modules/stop-iteration-iterator": { - "version": "1.0.0", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "dev": true, "license": "MIT", "dependencies": { - "internal-slot": "^1.0.4" + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, - "node_modules/streamroller": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "date-format": "^4.0.10", - "debug": "^4.3.4", - "fs-extra": "^10.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, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "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/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==", "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -16259,6 +19860,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": { @@ -16271,13 +19874,16 @@ } }, "node_modules/string.prototype.padend": { - "version": "3.1.5", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "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" @@ -16287,13 +19893,19 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -16303,26 +19915,37 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", + "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, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "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" @@ -16330,6 +19953,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==", "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -16341,6 +19966,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": { @@ -16352,6 +19979,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, "license": "MIT", "engines": { @@ -16360,6 +19989,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, "license": "MIT", "engines": { @@ -16368,6 +19999,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { @@ -16379,6 +20012,8 @@ }, "node_modules/strong-log-transformer": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -16394,41 +20029,22 @@ } }, "node_modules/stylis": { - "version": "4.2.0", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", "license": "MIT", "optional": true }, - "node_modules/stylus": { - "version": "0.59.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@adobe/css-tools": "^4.0.1", - "debug": "^4.3.2", - "glob": "^7.1.6", - "sax": "~1.2.4", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://opencollective.com/stylus" - } - }, "node_modules/sucrase": { - "version": "3.32.0", + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "7.1.6", + "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", @@ -16439,48 +20055,43 @@ "sucrase-node": "bin/sucrase-node" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/sucrase/node_modules/commander": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, "license": "MIT", "engines": { "node": ">= 6" } }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", + "node_modules/sucrase/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, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT" }, "node_modules/supports-color": { - "version": "5.5.0", + "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": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "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": "MIT", "engines": { @@ -16492,40 +20103,50 @@ }, "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, "license": "MIT", "engines": { "node": ">=0.10" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, "node_modules/tailwindcss": { - "version": "3.3.2", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -16535,8 +20156,78 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss/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, + "license": "MIT", + "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/tailwindcss/node_modules/chokidar/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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/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/tailwindcss/node_modules/fast-glob/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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/tailwindcss/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": { @@ -16546,8 +20237,45 @@ "node": ">=10.13.0" } }, + "node_modules/tailwindcss/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": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/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": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tapable": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "license": "MIT", "engines": { @@ -16574,6 +20302,8 @@ }, "node_modules/tar-stream": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16589,6 +20319,8 @@ }, "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": { @@ -16600,6 +20332,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": { @@ -16609,13 +20343,32 @@ "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/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/terser": { - "version": "5.17.1", + "version": "5.19.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", + "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -16627,15 +20380,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.8", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -16659,69 +20414,22 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/acorn": { - "version": "8.8.2", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", + "node_modules/terser-webpack-plugin/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, "license": "MIT" }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "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/terser-webpack-plugin/node_modules/terser": { - "version": "5.17.3", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -16732,19 +20440,17 @@ "node": ">=10" } }, - "node_modules/terser/node_modules/acorn": { - "version": "8.7.1", + "node_modules/terser/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, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "license": "MIT" }, "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, "license": "ISC", "dependencies": { @@ -16756,13 +20462,39 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-table": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true, "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, "license": "MIT", "dependencies": { @@ -16771,6 +20503,8 @@ }, "node_modules/thenify-all": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, "license": "MIT", "dependencies": { @@ -16782,39 +20516,42 @@ }, "node_modules/through": { "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true, "license": "MIT" }, "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/tiny-emitter": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", "license": "MIT", "optional": true }, "node_modules/tmp": { - "version": "0.0.33", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "rimraf": "^3.0.0" }, "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=8.17.0" } }, "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==", "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -16825,6 +20562,8 @@ }, "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, "license": "MIT", "engines": { @@ -16833,6 +20572,8 @@ }, "node_modules/topojson-client": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "license": "ISC", "dependencies": { "commander": "2" @@ -16843,8 +20584,16 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/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==", + "license": "MIT" + }, "node_modules/topojson-simplify": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topojson-simplify/-/topojson-simplify-3.0.3.tgz", + "integrity": "sha512-V+pBjLVzSQ3+hSOxBiV01OVXgFiCmMO8ia3huxKEyIMTC1ApQHBcdXdOqcQ6U2JJJD31TZduwY6KyF15R8sUgg==", "license": "ISC", "dependencies": { "commander": "2", @@ -16854,8 +20603,16 @@ "toposimplify": "bin/toposimplify" } }, + "node_modules/topojson-simplify/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==", + "license": "MIT" + }, "node_modules/totalist": { - "version": "1.1.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "license": "MIT", "engines": { @@ -16863,19 +20620,35 @@ } }, "node_modules/tough-cookie": { - "version": "2.5.0", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { - "node": ">=0.8" + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" } }, "node_modules/tr46": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", "license": "MIT", "dependencies": { "punycode": "^2.3.1" @@ -16886,6 +20659,8 @@ }, "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, "license": "MIT", "bin": { @@ -16894,6 +20669,8 @@ }, "node_modules/ts-dedent": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", "license": "MIT", "optional": true, "engines": { @@ -16902,11 +20679,15 @@ }, "node_modules/ts-interface-checker": { "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true, "license": "Apache-2.0" }, "node_modules/ts-node": { - "version": "10.9.1", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16947,32 +20728,30 @@ } } }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.7.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } }, "node_modules/ts-node/node_modules/arg": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, "license": "MIT" }, "node_modules/tsconfig-paths": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", "dependencies": { @@ -16985,7 +20764,32 @@ } }, "node_modules/tslib": { - "version": "2.5.0", + "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/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/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": { @@ -17003,8 +20807,59 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/tuf-js/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/tuf-js/node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/tuf-js/node_modules/lru-cache": { "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "license": "ISC", "engines": { @@ -17013,6 +20868,8 @@ }, "node_modules/tuf-js/node_modules/make-fetch-happen": { "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "license": "ISC", "dependencies": { @@ -17036,6 +20893,42 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/tuf-js/node_modules/make-fetch-happen/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/tuf-js/node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tuf-js/node_modules/minipass-collect/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/tuf-js/node_modules/minipass-fetch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", @@ -17054,17 +20947,17 @@ "encoding": "^0.1.13" } }, - "node_modules/tuf-js/node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/tuf-js/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, - "engines": { - "node": ">=16 || 14 >=14.17" - } + "license": "ISC" }, "node_modules/tunnel-agent": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -17076,11 +20969,15 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", "dev": true, "license": "Unlicense" }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -17092,6 +20989,8 @@ }, "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": { @@ -17103,6 +21002,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==", "dev": true, "license": "MIT", "dependencies": { @@ -17114,28 +21015,32 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -17145,16 +21050,19 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -17164,16 +21072,18 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "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", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -17184,11 +21094,15 @@ }, "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, "license": "MIT" }, "node_modules/typescript": { "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -17198,47 +21112,43 @@ "node": ">=4.2.0" } }, - "node_modules/ua-parser-js": { - "version": "0.7.35", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/un-eval": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/un-eval/-/un-eval-1.2.0.tgz", + "integrity": "sha512-Wlj/pum6dQtGTPD/lclDtoVPkSfpjPfy1dwnnKw/sZP5DpBH9fLhBgQfsqNhe5/gS1D+vkZUuB771NRMUPA5CA==", "dev": true, "license": "MIT" }, "node_modules/unbox-primitive": { - "version": "1.0.2", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "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.0", + "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": { @@ -17247,6 +21157,8 @@ }, "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", "dependencies": { @@ -17258,7 +21170,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", + "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": { @@ -17267,6 +21181,8 @@ }, "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", "engines": { @@ -17275,6 +21191,8 @@ }, "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": { @@ -17286,6 +21204,8 @@ }, "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, "license": "ISC", "dependencies": { @@ -17296,7 +21216,9 @@ } }, "node_modules/universalify": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "license": "MIT", "engines": { @@ -17305,6 +21227,8 @@ }, "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", "engines": { @@ -17312,7 +21236,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "funding": [ { "type": "opencollective", @@ -17329,8 +21255,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -17341,14 +21267,29 @@ }, "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": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/useragent": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, "license": "MIT", "dependencies": { @@ -17358,6 +21299,8 @@ }, "node_modules/useragent/node_modules/lru-cache": { "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "license": "ISC", "dependencies": { @@ -17365,18 +21308,37 @@ "yallist": "^2.1.2" } }, + "node_modules/useragent/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" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/useragent/node_modules/yallist": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", "dev": true, "license": "ISC" }, "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" }, "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", "engines": { @@ -17384,25 +21346,37 @@ } }, "node_modules/uuid": { - "version": "8.3.2", - "dev": true, + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", + "optional": true, "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true, "license": "MIT" }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true, "license": "MIT" }, "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": "Apache-2.0", "dependencies": { @@ -17415,12 +21389,15 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, + "license": "ISC", "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, "license": "MIT", "engines": { @@ -17429,6 +21406,8 @@ }, "node_modules/verror": { "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "dev": true, "engines": [ "node >=0.6.0" @@ -17441,13 +21420,15 @@ } }, "node_modules/vite": { - "version": "4.3.1", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.21", - "rollup": "^3.20.2" + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" }, "bin": { "vite": "bin/vite.js" @@ -17455,12 +21436,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -17473,6 +21458,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -17487,18 +21475,34 @@ } } }, - "node_modules/void-elements": { - "version": "2.0.1", + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "license": "MIT", - "optional": true, - "peer": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, "node_modules/watchpack": { - "version": "2.4.0", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "license": "MIT", "dependencies": { @@ -17511,6 +21515,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -17519,6 +21525,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -17526,12 +21534,16 @@ } }, "node_modules/web-worker": { - "version": "1.2.0", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", "license": "Apache-2.0", "optional": true }, "node_modules/webdriver-js-extender": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17544,6 +21556,8 @@ }, "node_modules/webdriver-manager": { "version": "12.1.9", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.9.tgz", + "integrity": "sha512-Yl113uKm8z4m/KMUVWHq1Sjtla2uxEBtx2Ue3AmIlnlPAKloDn/Lvmy6pqWCUersVISpdMeVpAaGbNnvMuT2LQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17568,6 +21582,8 @@ }, "node_modules/webdriver-manager/node_modules/ansi-regex": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, "license": "MIT", "engines": { @@ -17576,6 +21592,8 @@ }, "node_modules/webdriver-manager/node_modules/ansi-styles": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, "license": "MIT", "engines": { @@ -17584,6 +21602,8 @@ }, "node_modules/webdriver-manager/node_modules/chalk": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "license": "MIT", "dependencies": { @@ -17597,13 +21617,50 @@ "node": ">=0.10.0" } }, + "node_modules/webdriver-manager/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/webdriver-manager/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webdriver-manager/node_modules/ini": { "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, "license": "ISC" }, "node_modules/webdriver-manager/node_modules/rimraf": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -17625,6 +21682,8 @@ }, "node_modules/webdriver-manager/node_modules/strip-ansi": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "license": "MIT", "dependencies": { @@ -17636,6 +21695,8 @@ }, "node_modules/webdriver-manager/node_modules/supports-color": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, "license": "MIT", "engines": { @@ -17643,45 +21704,52 @@ } }, "node_modules/webextension-polyfill": { - "version": "0.8.0", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.12.0.tgz", + "integrity": "sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q==", "dev": true, "license": "MPL-2.0" }, "node_modules/webidl-conversions": { - "version": "7.0.0", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=12" + "node": ">=10.4" } }, "node_modules/webpack": { - "version": "5.80.0", + "version": "5.98.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", + "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@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.7.6", - "browserslist": "^4.14.5", + "@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.13.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", "neo-async": "^2.6.2", - "schema-utils": "^3.1.2", + "schema-utils": "^4.3.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -17701,19 +21769,23 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.8.0", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", "dev": true, "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", - "lodash": "^4.17.20", + "html-escaper": "^2.0.2", "opener": "^1.5.2", - "sirv": "^1.0.7", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", "ws": "^7.3.1" }, "bin": { @@ -17723,119 +21795,23 @@ "node": ">= 10.13.0" } }, - "node_modules/webpack-bundle-analyzer/node_modules/acorn": { - "version": "8.7.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { - "version": "8.2.0", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } }, - "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { - "version": "4.3.0", - "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/webpack-bundle-analyzer/node_modules/chalk": { - "version": "4.1.2", - "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" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/ws": { - "version": "7.5.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/webpack-dev-middleware": { - "version": "6.0.2", + "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, "license": "MIT", "dependencies": { @@ -17862,7 +21838,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.13.2", + "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, "license": "MIT", "dependencies": { @@ -17872,7 +21850,7 @@ "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", + "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", @@ -17944,7 +21922,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.13.0", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", "dev": true, "license": "MIT", "engines": { @@ -17964,22 +21944,24 @@ } }, "node_modules/webpack-ext-reloader": { - "version": "1.1.9", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/webpack-ext-reloader/-/webpack-ext-reloader-1.1.13.tgz", + "integrity": "sha512-B/fxQgLouk3Uz6zQSmRXuNv9lUMSiVEYJUszgtyfCEo9LSblSqY12ZhyQg5I99aXWWkDiJxT18ZBR0AAls47XA==", "dev": true, "license": "MIT", "dependencies": { - "@types/webextension-polyfill": "^0.8.2", - "@types/webpack": "^5.28.0", - "@types/webpack-sources": "^3.2.0", + "@types/webextension-polyfill": "^0.10.6", + "@types/webpack-sources": "^3.2.3", "clean-webpack-plugin": "^4.0.0", "colors": "^1.4.0", "cross-env": "^7.0.3", + "json5": "^2.2.3", "lodash": "^4.17.21", - "minimist": "^1.2.5", + "minimist": "^1.2.8", "useragent": "^2.3.0", - "webextension-polyfill": "^0.8.0", + "webextension-polyfill": "^0.12.0", "webpack-sources": "^3.2.3", - "ws": "^8.4.2" + "ws": "^8.14.2" }, "bin": { "webpack-ext-reloader": "dist/webpack-ext-reloader-cli.js" @@ -17988,12 +21970,37 @@ "webpack": "^5.61.0" } }, + "node_modules/webpack-ext-reloader/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "dev": true, + "license": "MIT", + "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.8.0", + "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, "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { @@ -18002,6 +22009,8 @@ }, "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, "license": "MIT", "engines": { @@ -18010,6 +22019,8 @@ }, "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, "license": "MIT", "dependencies": { @@ -18028,72 +22039,36 @@ } } }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.8.2", + "node_modules/webpack/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, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">=0.4.0" + "node": ">=8.0.0" } }, - "node_modules/webpack/node_modules/acorn-import-assertions": { - "version": "1.8.0", + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, + "license": "BSD-2-Clause", + "peer": true, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=4.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==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -18107,6 +22082,8 @@ }, "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, "license": "Apache-2.0", "engines": { @@ -18115,6 +22092,8 @@ }, "node_modules/whatwg-encoding": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" @@ -18125,13 +22104,17 @@ }, "node_modules/whatwg-mimetype": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/whatwg-url": { - "version": "14.0.0", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.1.tgz", + "integrity": "sha512-mDGf9diDad/giZ/Sm9Xi2YcyzaFpbdLpJPr+E9fSkyQ7KpQD4SdFcugkRQYzhmfI4KeV4Qpnn2sKPdo+kmsgRQ==", "license": "MIT", "dependencies": { "tr46": "^5.0.0", @@ -18141,61 +22124,118 @@ "node": ">=18" } }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, "node_modules/which": { - "version": "1.3.1", + "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": { - "which": "bin/which" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, "license": "MIT", "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" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-collection": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "license": "MIT", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-module": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true, "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.14", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -18206,6 +22246,8 @@ }, "node_modules/wide-align": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "license": "ISC", "dependencies": { @@ -18213,7 +22255,9 @@ } }, "node_modules/wildcard": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true, "license": "MIT" }, @@ -18229,6 +22273,8 @@ }, "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==", "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -18245,6 +22291,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": { @@ -18259,73 +22307,21 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "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", - "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", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "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/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, "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, "license": "ISC" }, "node_modules/ws": { - "version": "8.11.0", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", @@ -18340,8 +22336,17 @@ } } }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/xml2js": { "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, "license": "MIT", "dependencies": { @@ -18354,14 +22359,25 @@ }, "node_modules/xmlbuilder": { "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true, "license": "MIT", "engines": { "node": ">=4.0" } }, + "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" + }, "node_modules/xxhashjs": { "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", "dev": true, "license": "MIT", "dependencies": { @@ -18370,25 +22386,36 @@ }, "node_modules/y18n": { "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { - "version": "4.0.0", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, "node_modules/yaml": { - "version": "2.2.2", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } }, "node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -18405,6 +22432,8 @@ }, "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==", "license": "ISC", "engines": { "node": ">=12" @@ -18412,6 +22441,8 @@ }, "node_modules/yargs/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==", "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -18424,6 +22455,8 @@ }, "node_modules/yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "license": "MIT", "engines": { @@ -18432,6 +22465,8 @@ }, "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": { @@ -18442,7 +22477,9 @@ } }, "node_modules/zip-a-folder": { - "version": "1.1.5", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/zip-a-folder/-/zip-a-folder-1.1.7.tgz", + "integrity": "sha512-JqRZlUYJVogDvR1hl1j+30MNwrOWc886bpPePnfyXgMFQpOqfDcZAqICNp0Zt+Th7C2KcQYMI4fThrkEXa7DSQ==", "dev": true, "license": "MIT", "dependencies": { @@ -18450,3665 +22487,28 @@ } }, "node_modules/zip-stream": { - "version": "4.1.0", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", "dev": true, "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" }, "engines": { "node": ">= 10" } }, - "node_modules/zone.js": { - "version": "0.13.0", + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "dev": true, "license": "MIT", "dependencies": { - "tslib": "^2.3.0" - } - } - }, - "dependencies": { - "@adobe/css-tools": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", - "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@alloc/quick-lru": { - "version": "5.2.0", - "dev": true - }, - "@ampproject/remapping": { - "version": "2.2.1", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@angular-builders/custom-webpack": { - "version": "16.0.0-beta.1", - "dev": true, - "requires": { - "@angular-devkit/architect": ">=0.1600.0 < 0.1700.0", - "@angular-devkit/build-angular": "^16.0.0", - "@angular-devkit/core": "^16.0.0", - "lodash": "^4.17.15", - "ts-node": "^10.0.0", - "tsconfig-paths": "^4.1.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "@angular-devkit/build-angular": { - "version": "16.0.2", - "dev": true, - "requires": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1600.2", - "@angular-devkit/build-webpack": "0.1600.2", - "@angular-devkit/core": "16.0.2", - "@babel/core": "7.21.4", - "@babel/generator": "7.21.4", - "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/helper-split-export-declaration": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.21.4", - "@babel/preset-env": "7.21.4", - "@babel/runtime": "7.21.0", - "@babel/template": "7.20.7", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.0.2", - "@vitejs/plugin-basic-ssl": "1.0.1", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.14", - "babel-loader": "9.1.2", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.5", - "cacache": "17.0.6", - "chokidar": "3.5.3", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.16", - "css-loader": "6.7.3", - "esbuild": "0.17.18", - "esbuild-wasm": "0.17.18", - "glob": "8.1.0", - "https-proxy-agent": "5.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "karma-source-map-support": "1.4.0", - "less": "4.1.3", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.0", - "mini-css-extract-plugin": "2.7.5", - "mrmime": "1.0.1", - "open": "8.4.2", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "2.3.1", - "piscina": "3.2.0", - "postcss": "8.4.23", - "postcss-loader": "7.2.4", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.62.1", - "sass-loader": "13.2.2", - "semver": "7.4.0", - "source-map-loader": "4.0.1", - "source-map-support": "0.5.21", - "terser": "5.17.1", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.5.0", - "vite": "4.3.1", - "webpack": "5.80.0", - "webpack-dev-middleware": "6.0.2", - "webpack-dev-server": "4.13.2", - "webpack-merge": "5.8.0", - "webpack-subresource-integrity": "5.1.0" - } - }, - "@angular-devkit/build-webpack": { - "version": "0.1600.2", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1600.2", - "rxjs": "7.8.1" - } - }, - "@angular-devkit/core": { - "version": "16.0.2", - "dev": true, - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "7.8.1", - "source-map": "0.7.4" - } - }, - "@ngtools/webpack": { - "version": "16.0.2", - "dev": true, - "requires": {} - }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "postcss-loader": { - "version": "7.2.4", - "dev": true, - "requires": { - "cosmiconfig": "^8.1.3", - "cosmiconfig-typescript-loader": "^4.3.0", - "klona": "^2.0.6", - "semver": "^7.3.8" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - } - } - }, - "@angular-devkit/architect": { - "version": "0.1600.2", - "dev": true, - "requires": { - "@angular-devkit/core": "16.0.2", - "rxjs": "7.8.1" - }, - "dependencies": { - "@angular-devkit/core": { - "version": "16.0.2", - "dev": true, - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "7.8.1", - "source-map": "0.7.4" - } - } - } - }, - "@angular-devkit/build-angular": { - "version": "16.0.1", - "dev": true, - "requires": { - "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1600.1", - "@angular-devkit/build-webpack": "0.1600.1", - "@angular-devkit/core": "16.0.1", - "@babel/core": "7.21.4", - "@babel/generator": "7.21.4", - "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/helper-split-export-declaration": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.7", - "@babel/plugin-transform-async-to-generator": "7.20.7", - "@babel/plugin-transform-runtime": "7.21.4", - "@babel/preset-env": "7.21.4", - "@babel/runtime": "7.21.0", - "@babel/template": "7.20.7", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.0.1", - "@vitejs/plugin-basic-ssl": "1.0.1", - "ansi-colors": "4.1.3", - "autoprefixer": "10.4.14", - "babel-loader": "9.1.2", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.5", - "cacache": "17.0.6", - "chokidar": "3.5.3", - "copy-webpack-plugin": "11.0.0", - "critters": "0.0.16", - "css-loader": "6.7.3", - "esbuild": "0.17.18", - "esbuild-wasm": "0.17.18", - "glob": "8.1.0", - "https-proxy-agent": "5.0.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "karma-source-map-support": "1.4.0", - "less": "4.1.3", - "less-loader": "11.1.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.1", - "magic-string": "0.30.0", - "mini-css-extract-plugin": "2.7.5", - "mrmime": "1.0.1", - "open": "8.4.2", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "2.3.1", - "piscina": "3.2.0", - "postcss": "8.4.23", - "postcss-loader": "7.2.4", - "resolve-url-loader": "5.0.0", - "rxjs": "7.8.1", - "sass": "1.62.1", - "sass-loader": "13.2.2", - "semver": "7.4.0", - "source-map-loader": "4.0.1", - "source-map-support": "0.5.21", - "terser": "5.17.1", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.5.0", - "vite": "4.3.1", - "webpack": "5.80.0", - "webpack-dev-middleware": "6.0.2", - "webpack-dev-server": "4.13.2", - "webpack-merge": "5.8.0", - "webpack-subresource-integrity": "5.1.0" - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.1600.1", - "dev": true, - "requires": { - "@angular-devkit/core": "16.0.1", - "rxjs": "7.8.1" - } - }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "postcss-loader": { - "version": "7.2.4", - "dev": true, - "requires": { - "cosmiconfig": "^8.1.3", - "cosmiconfig-typescript-loader": "^4.3.0", - "klona": "^2.0.6", - "semver": "^7.3.8" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - } - } - }, - "@angular-devkit/build-webpack": { - "version": "0.1600.1", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1600.1", - "rxjs": "7.8.1" - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.1600.1", - "dev": true, - "requires": { - "@angular-devkit/core": "16.0.1", - "rxjs": "7.8.1" - } - } - } - }, - "@angular-devkit/core": { - "version": "16.0.1", - "dev": true, - "requires": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "rxjs": "7.8.1", - "source-map": "0.7.4" - } - }, - "@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, - "requires": { - "@angular-devkit/core": "16.2.14", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.1", - "ora": "5.4.1", - "rxjs": "7.8.1" - }, - "dependencies": { - "@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, - "requires": { - "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" - } - }, - "@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 - }, - "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, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - } - } - }, - "@angular-eslint/builder": { - "version": "16.0.1", - "dev": true, - "requires": { - "@nx/devkit": "16.0.2", - "nx": "16.0.2" - } - }, - "@angular-eslint/bundled-angular-compiler": { - "version": "16.0.1", - "dev": true - }, - "@angular-eslint/eslint-plugin": { - "version": "16.0.1", - "dev": true, - "requires": { - "@angular-eslint/utils": "16.0.1", - "@typescript-eslint/utils": "5.59.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - } - }, - "@typescript-eslint/types": { - "version": "5.59.2", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.59.2", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "@angular-eslint/eslint-plugin-template": { - "version": "16.0.1", - "dev": true, - "requires": { - "@angular-eslint/bundled-angular-compiler": "16.0.1", - "@angular-eslint/utils": "16.0.1", - "@typescript-eslint/type-utils": "5.59.2", - "@typescript-eslint/utils": "5.59.2", - "aria-query": "5.1.3", - "axobject-query": "3.1.1" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.59.2", - "@typescript-eslint/utils": "5.59.2", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.59.2", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.59.2", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "aria-query": { - "version": "5.1.3", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "axobject-query": { - "version": "3.1.1", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "@angular-eslint/schematics": { - "version": "16.0.1", - "dev": true, - "requires": { - "@angular-eslint/eslint-plugin": "16.0.1", - "@angular-eslint/eslint-plugin-template": "16.0.1", - "@nx/devkit": "16.0.2", - "ignore": "5.2.4", - "nx": "16.0.2", - "strip-json-comments": "3.1.1", - "tmp": "0.2.1" - }, - "dependencies": { - "tmp": { - "version": "0.2.1", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } - } - }, - "@angular-eslint/template-parser": { - "version": "16.0.1", - "dev": true, - "requires": { - "@angular-eslint/bundled-angular-compiler": "16.0.1", - "eslint-scope": "^7.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "7.2.0", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "@angular-eslint/utils": { - "version": "16.0.1", - "dev": true, - "requires": { - "@angular-eslint/bundled-angular-compiler": "16.0.1", - "@typescript-eslint/utils": "5.59.2" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2" - } - }, - "@typescript-eslint/types": { - "version": "5.59.2", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/visitor-keys": "5.59.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.59.2", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.2", - "@typescript-eslint/types": "5.59.2", - "@typescript-eslint/typescript-estree": "5.59.2", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.2", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "@angular/animations": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/cdk": { - "version": "16.0.1", - "requires": { - "parse5": "^7.1.2", - "tslib": "^2.3.0" - } - }, - "@angular/cli": { - "version": "16.2.14", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.14.tgz", - "integrity": "sha512-0y71jtitigVolm4Rim1b8xPQ+B22cGp4Spef2Wunpqj67UowN6tsZaVuWBEQh4u5xauX8LAHKqsvy37ZPWCc4A==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1602.14", - "@angular-devkit/core": "16.2.14", - "@angular-devkit/schematics": "16.2.14", - "@schematics/angular": "16.2.14", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.3", - "ini": "4.1.1", - "inquirer": "8.2.4", - "jsonc-parser": "3.2.0", - "npm-package-arg": "10.1.0", - "npm-pick-manifest": "8.0.1", - "open": "8.4.2", - "ora": "5.4.1", - "pacote": "15.2.0", - "resolve": "1.22.2", - "semver": "7.5.4", - "symbol-observable": "4.0.0", - "yargs": "17.7.2" - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.1602.14", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.14.tgz", - "integrity": "sha512-eSdONEV5dbtLNiOMBy9Ue9DdJ1ct6dH9RdZfYiedq6VZn0lejePAjY36MYVXgq2jTE+v/uIiaNy7caea5pt55A==", - "dev": true, - "requires": { - "@angular-devkit/core": "16.2.14", - "rxjs": "7.8.1" - } - }, - "@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, - "requires": { - "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" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@angular/common": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/compiler": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/compiler-cli": { - "version": "16.0.1", - "requires": { - "@babel/core": "7.19.3", - "@jridgewell/sourcemap-codec": "^1.4.14", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "dependencies": { - "@babel/core": { - "version": "7.19.3", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "@babel/generator": { - "version": "7.21.5", - "requires": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - } - } - }, - "@angular/core": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/forms": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/localize": { - "version": "16.0.1", - "requires": { - "@babel/core": "7.19.3", - "glob": "8.1.0", - "yargs": "^17.2.1" - }, - "dependencies": { - "@babel/core": { - "version": "7.19.3", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.21.5", - "requires": { - "@babel/types": "^7.21.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "brace-expansion": { - "version": "2.0.1", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "@angular/platform-browser": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/platform-browser-dynamic": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@angular/router": { - "version": "16.0.1", - "requires": { - "tslib": "^2.3.0" - } - }, - "@ant-design/colors": { - "version": "7.0.0", - "requires": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "@ant-design/icons-angular": { - "version": "16.0.0", - "requires": { - "@ant-design/colors": "^7.0.0", - "tslib": "^2.0.0" - } - }, - "@assemblyscript/loader": { - "version": "0.10.1", - "dev": true - }, - "@babel/code-frame": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", - "integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==", - "requires": { - "@babel/highlight": "^7.24.6", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.21.7" - }, - "@babel/core": { - "version": "7.21.4", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "@babel/generator": { - "version": "7.21.4", - "requires": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.5", - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.21.8", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz", - "integrity": "sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==" - }, - "@babel/helper-function-name": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz", - "integrity": "sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==", - "requires": { - "@babel/template": "^7.24.6", - "@babel/types": "^7.24.6" - }, - "dependencies": { - "@babel/template": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.6.tgz", - "integrity": "sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==", - "requires": { - "@babel/code-frame": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6" - } - } - } - }, - "@babel/helper-hoist-variables": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz", - "integrity": "sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==", - "requires": { - "@babel/types": "^7.24.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.21.4", - "requires": { - "@babel/types": "^7.21.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.5", - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.21.5", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.21.5", - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz", - "integrity": "sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==" - }, - "@babel/helper-validator-identifier": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz", - "integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==" - }, - "@babel/helper-validator-option": { - "version": "7.21.0" - }, - "@babel/helper-wrap-function": { - "version": "7.20.5", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@babel/helpers": { - "version": "7.21.5", - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/highlight": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz", - "integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.24.6", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.6.tgz", - "integrity": "sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@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.20.0", - "@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-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/regjsgen": { - "version": "0.8.0", - "dev": true - }, - "@babel/runtime": { - "version": "7.21.0", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.20.7", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.6.tgz", - "integrity": "sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==", - "requires": { - "@babel/code-frame": "^7.24.6", - "@babel/generator": "^7.24.6", - "@babel/helper-environment-visitor": "^7.24.6", - "@babel/helper-function-name": "^7.24.6", - "@babel/helper-hoist-variables": "^7.24.6", - "@babel/helper-split-export-declaration": "^7.24.6", - "@babel/parser": "^7.24.6", - "@babel/types": "^7.24.6", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "dependencies": { - "@babel/generator": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.6.tgz", - "integrity": "sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==", - "requires": { - "@babel/types": "^7.24.6", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz", - "integrity": "sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==", - "requires": { - "@babel/types": "^7.24.6" - } - } - } - }, - "@babel/types": { - "version": "7.24.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.6.tgz", - "integrity": "sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==", - "requires": { - "@babel/helper-string-parser": "^7.24.6", - "@babel/helper-validator-identifier": "^7.24.6", - "to-fast-properties": "^2.0.0" - } - }, - "@braintree/sanitize-url": { - "version": "6.0.2", - "optional": true - }, - "@colors/colors": { - "version": "1.5.0", - "dev": true, - "optional": true, - "peer": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@ctrl/tinycolor": { - "version": "3.6.1" - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "dev": true - }, - "@esbuild/linux-x64": { - "version": "0.17.18", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.3", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "@eslint/js": { - "version": "8.40.0", - "dev": true - }, - "@fortawesome/angular-fontawesome": { - "version": "0.13.0", - "requires": { - "tslib": "^2.4.1" - } - }, - "@fortawesome/fontawesome-common-types": { - "version": "6.4.0" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "6.4.0", - "requires": { - "@fortawesome/fontawesome-common-types": "6.4.0" - } - }, - "@fortawesome/free-brands-svg-icons": { - "version": "6.4.0", - "requires": { - "@fortawesome/fontawesome-common-types": "6.4.0" - } - }, - "@fortawesome/free-regular-svg-icons": { - "version": "6.4.0", - "requires": { - "@fortawesome/fontawesome-common-types": "6.4.0" - } - }, - "@fortawesome/free-solid-svg-icons": { - "version": "6.4.0", - "requires": { - "@fortawesome/fontawesome-common-types": "6.4.0" - } - }, - "@fullhuman/postcss-purgecss": { - "version": "5.0.0", - "dev": true, - "requires": { - "purgecss": "^5.0.0" - } - }, - "@gar/promisify": { - "version": "1.1.3", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@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==", - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0" - }, - "@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==" - }, - "@jridgewell/source-map": { - "version": "0.3.3", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14" - }, - "@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==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.4", - "dev": true - }, - "@ngtools/webpack": { - "version": "16.0.1", - "dev": true, - "requires": {} - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/fs": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^7.3.5" - } - }, - "@npmcli/git": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", - "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", - "dev": true, - "requires": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "dev": true - }, - "which": { - "version": "3.0.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@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, - "requires": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@npmcli/node-gyp": { - "version": "3.0.0", - "dev": true - }, - "@npmcli/promise-spawn": { - "version": "6.0.2", - "dev": true, - "requires": { - "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@npmcli/run-script": { - "version": "6.0.2", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@nrwl/devkit": { - "version": "16.0.2", - "dev": true, - "requires": { - "@nx/devkit": "16.0.2" - } - }, - "@nrwl/tao": { - "version": "16.0.2", - "dev": true, - "requires": { - "nx": "16.0.2" - } - }, - "@nx/devkit": { - "version": "16.0.2", - "dev": true, - "requires": { - "@nrwl/devkit": "16.0.2", - "ejs": "^3.1.7", - "ignore": "^5.0.4", - "semver": "7.3.4", - "tmp": "~0.2.1", - "tslib": "^2.3.0" - }, - "dependencies": { - "semver": { - "version": "7.3.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tmp": { - "version": "0.2.1", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } - } - }, - "@nx/nx-linux-x64-gnu": { - "version": "16.0.2", - "dev": true, - "optional": true - }, - "@nx/nx-linux-x64-musl": { - "version": "16.0.2", - "dev": true, - "optional": true - }, - "@parcel/watcher": { - "version": "2.0.4", - "dev": true, - "requires": { - "node-addon-api": "^3.2.1", - "node-gyp-build": "^4.3.0" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "optional": true - }, - "@polka/url": { - "version": "1.0.0-next.21", - "dev": true - }, - "@rollup/plugin-json": { - "version": "6.0.0", - "dev": true, - "requires": { - "@rollup/pluginutils": "^5.0.1" - } - }, - "@rollup/plugin-node-resolve": { - "version": "15.0.2", - "dev": true, - "requires": { - "@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" - } - }, - "@rollup/pluginutils": { - "version": "5.0.2", - "dev": true, - "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" - } - }, - "@schematics/angular": { - "version": "16.2.14", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.14.tgz", - "integrity": "sha512-YqIv727l9Qze8/OL6H9mBHc2jVXzAGRNBYnxYWqWhLbfvuVbbldo6NNIIjgv6lrl2LJSdPAAMNOD5m/f6210ug==", - "dev": true, - "requires": { - "@angular-devkit/core": "16.2.14", - "@angular-devkit/schematics": "16.2.14", - "jsonc-parser": "3.2.0" - }, - "dependencies": { - "@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, - "requires": { - "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" - } - } - } - }, - "@sigstore/bundle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz", - "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==", - "dev": true, - "requires": { - "@sigstore/protobuf-specs": "^0.2.0" - } - }, - "@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", - "dev": true - }, - "@sigstore/sign": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz", - "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==", - "dev": true, - "requires": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "make-fetch-happen": "^11.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - } - } - }, - "@sigstore/tuf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", - "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", - "dev": true, - "requires": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" - } - }, - "@socket.io/component-emitter": { - "version": "3.1.0", - "dev": true, - "optional": true, - "peer": true - }, - "@tauri-apps/api": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.1.1.tgz", - "integrity": "sha512-fzUfFFKo4lknXGJq8qrCidkUcKcH2UHhfaaCNt4GzgzGaW2iS26uFOg4tS3H4P8D6ZEeUxtiD5z0nwFF0UN30A==" - }, - "@tauri-apps/plugin-cli": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-cli/-/plugin-cli-2.0.0.tgz", - "integrity": "sha512-glQmlL1IiCGEa1FHYa/PTPSeYhfu56omLRgHXWlJECDt6DbJyRuJWVgtkQfUxtqnVdYnnU+DGIGeiInoEqtjLw==", - "requires": { - "@tauri-apps/api": "^2.0.0" - } - }, - "@tauri-apps/plugin-clipboard-manager": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-clipboard-manager/-/plugin-clipboard-manager-2.0.0.tgz", - "integrity": "sha512-V1sXmbjnwfXt/r48RJMwfUmDMSaP/8/YbH4CLNxt+/sf1eHlIP8PRFdFDQwLN0cNQKu2rqQVbG/Wc/Ps6cDUhw==", - "requires": { - "@tauri-apps/api": "^2.0.0" - } - }, - "@tauri-apps/plugin-dialog": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.0.1.tgz", - "integrity": "sha512-fnUrNr6EfvTqdls/ufusU7h6UbNFzLKvHk/zTuOiBq01R3dTODqwctZlzakdbfSp/7pNwTKvgKTAgl/NAP/Z0Q==", - "requires": { - "@tauri-apps/api": "^2.0.0" - } - }, - "@tauri-apps/plugin-notification": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.0.0.tgz", - "integrity": "sha512-6qEDYJS7mgXZWLXA0EFL+DVCJh8sJlzSoyw6B50pxhLPVFjc5Vr5DVzl5W3mUHaYhod5wsC984eQnlCCGqxYDA==", - "requires": { - "@tauri-apps/api": "^2.0.0" - } - }, - "@tauri-apps/plugin-os": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-os/-/plugin-os-2.0.0.tgz", - "integrity": "sha512-M7hG/nNyQYTJxVG/UhTKhp9mpXriwWzrs9mqDreB8mIgqA3ek5nHLdwRZJWhkKjZrnDT4v9CpA9BhYeplTlAiA==", - "requires": { - "@tauri-apps/api": "^2.0.0" - } - }, - "@tauri-apps/plugin-shell": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.0.1.tgz", - "integrity": "sha512-akU1b77sw3qHiynrK0s930y8zKmcdrSD60htjH+mFZqv5WaakZA/XxHR3/sF1nNv9Mgmt/Shls37HwnOr00aSw==", - "requires": { - "@tauri-apps/api": "^2.0.0" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.8", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "dev": true - }, - "@tufjs/canonical-json": { - "version": "1.0.0", - "dev": true - }, - "@tufjs/models": { - "version": "1.0.4", - "dev": true, - "requires": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@types/body-parser": { - "version": "1.19.2", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/chrome": { - "version": "0.0.236", - "dev": true, - "requires": { - "@types/filesystem": "*", - "@types/har-format": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.5.0", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/cookie": { - "version": "0.4.1", - "dev": true, - "optional": true, - "peer": true - }, - "@types/cors": { - "version": "2.8.13", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@types/node": "*" - } - }, - "@types/d3": { - "version": "7.4.0", - "dev": true, - "requires": { - "@types/d3-array": "*", - "@types/d3-axis": "*", - "@types/d3-brush": "*", - "@types/d3-chord": "*", - "@types/d3-color": "*", - "@types/d3-contour": "*", - "@types/d3-delaunay": "*", - "@types/d3-dispatch": "*", - "@types/d3-drag": "*", - "@types/d3-dsv": "*", - "@types/d3-ease": "*", - "@types/d3-fetch": "*", - "@types/d3-force": "*", - "@types/d3-format": "*", - "@types/d3-geo": "*", - "@types/d3-hierarchy": "*", - "@types/d3-interpolate": "*", - "@types/d3-path": "*", - "@types/d3-polygon": "*", - "@types/d3-quadtree": "*", - "@types/d3-random": "*", - "@types/d3-scale": "*", - "@types/d3-scale-chromatic": "*", - "@types/d3-selection": "*", - "@types/d3-shape": "*", - "@types/d3-time": "*", - "@types/d3-time-format": "*", - "@types/d3-timer": "*", - "@types/d3-transition": "*", - "@types/d3-zoom": "*" - } - }, - "@types/d3-array": { - "version": "3.0.2", - "dev": true - }, - "@types/d3-axis": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-selection": "*" - } - }, - "@types/d3-brush": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-selection": "*" - } - }, - "@types/d3-chord": { - "version": "3.0.1", - "dev": true - }, - "@types/d3-color": { - "version": "3.0.2", - "dev": true - }, - "@types/d3-contour": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-array": "*", - "@types/geojson": "*" - } - }, - "@types/d3-delaunay": { - "version": "6.0.0", - "dev": true - }, - "@types/d3-dispatch": { - "version": "3.0.1", - "dev": true - }, - "@types/d3-drag": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-selection": "*" - } - }, - "@types/d3-dsv": { - "version": "3.0.0", - "dev": true - }, - "@types/d3-ease": { - "version": "3.0.0", - "dev": true - }, - "@types/d3-fetch": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-dsv": "*" - } - }, - "@types/d3-force": { - "version": "3.0.3", - "dev": true - }, - "@types/d3-format": { - "version": "3.0.1", - "dev": true - }, - "@types/d3-geo": { - "version": "3.0.2", - "dev": true, - "requires": { - "@types/geojson": "*" - } - }, - "@types/d3-hierarchy": { - "version": "3.0.2", - "dev": true - }, - "@types/d3-interpolate": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-color": "*" - } - }, - "@types/d3-path": { - "version": "3.0.0", - "dev": true - }, - "@types/d3-polygon": { - "version": "3.0.0", - "dev": true - }, - "@types/d3-quadtree": { - "version": "3.0.2", - "dev": true - }, - "@types/d3-random": { - "version": "3.0.1", - "dev": true - }, - "@types/d3-scale": { - "version": "4.0.2", - "dev": true, - "requires": { - "@types/d3-time": "*" - } - }, - "@types/d3-scale-chromatic": { - "version": "3.0.0", - "dev": true - }, - "@types/d3-selection": { - "version": "3.0.2", - "dev": true - }, - "@types/d3-shape": { - "version": "3.0.2", - "dev": true, - "requires": { - "@types/d3-path": "*" - } - }, - "@types/d3-time": { - "version": "3.0.0", - "dev": true - }, - "@types/d3-time-format": { - "version": "4.0.0", - "dev": true - }, - "@types/d3-timer": { - "version": "3.0.0", - "dev": true - }, - "@types/d3-transition": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-selection": "*" - } - }, - "@types/d3-zoom": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" - } - }, - "@types/data-urls": { - "version": "3.0.4", - "dev": true, - "requires": { - "@types/whatwg-mimetype": "*", - "@types/whatwg-url": "*" - } - }, - "@types/eslint": { - "version": "8.2.2", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "1.0.1", - "dev": true - }, - "@types/express": { - "version": "4.17.17", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.35", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "@types/filesystem": { - "version": "0.0.32", - "dev": true, - "requires": { - "@types/filewriter": "*" - } - }, - "@types/filewriter": { - "version": "0.0.29", - "dev": true - }, - "@types/geojson": { - "version": "7946.0.8", - "dev": true - }, - "@types/glob": { - "version": "7.2.0", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/har-format": { - "version": "1.2.8", - "dev": true - }, - "@types/http-proxy": { - "version": "1.17.11", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/jasmine": { - "version": "4.3.1", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.10", - "dev": true, - "requires": { - "@types/jasmine": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "dev": true - }, - "@types/marked": { - "version": "4.3.0", - "peer": true - }, - "@types/mime": { - "version": "1.3.2", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "dev": true - }, - "@types/node": { - "version": "20.1.5", - "dev": true - }, - "@types/psl": { - "version": "1.1.0", - "dev": true - }, - "@types/q": { - "version": "0.0.32", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "dev": true - }, - "@types/resolve": { - "version": "1.20.2", - "dev": true - }, - "@types/retry": { - "version": "0.12.0", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "3.0.19", - "dev": true - }, - "@types/semver": { - "version": "7.5.0", - "dev": true - }, - "@types/send": { - "version": "0.17.1", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/serve-index": { - "version": "1.9.1", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.15.1", - "dev": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/source-list-map": { - "version": "0.1.2", - "dev": true - }, - "@types/topojson-client": { - "version": "3.1.1", - "dev": true, - "requires": { - "@types/geojson": "*", - "@types/topojson-specification": "*" - } - }, - "@types/topojson-simplify": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/geojson": "*", - "@types/topojson-specification": "*" - } - }, - "@types/topojson-specification": { - "version": "1.0.2", - "dev": true, - "requires": { - "@types/geojson": "*" - } - }, - "@types/webextension-polyfill": { - "version": "0.8.3", - "dev": true - }, - "@types/webidl-conversions": { - "version": "7.0.3", - "dev": true - }, - "@types/webpack": { - "version": "5.28.0", - "dev": true, - "requires": { - "@types/node": "*", - "tapable": "^2.2.0", - "webpack": "^5" - } - }, - "@types/webpack-sources": { - "version": "3.2.0", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - } - }, - "@types/whatwg-encoding": { - "version": "2.0.3", - "dev": true - }, - "@types/whatwg-mimetype": { - "version": "3.0.2", - "dev": true - }, - "@types/whatwg-url": { - "version": "11.0.4", - "dev": true, - "requires": { - "@types/webidl-conversions": "*" - } - }, - "@types/ws": { - "version": "8.5.4", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.59.6", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/type-utils": "5.59.6", - "@typescript-eslint/utils": "5.59.6", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "@typescript-eslint/parser": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.59.6", - "@typescript-eslint/utils": "5.59.6", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "@typescript-eslint/types": { - "version": "5.59.6", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "globby": { - "version": "11.1.0", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "5.59.6", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@vitejs/plugin-basic-ssl": { - "version": "1.0.1", - "dev": true, - "requires": {} - }, - "@webassemblyjs/ast": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.6", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.6", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.6", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/ast": "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/wasm-opt": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@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/wast-printer": { - "version": "1.11.6", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "dev": true - }, - "@yarnpkg/parsers": { - "version": "3.0.0-rc.43", - "dev": true, - "requires": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - } - }, - "@zkochan/js-yaml": { - "version": "0.0.6", - "dev": true, - "requires": { - "argparse": "^2.0.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "dev": true - } - } - }, - "abab": { - "version": "2.0.6", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "7.4.1", - "dev": true, - "peer": true - }, - "acorn-jsx": { - "version": "5.3.2", - "dev": true, - "requires": {} - }, - "adjust-sourcemap-loader": { - "version": "4.0.0", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.4", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "adm-zip": { - "version": "0.5.10", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "8.12.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "dev": true, - "requires": { - "ajv": "^8.0.0" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "ansi-colors": { - "version": "4.1.3", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html-community": { - "version": "0.0.8", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1" - }, - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "any-promise": { - "version": "1.3.0", - "dev": true - }, - "anymatch": { - "version": "3.1.2", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "2.0.0", - "dev": true - }, - "archiver": { - "version": "5.3.1", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - } - }, - "archiver-utils": { - "version": "2.1.0", - "dev": true, - "requires": { - "glob": "^7.1.4", + "glob": "^7.2.3", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", @@ -22117,8055 +22517,40 @@ "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "dev": true, - "requires": { - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", "readable-stream": "^3.6.0" - } - }, - "arg": { - "version": "5.0.2", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "dev": true - } - } - }, - "array-buffer-byte-length": { - "version": "1.0.1", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - } - }, - "array-flatten": { - "version": "2.1.2", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "dev": true - }, - "arraybuffer.prototype.slice": { - "version": "1.0.3", - "dev": true, - "requires": { - "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" - } - }, - "arrify": { - "version": "1.0.1", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "dev": true - }, - "async": { - "version": "3.2.4", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "dev": true - }, - "autoprefixer": { - "version": "10.4.14", - "requires": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "available-typed-arrays": { - "version": "1.0.7", - "dev": true, - "requires": { - "possible-typed-array-names": "^1.0.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "dev": true - }, - "axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "babel-loader": { - "version": "9.1.2", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "requires": { - "@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" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - } - }, - "balanced-match": { - "version": "1.0.2" - }, - "base64-js": { - "version": "1.5.1", - "dev": true - }, - "base64id": { - "version": "2.0.0", - "dev": true, - "optional": true, - "peer": true - }, - "batch": { - "version": "0.6.1", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0" - }, - "bl": { - "version": "4.1.0", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "blocking-proxy": { - "version": "1.0.1", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "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, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - } - } - }, - "bonjour-service": { - "version": "1.1.1", - "dev": true, - "requires": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "boolbase": { - "version": "1.0.0", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.5", - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "browserstack": { - "version": "1.6.1", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } - } - }, - "buffer": { - "version": "5.7.1", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "dev": true - }, - "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 - }, - "bytes": { - "version": "3.1.2", - "dev": true - }, - "cacache": { - "version": "17.0.6", - "dev": true, - "requires": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.2.4", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.0", - "path-scurry": "^1.7.0" - } - }, - "lru-cache": { - "version": "7.18.3", - "dev": true - }, - "minimatch": { - "version": "9.0.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "call-bind": { - "version": "1.0.7", - "dev": true, - "requires": { - "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" - } - }, - "callsites": { - "version": "3.1.0", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "camelcase-css": { - "version": "2.0.1", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001487" - }, - "caseless": { - "version": "0.12.0", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - } - }, - "chownr": { - "version": "2.0.0", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "dev": true - }, - "clean-webpack-plugin": { - "version": "4.0.0", - "dev": true, - "requires": { - "del": "^4.1.1" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "del": { - "version": "4.1.1", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "dev": true - } - } - }, - "globby": { - "version": "6.1.0", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "is-path-cwd": { - "version": "2.2.0", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "p-map": { - "version": "2.1.0", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "cli-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.6.1", - "dev": true - }, - "cli-width": { - "version": "3.0.0", - "dev": true - }, - "clipboard": { - "version": "2.0.11", - "optional": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "color-support": { - "version": "1.1.3", - "dev": true - }, - "colorette": { - "version": "2.0.20", - "dev": true - }, - "colors": { - "version": "1.4.0", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3" - }, - "commondir": { - "version": "1.0.1", - "dev": true - }, - "compress-commons": { - "version": "4.1.1", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "compressible": { - "version": "2.0.18", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "bytes": { - "version": "3.0.0", - "dev": true - }, - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "connect": { - "version": "3.7.0", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "connect-history-api-fallback": { - "version": "2.0.0", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "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 - }, - "convert-source-map": { - "version": "1.8.0", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.2", - "dev": true, - "optional": true, - "peer": true - }, - "cookie-signature": { - "version": "1.0.6", - "dev": true - }, - "copy-anything": { - "version": "2.0.6", - "dev": true, - "requires": { - "is-what": "^3.14.1" - } - }, - "copy-webpack-plugin": { - "version": "11.0.0", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "core-js-compat": { - "version": "3.30.2", - "dev": true, - "requires": { - "browserslist": "^4.21.5" - } - }, - "core-util-is": { - "version": "1.0.2", - "dev": true - }, - "cors": { - "version": "2.8.5", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cose-base": { - "version": "1.0.3", - "optional": true, - "requires": { - "layout-base": "^1.0.0" - } - }, - "cosmiconfig": { - "version": "8.1.3", - "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "cosmiconfig-typescript-loader": { - "version": "4.3.0", - "dev": true, - "requires": {} - }, - "crc-32": { - "version": "1.2.2", - "dev": true - }, - "crc32-stream": { - "version": "4.0.2", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - } - }, - "create-require": { - "version": "1.1.1", - "dev": true - }, - "critters": { - "version": "0.0.16", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "css-select": "^4.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "postcss": "^8.3.7", - "pretty-bytes": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "cross-env": { - "version": "7.0.3", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "css-loader": { - "version": "6.7.3", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.19", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "dependencies": { - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "css-select": { - "version": "4.3.0", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "dev": true - }, - "cuint": { - "version": "0.2.2", - "dev": true - }, - "custom-event": { - "version": "1.0.1", - "dev": true, - "optional": true, - "peer": true - }, - "cytoscape": { - "version": "3.25.0", - "optional": true, - "requires": { - "heap": "^0.2.6", - "lodash": "^4.17.21" - } - }, - "cytoscape-cose-bilkent": { - "version": "4.1.0", - "optional": true, - "requires": { - "cose-base": "^1.0.0" - } - }, - "cytoscape-fcose": { - "version": "2.2.0", - "optional": true, - "requires": { - "cose-base": "^2.2.0" - }, - "dependencies": { - "cose-base": { - "version": "2.2.0", - "optional": true, - "requires": { - "layout-base": "^2.0.0" - } - }, - "layout-base": { - "version": "2.0.1", - "optional": true - } - } - }, - "d3": { - "version": "7.8.4", - "requires": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "4", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - } - }, - "d3-array": { - "version": "3.2.0", - "requires": { - "internmap": "1 - 2" - } - }, - "d3-axis": { - "version": "3.0.0" - }, - "d3-brush": { - "version": "3.0.0", - "requires": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - } - }, - "d3-chord": { - "version": "3.0.1", - "requires": { - "d3-path": "1 - 3" - } - }, - "d3-color": { - "version": "3.1.0" - }, - "d3-contour": { - "version": "4.0.0", - "requires": { - "d3-array": "^3.2.0" - } - }, - "d3-delaunay": { - "version": "6.0.2", - "requires": { - "delaunator": "5" - } - }, - "d3-dispatch": { - "version": "3.0.1" - }, - "d3-drag": { - "version": "3.0.0", - "requires": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - } - }, - "d3-dsv": { - "version": "3.0.1", - "requires": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "dependencies": { - "commander": { - "version": "7.2.0" - } - } - }, - "d3-ease": { - "version": "3.0.1" - }, - "d3-fetch": { - "version": "3.0.1", - "requires": { - "d3-dsv": "1 - 3" - } - }, - "d3-force": { - "version": "3.0.0", - "requires": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - } - }, - "d3-format": { - "version": "3.1.0" - }, - "d3-geo": { - "version": "3.0.1", - "requires": { - "d3-array": "2.5.0 - 3" - } - }, - "d3-hierarchy": { - "version": "3.1.1" - }, - "d3-interpolate": { - "version": "3.0.1", - "requires": { - "d3-color": "1 - 3" - } - }, - "d3-path": { - "version": "3.0.1" - }, - "d3-polygon": { - "version": "3.0.1" - }, - "d3-quadtree": { - "version": "3.0.1" - }, - "d3-random": { - "version": "3.0.1" - }, - "d3-scale": { - "version": "4.0.2", - "requires": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - } - }, - "d3-scale-chromatic": { - "version": "3.0.0", - "requires": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - } - }, - "d3-selection": { - "version": "3.0.0" - }, - "d3-shape": { - "version": "3.1.0", - "requires": { - "d3-path": "1 - 3" - } - }, - "d3-time": { - "version": "3.0.0", - "requires": { - "d3-array": "2 - 3" - } - }, - "d3-time-format": { - "version": "4.1.0", - "requires": { - "d3-time": "1 - 3" - } - }, - "d3-timer": { - "version": "3.0.1" - }, - "d3-transition": { - "version": "3.0.1", - "requires": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - } - }, - "d3-zoom": { - "version": "3.0.0", - "requires": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - } - }, - "dagre-d3-es": { - "version": "7.0.9", - "optional": true, - "requires": { - "d3": "^7.8.2", - "lodash-es": "^4.17.21" - } - }, - "dashdash": { - "version": "1.14.1", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "5.0.0", - "requires": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - } - }, - "date-fns": { - "version": "2.30.0", - "requires": { - "@babel/runtime": "^7.21.0" - } - }, - "date-format": { - "version": "4.0.11", - "dev": true, - "optional": true, - "peer": true - }, - "dayjs": { - "version": "1.11.7", - "optional": true - }, - "debug": { - "version": "4.3.4", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "dev": true - }, - "deep-equal": { - "version": "2.2.1", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.0", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.0", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "dev": true - } - } - }, - "deep-is": { - "version": "0.1.4", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "dev": true - }, - "default-gateway": { - "version": "6.0.3", - "dev": true, - "requires": { - "execa": "^5.0.0" - } - }, - "defaults": { - "version": "1.0.3", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-data-property": { - "version": "1.1.4", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "dev": true - }, - "define-properties": { - "version": "1.2.1", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "2.2.2", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "globby": { - "version": "5.0.0", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delaunator": { - "version": "5.0.0", - "requires": { - "robust-predicates": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "dev": true - }, - "delegate": { - "version": "3.2.0", - "optional": true - }, - "delegates": { - "version": "1.0.0", - "dev": true - }, - "depd": { - "version": "2.0.0", - "dev": true - }, - "dependency-graph": { - "version": "0.11.0", - "dev": true - }, - "destroy": { - "version": "1.2.0", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "dev": true - }, - "di": { - "version": "0.0.1", - "dev": true, - "optional": true, - "peer": true - }, - "didyoumean": { - "version": "1.2.2", - "dev": true - }, - "diff": { - "version": "4.0.2", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "dev": true - }, - "dns-equal": { - "version": "1.0.0", - "dev": true - }, - "dns-packet": { - "version": "5.6.0", - "dev": true, - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" - } - }, - "doctrine": { - "version": "3.0.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-serialize": { - "version": "2.2.1", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "dom-serializer": { - "version": "1.4.1", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "dev": true - }, - "domhandler": { - "version": "4.3.1", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "dompurify": { - "version": "2.4.3", - "optional": true - }, - "domutils": { - "version": "2.8.0", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dotenv": { - "version": "10.0.0", - "dev": true - }, - "duplexer": { - "version": "0.1.2", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "dev": true - }, - "ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, - "electron-to-chromium": { - "version": "1.4.396" - }, - "elkjs": { - "version": "0.8.2", - "optional": true - }, - "emoji-regex": { - "version": "8.0.0" - }, - "emoji-toolkit": { - "version": "7.0.1" - }, - "emojis-list": { - "version": "3.0.0", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "6.4.2", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@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.0.3", - "ws": "~8.11.0" - } - }, - "engine.io-parser": { - "version": "5.0.6", - "dev": true, - "optional": true, - "peer": true - }, - "enhanced-resolve": { - "version": "5.14.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "enquirer": { - "version": "2.3.6", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "ent": { - "version": "2.2.0", - "dev": true, - "optional": true, - "peer": true - }, - "entities": { - "version": "2.2.0", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "dev": true - }, - "errno": { - "version": "0.1.8", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.22.5", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.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.1", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "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.0", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "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.5", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" - } - }, - "es-define-property": { - "version": "1.0.0", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.3", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "dev": true - } - } - }, - "es-module-lexer": { - "version": "1.2.1", - "dev": true - }, - "es-set-tostringtag": { - "version": "2.0.3", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "esbuild": { - "version": "0.17.18", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.17.18", - "@esbuild/android-arm64": "0.17.18", - "@esbuild/android-x64": "0.17.18", - "@esbuild/darwin-arm64": "0.17.18", - "@esbuild/darwin-x64": "0.17.18", - "@esbuild/freebsd-arm64": "0.17.18", - "@esbuild/freebsd-x64": "0.17.18", - "@esbuild/linux-arm": "0.17.18", - "@esbuild/linux-arm64": "0.17.18", - "@esbuild/linux-ia32": "0.17.18", - "@esbuild/linux-loong64": "0.17.18", - "@esbuild/linux-mips64el": "0.17.18", - "@esbuild/linux-ppc64": "0.17.18", - "@esbuild/linux-riscv64": "0.17.18", - "@esbuild/linux-s390x": "0.17.18", - "@esbuild/linux-x64": "0.17.18", - "@esbuild/netbsd-x64": "0.17.18", - "@esbuild/openbsd-x64": "0.17.18", - "@esbuild/sunos-x64": "0.17.18", - "@esbuild/win32-arm64": "0.17.18", - "@esbuild/win32-ia32": "0.17.18", - "@esbuild/win32-x64": "0.17.18" - } - }, - "esbuild-wasm": { - "version": "0.17.18", - "dev": true - }, - "escalade": { - "version": "3.1.1" - }, - "escape-html": { - "version": "1.0.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "eslint": { - "version": "8.40.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "eslint-scope": { - "version": "7.2.0", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - }, - "espree": { - "version": "9.5.2", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "etag": { - "version": "1.8.1", - "dev": true - }, - "eventemitter-asyncresource": { - "version": "1.0.0", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "dev": true - }, - "events": { - "version": "3.3.0", - "dev": true - }, - "execa": { - "version": "5.1.1", - "dev": true, - "requires": { - "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" - } - }, - "exit": { - "version": "0.1.2", - "dev": true - }, - "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 - }, - "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "dev": true - }, - "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "finalhandler": { - "version": "1.2.0", - "dev": true, - "requires": { - "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" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "dev": true - }, - "statuses": { - "version": "2.0.1", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "dev": true - }, - "external-editor": { - "version": "3.1.0", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "dev": true, - "requires": { - "@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" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figures": { - "version": "3.2.0", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "filelist": { - "version": "1.0.4", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "fill-range": { - "version": "7.0.1", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.6", - "dev": true - }, - "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 - }, - "for-each": { - "version": "0.3.3", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "foreground-child": { - "version": "3.1.1", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.0.2", - "dev": true - } - } - }, - "forever-agent": { - "version": "0.6.1", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "dev": true - }, - "fraction.js": { - "version": "4.2.0" - }, - "fresh": { - "version": "0.5.2", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "dev": true - }, - "fs-extra": { - "version": "10.1.0", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "3.0.2", - "dev": true, - "requires": { - "minipass": "^5.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0" - }, - "function-bind": { - "version": "1.1.2", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "dev": true - }, - "fuse.js": { - "version": "6.6.2" - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "gensync": { - "version": "1.0.0-beta.2" - }, - "get-caller-file": { - "version": "2.0.5" - }, - "get-intrinsic": { - "version": "1.2.4", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - } - }, - "getpass": { - "version": "0.1.7", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.7", - "dev": true, - "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "dev": true - }, - "globals": { - "version": "11.12.0" - }, - "globalthis": { - "version": "1.0.3", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "13.1.4", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "good-listener": { - "version": "1.2.2", - "optional": true, - "requires": { - "delegate": "^3.1.2" - } - }, - "gopd": { - "version": "1.0.1", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.9", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "dev": true - }, - "gzip-size": { - "version": "6.0.0", - "dev": true, - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - } - } - }, - "has-bigints": { - "version": "1.0.2", - "dev": true - }, - "has-flag": { - "version": "3.0.0" - }, - "has-property-descriptors": { - "version": "1.0.2", - "dev": true, - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.2", - "dev": true, - "requires": { - "has-symbols": "^1.0.3" - } - }, - "has-unicode": { - "version": "2.0.1", - "dev": true - }, - "hasown": { - "version": "2.0.1", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "hdr-histogram-js": { - "version": "2.0.3", - "dev": true, - "requires": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "dev": true - }, - "heap": { - "version": "0.2.7", - "optional": true - }, - "hosted-git-info": { - "version": "6.1.1", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "dev": true - } - } - }, - "hpack.js": { - "version": "2.1.6", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "dev": true, - "requires": { - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "html-entities": { - "version": "2.3.3", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.1", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "dependencies": { - "statuses": { - "version": "2.0.1", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.8", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "2.0.6", - "dev": true, - "requires": { - "@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" - } - }, - "http-signature": { - "version": "1.2.0", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-utils": { - "version": "5.1.0", - "dev": true, - "requires": {} - }, - "ieee754": { - "version": "1.2.1", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "minimatch": "^9.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "image-size": { - "version": "0.5.5", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "dev": true - }, - "immutable": { - "version": "4.3.0", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", - "dev": true - }, - "injection-js": { - "version": "2.4.0", - "dev": true, - "requires": { - "tslib": "^2.0.0" - } - }, - "inquirer": { - "version": "8.2.4", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "internal-slot": { - "version": "1.0.7", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, - "internmap": { - "version": "2.0.3" - }, - "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, - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "dependencies": { - "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 - } - } - }, - "ipaddr.js": { - "version": "2.0.1", - "dev": true - }, - "is-arguments": { - "version": "1.1.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-array-buffer": { - "version": "3.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - } - }, - "is-arrayish": { - "version": "0.2.1", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-builtin-module": { - "version": "3.2.1", - "dev": true, - "requires": { - "builtin-modules": "^3.3.0" - }, - "dependencies": { - "builtin-modules": { - "version": "3.3.0", - "dev": true - } - } - }, - "is-callable": { - "version": "1.2.7", - "dev": true - }, - "is-core-module": { - "version": "2.12.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "dev": true - }, - "is-extglob": { - "version": "2.1.1" - }, - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "is-glob": { - "version": "4.0.3", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-interactive": { - "version": "1.0.0", - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "dev": true - }, - "is-map": { - "version": "2.0.2", - "dev": true - }, - "is-module": { - "version": "1.0.0", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.3", - "dev": true - }, - "is-number": { - "version": "7.0.0" - }, - "is-number-object": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "3.0.0", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "dev": true, - "requires": { - "call-bind": "^1.0.7" - } - }, - "is-stream": { - "version": "2.0.1", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.13", - "dev": true, - "requires": { - "which-typed-array": "^1.1.14" - } - }, - "is-typedarray": { - "version": "1.0.0", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "dev": true - }, - "is-weakmap": { - "version": "2.0.1", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "is-what": { - "version": "3.14.1", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.8", - "dev": true, - "optional": true, - "peer": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "requires": { - "@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" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "jackspeak": { - "version": "2.2.0", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jake": { - "version": "10.8.6", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jasmine": { - "version": "2.8.0", - "dev": true, - "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "dev": true - } - } - }, - "jasmine-core": { - "version": "5.0.0", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "7.0.0", - "dev": true, - "requires": { - "colors": "1.4.0" - } - }, - "jasminewd2": { - "version": "2.2.0", - "dev": true - }, - "jest-worker": { - "version": "27.4.6", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jiti": { - "version": "1.18.2", - "dev": true - }, - "js-sdsl": { - "version": "4.4.0", - "dev": true - }, - "js-tokens": { - "version": "4.0.0" - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "js-yaml-loader": { - "version": "1.2.2", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "loader-utils": "^1.2.3", - "un-eval": "^1.2.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "jsbn": { - "version": "0.1.1", - "dev": true - }, - "jsesc": { - "version": "2.5.2" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "dev": true - }, - "json5": { - "version": "2.2.3" - }, - "jsonc-parser": { - "version": "3.2.0", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "dev": true - }, - "jsprim": { - "version": "1.4.2", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.10.1", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "dev": true, - "requires": { - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "karma": { - "version": "6.4.2", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@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.4.1", - "source-map": "^0.6.1", - "tmp": "^0.2.1", - "ua-parser-js": "^0.7.30", - "yargs": "^16.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true, - "optional": true, - "peer": true - }, - "tmp": { - "version": "0.2.1", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "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" - } - }, - "yargs-parser": { - "version": "20.2.9", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "karma-source-map-support": { - "version": "1.4.0", - "dev": true, - "requires": { - "source-map-support": "^0.5.5" - } - }, - "katex": { - "version": "0.16.10", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz", - "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==", - "optional": true, - "requires": { - "commander": "^8.3.0" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "optional": true - } - } - }, - "khroma": { - "version": "2.0.0", - "optional": true - }, - "kind-of": { - "version": "6.0.3", - "dev": true - }, - "klona": { - "version": "2.0.6", - "dev": true - }, - "launch-editor": { - "version": "2.6.0", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } - }, - "layout-base": { - "version": "1.0.2", - "optional": true - }, - "lazystream": { - "version": "1.0.1", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "dev": true, - "requires": { - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "less": { - "version": "4.1.3", - "dev": true, - "requires": { - "copy-anything": "^2.0.1", - "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", - "parse-node-version": "^1.0.1", - "source-map": "~0.6.0", - "tslib": "^2.3.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mime": { - "version": "1.6.0", - "dev": true, - "optional": true - }, - "pify": { - "version": "4.0.1", - "dev": true, - "optional": true - }, - "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 - }, - "source-map": { - "version": "0.6.1", - "dev": true, - "optional": true - } - } - }, - "less-loader": { - "version": "11.1.0", - "dev": true, - "requires": { - "klona": "^2.0.4" - } - }, - "levn": { - "version": "0.4.1", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "license-webpack-plugin": { - "version": "4.0.2", - "dev": true, - "requires": { - "webpack-sources": "^3.0.0" - } - }, - "lie": { - "version": "3.3.0", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - }, - "lilconfig": { - "version": "2.1.0", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "dev": true - } - } - }, - "loader-runner": { - "version": "4.2.0", - "dev": true - }, - "loader-utils": { - "version": "3.2.1", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "devOptional": true - }, - "lodash-es": { - "version": "4.17.21", - "optional": true - }, - "lodash.debounce": { - "version": "4.0.8", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "log4js": { - "version": "6.6.0", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "date-format": "^4.0.11", - "debug": "^4.3.4", - "flatted": "^3.2.5", - "rfdc": "^1.3.0", - "streamroller": "^3.1.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.30.0", - "dev": true, - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.13" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "dev": true - }, - "make-fetch-happen": { - "version": "10.2.1", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.3", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "lru-cache": { - "version": "7.18.3", - "dev": true - }, - "minimatch": { - "version": "5.1.6", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "ssri": { - "version": "9.0.1", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - } - } - }, - "marked": { - "version": "4.3.0", - "peer": true - }, - "media-typer": { - "version": "0.3.0", - "dev": true - }, - "memfs": { - "version": "3.5.1", - "dev": true, - "requires": { - "fs-monkey": "^1.0.3" - } - }, - "memorystream": { - "version": "0.3.1", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "dev": true - }, - "mermaid": { - "version": "9.4.3", - "optional": true, - "requires": { - "@braintree/sanitize-url": "^6.0.0", - "cytoscape": "^3.23.0", - "cytoscape-cose-bilkent": "^4.1.0", - "cytoscape-fcose": "^2.1.0", - "d3": "^7.4.0", - "dagre-d3-es": "7.0.9", - "dayjs": "^1.11.7", - "dompurify": "2.4.3", - "elkjs": "^0.8.2", - "khroma": "^2.0.0", - "lodash-es": "^4.17.21", - "non-layered-tidy-tree-layout": "^2.0.2", - "stylis": "^4.1.2", - "ts-dedent": "^2.2.0", - "uuid": "^9.0.0", - "web-worker": "^1.2.0" - }, - "dependencies": { - "uuid": { - "version": "9.0.0", - "optional": true - } - } - }, - "methods": { - "version": "1.1.2", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "2.6.0", - "dev": true, - "optional": true, - "peer": true - }, - "mime-db": { - "version": "1.51.0", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "2.7.5", - "dev": true, - "requires": { - "schema-utils": "^4.0.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "dev": true - }, - "minimatch": { - "version": "3.0.5", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "dev": true - }, - "minipass": { - "version": "5.0.0", - "dev": true - }, - "minipass-collect": { - "version": "1.0.2", - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-fetch": { - "version": "2.1.2", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-flush": { - "version": "1.0.5", - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-sized": { - "version": "1.0.3", - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minizlib": { - "version": "2.1.2", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "dev": true - }, - "mrmime": { - "version": "1.0.1", - "dev": true - }, - "ms": { - "version": "2.1.2" - }, - "multicast-dns": { - "version": "7.2.5", - "dev": true, - "requires": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - } - }, - "mute-stream": { - "version": "0.0.8", - "dev": true - }, - "mz": { - "version": "2.7.0", - "dev": true, - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanoid": { - "version": "3.3.6" - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "dev": true - }, - "needle": { - "version": "3.2.0", - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "negotiator": { - "version": "0.6.3", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "dev": true - }, - "ng-packagr": { - "version": "16.0.1", - "dev": true, - "requires": { - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.0.0", - "ajv": "^8.11.0", - "ansi-colors": "^4.1.3", - "autoprefixer": "^10.4.12", - "browserslist": "^4.21.4", - "cacache": "^17.0.0", - "chokidar": "^3.5.3", - "commander": "^10.0.0", - "convert-source-map": "^2.0.0", - "dependency-graph": "^0.11.0", - "esbuild": "^0.17.0", - "esbuild-wasm": "^0.17.0", - "fast-glob": "^3.2.12", - "find-cache-dir": "^3.3.2", - "injection-js": "^2.4.0", - "jsonc-parser": "^3.2.0", - "less": "^4.1.3", - "ora": "^5.1.0", - "piscina": "^3.2.0", - "postcss": "^8.4.16", - "postcss-url": "^10.1.3", - "rollup": "^3.0.0", - "rxjs": "^7.5.6", - "sass": "^1.55.0" - }, - "dependencies": { - "commander": { - "version": "10.0.1", - "dev": true - }, - "convert-source-map": { - "version": "2.0.0", - "dev": true - } - } - }, - "ng-zorro-antd": { - "version": "16.1.0", - "requires": { - "@angular/cdk": "^16.0.0", - "@ant-design/icons-angular": "^16.0.0", - "date-fns": "^2.16.1", - "tslib": "^2.3.0" - } - }, - "ngx-markdown": { - "version": "16.0.0", - "requires": { - "clipboard": "^2.0.11", - "emoji-toolkit": "^7.0.0", - "katex": "^0.16.0", - "mermaid": "^9.1.2", - "prismjs": "^1.28.0", - "tslib": "^2.3.0" - } - }, - "nice-napi": { - "version": "1.0.2", - "dev": true, - "optional": true, - "requires": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "nice-try": { - "version": "1.0.5", - "dev": true - }, - "node-addon-api": { - "version": "3.2.1", - "dev": true - }, - "node-forge": { - "version": "1.3.1", - "dev": true - }, - "node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-gyp-build": { - "version": "4.5.0", - "dev": true - }, - "node-releases": { - "version": "2.0.10" - }, - "non-layered-tidy-tree-layout": { - "version": "2.0.2", - "optional": true - }, - "nopt": { - "version": "6.0.0", - "dev": true, - "requires": { - "abbrev": "^1.0.0" - } - }, - "normalize-package-data": { - "version": "5.0.0", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, - "normalize-path": { - "version": "3.0.0" - }, - "normalize-range": { - "version": "0.1.2" - }, - "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==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^3.0.0" - } - }, - "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, - "requires": { - "semver": "^7.1.1" - } - }, - "npm-normalize-package-bin": { - "version": "3.0.1", - "dev": true - }, - "npm-package-arg": { - "version": "10.1.0", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "npm-packlist": { - "version": "7.0.4", - "dev": true, - "requires": { - "ignore-walk": "^6.0.0" - } - }, - "npm-pick-manifest": { - "version": "8.0.1", - "dev": true, - "requires": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - } - }, - "npm-registry-fetch": { - "version": "14.0.5", - "dev": true, - "requires": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "dev": true - }, - "make-fetch-happen": { - "version": "11.1.1", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - } - } - }, - "npm-run-all": { - "version": "4.1.5", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "path-key": { - "version": "2.0.1", - "dev": true - }, - "semver": { - "version": "5.7.2", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "dev": true - } - } - }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "nth-check": { - "version": "2.1.1", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "nx": { - "version": "16.0.2", - "dev": true, - "requires": { - "@nrwl/tao": "16.0.2", - "@nx/nx-darwin-arm64": "16.0.2", - "@nx/nx-darwin-x64": "16.0.2", - "@nx/nx-linux-arm-gnueabihf": "16.0.2", - "@nx/nx-linux-arm64-gnu": "16.0.2", - "@nx/nx-linux-arm64-musl": "16.0.2", - "@nx/nx-linux-x64-gnu": "16.0.2", - "@nx/nx-linux-x64-musl": "16.0.2", - "@nx/nx-win32-arm64-msvc": "16.0.2", - "@nx/nx-win32-x64-msvc": "16.0.2", - "@parcel/watcher": "2.0.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.18", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.0.0", - "chalk": "^4.1.0", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^7.0.2", - "dotenv": "~10.0.0", - "enquirer": "~2.3.6", - "fast-glob": "3.2.7", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^11.1.0", - "glob": "7.1.4", - "ignore": "^5.0.4", - "js-yaml": "4.1.0", - "jsonc-parser": "3.2.0", - "lines-and-columns": "~2.0.3", - "minimatch": "3.0.5", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "semver": "7.3.4", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "v8-compile-cache": "2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "fast-glob": { - "version": "3.2.7", - "dev": true, - "requires": { - "@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" - } - }, - "fs-extra": { - "version": "11.1.1", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "glob": { - "version": "7.1.4", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "lines-and-columns": { - "version": "2.0.3", - "dev": true - }, - "semver": { - "version": "7.3.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tmp": { - "version": "0.2.1", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "dev": true - }, - "object-hash": { - "version": "3.0.0", - "dev": true - }, - "object-inspect": { - "version": "1.13.1", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "dev": true - }, - "object.assign": { - "version": "4.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "obuf": { - "version": "1.1.2", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "dev": true - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.2", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "opener": { - "version": "1.5.2", - "dev": true - }, - "optionator": { - "version": "0.9.1", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "ora": { - "version": "5.4.1", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "4.6.2", - "dev": true, - "requires": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "dependencies": { - "retry": { - "version": "0.13.1", - "dev": true - } - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "pacote": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", - "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", - "dev": true, - "requires": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - } - }, - "pako": { - "version": "1.0.11", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "dev": true, - "requires": { - "@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" - } - }, - "parse-node-version": { - "version": "1.0.1", - "dev": true - }, - "parse5": { - "version": "7.1.2", - "devOptional": true, - "requires": { - "entities": "^4.4.0" - }, - "dependencies": { - "entities": { - "version": "4.5.0", - "devOptional": true - } - } - }, - "parse5-html-rewriting-stream": { - "version": "7.0.0", - "dev": true, - "requires": { - "entities": "^4.3.0", - "parse5": "^7.0.0", - "parse5-sax-parser": "^7.0.0" - }, - "dependencies": { - "entities": { - "version": "4.5.0", - "dev": true - } - } - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "dev": true, - "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "dev": true - } - } - }, - "parse5-sax-parser": { - "version": "7.0.0", - "dev": true, - "requires": { - "parse5": "^7.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "dev": true - }, - "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, - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "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 - } - } - }, - "path-to-regexp": { - "version": "0.1.7", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "dev": true - }, - "picocolors": { - "version": "1.0.0" - }, - "picomatch": { - "version": "2.3.1" - }, - "pidtree": { - "version": "0.3.1", - "dev": true - }, - "pify": { - "version": "2.3.0", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.5", - "dev": true - }, - "piscina": { - "version": "3.2.0", - "dev": true, - "requires": { - "eventemitter-asyncresource": "^1.0.0", - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0", - "nice-napi": "^1.0.2" - } - }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "possible-typed-array-names": { - "version": "1.0.0", - "dev": true - }, - "postcss": { - "version": "8.4.23", - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-import": { - "version": "15.1.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-js": { - "version": "4.0.1", - "dev": true, - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-load-config": { - "version": "4.0.1", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - } - }, - "postcss-loader": { - "version": "7.3.0", - "dev": true, - "requires": { - "cosmiconfig": "^8.1.3", - "jiti": "^1.18.2", - "klona": "^2.0.6", - "semver": "^7.3.8" - }, - "dependencies": { - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "dev": true, - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-nested": { - "version": "6.0.1", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.11" - } - }, - "postcss-scss": { - "version": "4.0.6", - "dev": true, - "requires": {} - }, - "postcss-selector-parser": { - "version": "6.0.13", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-url": { - "version": "10.1.3", - "dev": true, - "requires": { - "make-dir": "~3.1.0", - "mime": "~2.5.2", - "minimatch": "~3.0.4", - "xxhashjs": "~0.2.2" - }, - "dependencies": { - "mime": { - "version": "2.5.2", - "dev": true - } - } - }, - "postcss-value-parser": { - "version": "4.2.0" - }, - "prelude-ls": { - "version": "1.2.1", - "dev": true - }, - "pretty-bytes": { - "version": "5.6.0", - "dev": true - }, - "prismjs": { - "version": "1.29.0" - }, - "proc-log": { - "version": "3.0.0", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "protractor": { - "version": "7.0.0", - "dev": true, - "requires": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cliui": { - "version": "6.0.0", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "strip-ansi": { - "version": "3.0.1", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "y18n": { - "version": "4.0.3", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "dev": true - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "dev": true - }, - "prr": { - "version": "1.0.1", - "dev": true, - "optional": true - }, - "pseudomap": { - "version": "1.0.2", - "dev": true - }, - "psl": { - "version": "1.9.0" - }, - "punycode": { - "version": "2.3.1" - }, - "purgecss": { - "version": "5.0.0", - "dev": true, - "requires": { - "commander": "^9.0.0", - "glob": "^8.0.3", - "postcss": "^8.4.4", - "postcss-selector-parser": "^6.0.7" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "commander": { - "version": "9.5.0", - "dev": true - }, - "glob": { - "version": "8.1.0", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "q": { - "version": "1.4.1", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "dev": true, - "optional": true, - "peer": true - }, - "qs": { - "version": "6.11.0", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-microtask": { - "version": "1.2.3", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "dev": true - }, - "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, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "read-cache": { - "version": "1.0.0", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "read-package-json": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", - "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", - "dev": true, - "requires": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", - "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "path-scurry": "^1.11.1" - } - }, - "jackspeak": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", - "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "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==", - "dev": true - }, - "minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - }, - "read-package-json-fast": { - "version": "3.0.2", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "read-pkg": { - "version": "3.0.0", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "dev": true - }, - "semver": { - "version": "5.7.2", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.2", - "dev": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.1.13" - }, - "regenerate": { - "version": "1.4.2", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.11" - }, - "regenerator-transform": { - "version": "0.15.1", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-parser": { - "version": "2.2.11", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.5.2", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - } - }, - "regexpu-core": { - "version": "5.3.2", - "dev": true, - "requires": { - "@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" - } - }, - "regjsparser": { - "version": "0.9.1", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "dev": true - } - } - }, - "request": { - "version": "2.88.2", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1" - }, - "require-from-string": { - "version": "2.0.2", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "dev": true - }, - "resolve": { - "version": "1.22.2", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "dev": true - }, - "resolve-url-loader": { - "version": "5.0.0", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.4", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "restore-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.12.0", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "dev": true, - "optional": true, - "peer": true - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "robust-predicates": { - "version": "3.0.1" - }, - "rollup": { - "version": "3.21.8", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-async": { - "version": "2.4.1", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rw": { - "version": "1.3.3" - }, - "rxjs": { - "version": "7.8.1", - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-array-concat": { - "version": "1.1.0", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.1.2" - }, - "safe-regex-test": { - "version": "1.0.3", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2" - }, - "sass": { - "version": "1.62.1", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, - "sass-loader": { - "version": "13.2.2", - "dev": true, - "requires": { - "klona": "^2.0.6", - "neo-async": "^2.6.2" - } - }, - "saucelabs": { - "version": "1.5.0", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } - } - }, - "sax": { - "version": "1.2.4", - "dev": true - }, - "schema-utils": { - "version": "4.0.1", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - }, - "select": { - "version": "1.1.2", - "optional": true - }, - "select-hose": { - "version": "2.0.0", - "dev": true - }, - "selenium-webdriver": { - "version": "3.6.0", - "dev": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.0.30", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } - } - }, - "selfsigned": { - "version": "2.1.1", - "dev": true, - "requires": { - "node-forge": "^1" - } - }, - "semver": { - "version": "7.4.0", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "dev": true - }, - "ms": { - "version": "2.1.3", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "statuses": { - "version": "2.0.1", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.1", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "dev": true - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "dev": true - } - } - }, - "serve-static": { - "version": "1.15.0", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "dev": true - }, - "set-function-length": { - "version": "1.2.1", - "dev": true, - "requires": { - "define-data-property": "^1.1.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - } - }, - "set-function-name": { - "version": "2.0.2", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - } - }, - "setimmediate": { - "version": "1.0.5", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "shell-quote": { - "version": "1.8.1", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "dev": true - }, - "sigstore": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.9.0.tgz", - "integrity": "sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==", - "dev": true, - "requires": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/sign": "^1.0.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "dev": true - }, - "make-fetch-happen": { - "version": "11.1.1", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - } - } - }, - "sirv": { - "version": "1.0.19", - "dev": true, - "requires": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" - } - }, - "slash": { - "version": "4.0.0", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0", - "dev": true - }, - "socket.io": { - "version": "4.6.1", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.4.1", - "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" - } - }, - "socket.io-adapter": { - "version": "2.5.2", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "ws": "~8.11.0" - } - }, - "socket.io-parser": { - "version": "4.2.3", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - } - }, - "sockjs": { - "version": "0.3.24", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dev": true, - "requires": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "source-map": { - "version": "0.7.4", - "dev": true - }, - "source-map-js": { - "version": "1.0.2" - }, - "source-map-loader": { - "version": "4.0.1", - "dev": true, - "requires": { - "abab": "^2.0.6", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - } - }, - "source-map-support": { - "version": "0.5.21", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "spdx-correct": { - "version": "3.2.0", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "dev": true, - "requires": { - "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" - } - }, - "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 - }, - "sshpk": { - "version": "1.17.0", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "10.0.4", - "dev": true, - "requires": { - "minipass": "^5.0.0" - } - }, - "statuses": { - "version": "1.5.0", - "dev": true - }, - "stop-iteration-iterator": { - "version": "1.0.0", - "dev": true, - "requires": { - "internal-slot": "^1.0.4" - } - }, - "streamroller": { - "version": "3.1.1", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "date-format": "^4.0.10", - "debug": "^4.3.4", - "fs-extra": "^10.1.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "string-width": { - "version": "4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.padend": { - "version": "3.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trim": { - "version": "1.2.8", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.7", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.7", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "dev": true - }, - "strong-log-transformer": { - "version": "2.1.0", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - } - }, - "stylis": { - "version": "4.2.0", - "optional": true - }, - "stylus": { - "version": "0.59.0", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@adobe/css-tools": "^4.0.1", - "debug": "^4.3.2", - "glob": "^7.1.6", - "sax": "~1.2.4", - "source-map": "^0.7.3" - } - }, - "sucrase": { - "version": "3.32.0", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "dev": true - }, - "glob": { - "version": "7.1.6", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true - }, - "symbol-observable": { - "version": "4.0.0", - "dev": true - }, - "tailwindcss": { - "version": "3.3.2", - "dev": true, - "requires": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.12", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.18.2", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "tapable": { - "version": "2.2.1", - "dev": true - }, - "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, - "requires": { - "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" - }, - "dependencies": { - "fs-minipass": { - "version": "2.1.0", - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - } - } - }, - "tar-stream": { - "version": "2.2.0", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "terser": { - "version": "5.17.1", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "acorn": { - "version": "8.7.1", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.8", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "dev": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "terser": { - "version": "5.17.3", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - } - } - }, - "test-exclude": { - "version": "6.0.0", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "dev": true - }, - "thenify": { - "version": "3.3.1", - "dev": true, - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "dev": true, - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "through": { - "version": "2.3.8", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "dev": true - }, - "tiny-emitter": { - "version": "2.1.0", - "optional": true - }, - "tmp": { - "version": "0.0.33", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0" - }, - "to-regex-range": { - "version": "5.0.1", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "dev": true - }, - "topojson-client": { - "version": "3.1.0", - "requires": { - "commander": "2" - } - }, - "topojson-simplify": { - "version": "3.0.3", - "requires": { - "commander": "2", - "topojson-client": "3" - } - }, - "totalist": { - "version": "1.1.0", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "5.0.0", - "requires": { - "punycode": "^2.3.1" - } - }, - "tree-kill": { - "version": "1.2.2", - "dev": true - }, - "ts-dedent": { - "version": "2.2.0", - "optional": true - }, - "ts-interface-checker": { - "version": "0.1.13", - "dev": true - }, - "ts-node": { - "version": "10.9.1", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "acorn": { - "version": "8.7.0", - "dev": true - }, - "acorn-walk": { - "version": "8.2.0", - "dev": true - }, - "arg": { - "version": "4.1.3", - "dev": true - } - } - }, - "tsconfig-paths": { - "version": "4.2.0", - "dev": true, - "requires": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "2.5.0" - }, - "tuf-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", - "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", - "dev": true, - "requires": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "dev": true - }, - "make-fetch-happen": { - "version": "11.1.1", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - } - } - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typed-array-buffer": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - } - }, - "typed-array-byte-length": { - "version": "1.0.1", - "dev": true, - "requires": { - "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" - } - }, - "typed-array-byte-offset": { - "version": "1.0.2", - "dev": true, - "requires": { - "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" - } - }, - "typed-array-length": { - "version": "1.0.5", - "dev": true, - "requires": { - "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" - } - }, - "typed-assert": { - "version": "1.0.9", - "dev": true - }, - "typescript": { - "version": "4.9.5" - }, - "ua-parser-js": { - "version": "0.7.35", - "dev": true, - "optional": true, - "peer": true - }, - "un-eval": { - "version": "1.2.0", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "dev": true - }, - "unique-filename": { - "version": "3.0.0", - "dev": true, - "requires": { - "unique-slug": "^4.0.0" - } - }, - "unique-slug": { - "version": "4.0.0", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "2.0.0", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.11", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "useragent": { - "version": "2.3.0", - "dev": true, - "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "dev": true - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "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==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "dev": true - }, - "verror": { - "version": "1.10.0", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vite": { - "version": "4.3.1", - "dev": true, - "requires": { - "esbuild": "^0.17.5", - "fsevents": "~2.3.2", - "postcss": "^8.4.21", - "rollup": "^3.20.2" - } - }, - "void-elements": { - "version": "2.0.1", - "dev": true, - "optional": true, - "peer": true - }, - "watchpack": { - "version": "2.4.0", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "web-worker": { - "version": "1.2.0", - "optional": true - }, - "webdriver-js-extender": { - "version": "2.1.0", - "dev": true, - "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - } - }, - "webdriver-manager": { - "version": "12.1.9", - "dev": true, - "requires": { - "adm-zip": "^0.5.2", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "ini": { - "version": "1.3.8", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "dev": true - } - } - }, - "webextension-polyfill": { - "version": "0.8.0", - "dev": true - }, - "webidl-conversions": { - "version": "7.0.0" - }, - "webpack": { - "version": "5.80.0", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@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.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.13.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.1.2", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "dev": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "schema-utils": { - "version": "3.1.2", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-bundle-analyzer": { - "version": "4.8.0", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "dependencies": { - "acorn": { - "version": "8.7.0", - "dev": true - }, - "acorn-walk": { - "version": "8.2.0", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "commander": { - "version": "7.2.0", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "ws": { - "version": "7.5.6", - "dev": true, - "requires": {} - } - } - }, - "webpack-dev-middleware": { - "version": "6.0.2", - "dev": true, - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.12", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - } - }, - "webpack-dev-server": { - "version": "4.13.2", - "dev": true, - "requires": { - "@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.1", - "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" - }, - "dependencies": { - "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, - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - } - }, - "ws": { - "version": "8.13.0", - "dev": true, - "requires": {} - } - } - }, - "webpack-ext-reloader": { - "version": "1.1.9", - "dev": true, - "requires": { - "@types/webextension-polyfill": "^0.8.2", - "@types/webpack": "^5.28.0", - "@types/webpack-sources": "^3.2.0", - "clean-webpack-plugin": "^4.0.0", - "colors": "^1.4.0", - "cross-env": "^7.0.3", - "lodash": "^4.17.21", - "minimist": "^1.2.5", - "useragent": "^2.3.0", - "webextension-polyfill": "^0.8.0", - "webpack-sources": "^3.2.3", - "ws": "^8.4.2" - } - }, - "webpack-merge": { - "version": "5.8.0", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.3", - "dev": true - }, - "webpack-subresource-integrity": { - "version": "5.1.0", - "dev": true, - "requires": { - "typed-assert": "^1.0.8" - } - }, - "websocket-driver": { - "version": "0.7.4", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "dev": true - }, - "whatwg-encoding": { - "version": "3.1.1", - "requires": { - "iconv-lite": "0.6.3" - } - }, - "whatwg-mimetype": { - "version": "4.0.0" - }, - "whatwg-url": { - "version": "14.0.0", - "requires": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "which": { - "version": "1.3.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "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" - } - }, - "which-collection": { - "version": "1.0.1", - "dev": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-module": { - "version": "2.0.0", - "dev": true - }, - "which-typed-array": { - "version": "1.1.14", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" - } - }, - "wide-align": { - "version": "1.1.5", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "wildcard": { - "version": "2.0.0", - "dev": true - }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "engines": { + "node": "*" }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2" - }, - "ws": { - "version": "8.11.0", - "dev": true, - "requires": {} - }, - "xml2js": { - "version": "0.4.23", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "xmlbuilder": { - "version": "11.0.1", - "dev": true - }, - "xxhashjs": { - "version": "0.2.2", - "dev": true, - "requires": { - "cuint": "^0.2.2" - } - }, - "y18n": { - "version": "5.0.8" - }, - "yallist": { - "version": "4.0.0" - }, - "yaml": { - "version": "2.2.2", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "requires": { - "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" - }, + "node_modules/zone.js": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.3.tgz", + "integrity": "sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww==", + "license": "MIT", "dependencies": { - "cliui": { - "version": "8.0.1", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - } - } - }, - "yargs-parser": { - "version": "21.1.1" - }, - "yn": { - "version": "3.1.1", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - }, - "zip-a-folder": { - "version": "1.1.5", - "dev": true, - "requires": { - "archiver": "^5.3.1" - } - }, - "zip-stream": { - "version": "4.1.0", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - } - }, - "zone.js": { - "version": "0.13.0", - "requires": { "tslib": "^2.3.0" } } diff --git a/desktop/angular/package.json b/desktop/angular/package.json index 2b0f9ea2..18158086 100644 --- a/desktop/angular/package.json +++ b/desktop/angular/package.json @@ -4,7 +4,7 @@ "scripts": { "ng": "ng", "start": "npm install && npm run build-libs:dev && ng serve --proxy-config ./proxy.json", - "build-libs": "NODE_ENV=production ng build --configuration production @safing/ui && NODE_ENV=production ng build --configuration production @safing/portmaster-api", + "build-libs": "cross-env NODE_ENV=production ng build --configuration production @safing/ui && cross-env NODE_ENV=production ng build --configuration production @safing/portmaster-api", "build-libs:dev": "ng build --configuration development @safing/ui && ng build --configuration development @safing/portmaster-api", "serve": "npm run build-libs:dev && ng serve --proxy-config ./proxy.json", "build:dev": "npm run build-libs:dev && ng build", @@ -12,10 +12,10 @@ "lint": "ng lint", "e2e": "ng e2e", "zip-dist": "node pack.js", - "chrome-extension": "NODE_ENV=production ng build --configuration production portmaster-chrome-extension", + "chrome-extension": "cross-env NODE_ENV=production ng build --configuration production portmaster-chrome-extension", "chrome-extension:dev": "ng build --configuration development portmaster-chrome-extension --watch", "build": "npm run build-libs && NODE_ENV=production ng build --configuration production --base-href /ui/modules/portmaster/", - "build-tauri": "npm run build-libs && NODE_ENV=production ng build --configuration production tauri-builtin", + "build-tauri": "npm run build-libs && cross-env NODE_ENV=production ng build --configuration production tauri-builtin", "serve-tauri-builtin": "ng serve tauri-builtin --port 4100", "serve-app": "ng serve --port 4200 --proxy-config ./proxy.json", "tauri-dev": "npm install && run-s build-libs:dev && run-p serve-app serve-tauri-builtin" @@ -84,6 +84,7 @@ "@types/whatwg-encoding": "^2.0.3", "@typescript-eslint/eslint-plugin": "^5.59.6", "@typescript-eslint/parser": "^5.59.6", + "cross-env": "^7.0.3", "eslint": "^8.40.0", "jasmine-core": "^5.0.0", "jasmine-spec-reporter": "^7.0.0", diff --git a/desktop/angular/projects/safing/portmaster-api/src/lib/portapi.service.ts b/desktop/angular/projects/safing/portmaster-api/src/lib/portapi.service.ts index 4f243ecd..4afed993 100644 --- a/desktop/angular/projects/safing/portmaster-api/src/lib/portapi.service.ts +++ b/desktop/angular/projects/safing/portmaster-api/src/lib/portapi.service.ts @@ -750,7 +750,7 @@ export class PortapiService { // for data-manipulating methods success // ends the stream. if (data.type === 'success') { - observer.next(); + observer.next(null as any); observer.complete(); return; } diff --git a/desktop/tauri/src-tauri/Cargo.lock b/desktop/tauri/src-tauri/Cargo.lock index 5e5aed17..d1117733 100644 --- a/desktop/tauri/src-tauri/Cargo.lock +++ b/desktop/tauri/src-tauri/Cargo.lock @@ -17,41 +17,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - [[package]] name = "ahash" version = "0.7.8" @@ -70,9 +35,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.15", "once_cell", - "serde", "version_check", "zerocopy", ] @@ -86,12 +49,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "aligned-vec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" - [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -109,9 +66,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -154,239 +111,11 @@ dependencies = [ "winapi", ] -[[package]] -name = "anstream" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" - -[[package]] -name = "anstyle-parse" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" -dependencies = [ - "anstyle", - "windows-sys 0.59.0", -] - [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" - -[[package]] -name = "app-store-connect" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33fb5489b9bfcfa3aec2f68cc79eafb999b5af9b9d9d70ca8dfe36acdd1b2b05" -dependencies = [ - "anyhow", - "base64 0.21.7", - "clap 4.5.21", - "dirs 5.0.1", - "env_logger 0.10.2", - "jsonwebtoken", - "log", - "pem", - "rand 0.8.5", - "reqwest 0.11.27", - "rsa", - "serde", - "serde_json", - "thiserror 1.0.69", - "x509-certificate", -] - -[[package]] -name = "apple-bundles" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb7c27ee2ca7826adfdc84228cd4c5a84ab57b0a11d269d1d7cd0615238e5a2" -dependencies = [ - "anyhow", - "plist", - "simple-file-manifest", - "walkdir", -] - -[[package]] -name = "apple-codesign" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "329820aac7259ca0529d3cc21dd3b4c11651225dfce9e0ce25b121b23f923164" -dependencies = [ - "anyhow", - "app-store-connect", - "apple-bundles", - "apple-flat-package", - "apple-xar", - "aws-config", - "aws-sdk-s3", - "aws-smithy-http", - "aws-smithy-types", - "base64 0.21.7", - "bcder", - "bitflags 2.6.0", - "bytes", - "chrono", - "clap 4.5.21", - "cryptographic-message-syntax", - "der 0.7.9", - "dialoguer", - "difference", - "digest", - "dirs 5.0.1", - "elliptic-curve 0.13.8", - "env_logger 0.10.2", - "figment", - "filetime", - "glob", - "goblin", - "hex", - "log", - "md-5", - "minicbor", - "num-traits", - "object 0.32.2", - "oid-registry", - "once_cell", - "p12", - "p256 0.13.2", - "pem", - "pkcs1", - "pkcs8 0.10.2", - "plist", - "rand 0.8.5", - "rasn", - "rayon", - "regex", - "reqwest 0.11.27", - "ring", - "rsa", - "scroll", - "security-framework", - "security-framework-sys", - "semver", - "serde", - "serde_json", - "serde_yaml", - "sha2", - "signature 2.2.0", - "simple-file-manifest", - "spake2", - "spki 0.7.3", - "subtle", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tungstenite 0.21.0", - "uuid", - "walkdir", - "widestring", - "windows-sys 0.52.0", - "x509", - "x509-certificate", - "xml-rs", - "yasna", - "zeroize", - "zip 0.6.6", - "zip_structs", -] - -[[package]] -name = "apple-flat-package" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6adc520e05304de5ec383487786fa20e9c636fe972e59719cdd93621a2db6f1" -dependencies = [ - "apple-xar", - "cpio-archive", - "flate2", - "scroll", - "serde", - "serde-xml-rs", - "thiserror 1.0.69", -] - -[[package]] -name = "apple-xar" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844e00dc1e665b3cf0bba745aa9c6464292ca512db0c11384511586701eb0335" -dependencies = [ - "base64 0.21.7", - "bcder", - "bzip2", - "chrono", - "cryptographic-message-syntax", - "digest", - "flate2", - "log", - "md-5", - "rand 0.8.5", - "reqwest 0.11.27", - "scroll", - "serde", - "serde-xml-rs", - "sha1", - "sha2", - "signature 2.2.0", - "thiserror 1.0.69", - "url", - "x509-certificate", - "xml-rs", - "xz2", -] - -[[package]] -name = "ar" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d67af77d68a931ecd5cbd8a3b5987d63a1d1d1278f7f6a60ae33db485cdebb69" - -[[package]] -name = "arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" -dependencies = [ - "derive_arbitrary", -] +checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" [[package]] name = "arboard" @@ -398,37 +127,14 @@ dependencies = [ "core-graphics 0.23.2", "image", "log", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "parking_lot", "windows-sys 0.48.0", "x11rb", ] -[[package]] -name = "arg_enum_proc_macro" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "argon2" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072" -dependencies = [ - "base64ct", - "blake2", - "cpufeatures", - "password-hash", -] - [[package]] name = "arrayref" version = "0.3.9" @@ -483,53 +189,9 @@ dependencies = [ "wayland-backend", "wayland-client", "wayland-protocols", - "zbus 5.1.1", + "zbus 5.5.0", ] -[[package]] -name = "asn1-rs" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror 1.0.69", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "assert-unchecked" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7330592adf847ee2e3513587b4db2db410a0d751378654e7e993d9adcbe5c795" - [[package]] name = "assert_matches" version = "1.5.0" @@ -548,11 +210,11 @@ dependencies = [ [[package]] name = "async-broadcast" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -578,8 +240,8 @@ checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.2.0", - "futures-lite 2.5.0", + "fastrand 2.3.0", + "futures-lite 2.6.0", "slab", ] @@ -603,7 +265,7 @@ checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ "async-lock 3.4.0", "blocking", - "futures-lite 2.5.0", + "futures-lite 2.6.0", ] [[package]] @@ -620,7 +282,7 @@ dependencies = [ "log", "parking", "polling 2.8.0", - "rustix 0.37.27", + "rustix 0.37.28", "slab", "socket2 0.4.10", "waker-fn", @@ -636,10 +298,10 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "parking", "polling 3.7.4", - "rustix 0.38.41", + "rustix 0.38.44", "slab", "tracing", "windows-sys 0.59.0", @@ -660,7 +322,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "event-listener-strategy", "pin-project-lite", ] @@ -673,7 +335,7 @@ checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ "async-io 2.4.0", "blocking", - "futures-lite 2.5.0", + "futures-lite 2.6.0", ] [[package]] @@ -689,7 +351,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.41", + "rustix 0.38.44", "windows-sys 0.48.0", ] @@ -706,9 +368,9 @@ dependencies = [ "async-task", "blocking", "cfg-if", - "event-listener 5.3.1", - "futures-lite 2.5.0", - "rustix 0.38.41", + "event-listener 5.4.0", + "futures-lite 2.6.0", + "rustix 0.38.44", "tracing", ] @@ -720,7 +382,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -735,7 +397,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.41", + "rustix 0.38.44", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -749,20 +411,20 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] name = "atk" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4" +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" dependencies = [ "atk-sys", "glib", @@ -771,9 +433,9 @@ dependencies = [ [[package]] name = "atk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" dependencies = [ "glib-sys", "gobject-sys", @@ -781,15 +443,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "atomic" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" -dependencies = [ - "bytemuck", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -813,461 +466,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "av1-grain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" -dependencies = [ - "anyhow", - "arrayvec 0.7.6", - "log", - "nom", - "num-rational", - "v_frame", -] - -[[package]] -name = "avif-serialize" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" -dependencies = [ - "arrayvec 0.7.6", -] - -[[package]] -name = "aws-config" -version = "1.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b49afaa341e8dd8577e1a2200468f98956d6eda50bcf4a53246cc00174ba924" -dependencies = [ - "aws-credential-types", - "aws-runtime", - "aws-sdk-sso", - "aws-sdk-ssooidc", - "aws-sdk-sts", - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-json", - "aws-smithy-runtime", - "aws-smithy-runtime-api", - "aws-smithy-types", - "aws-types", - "bytes", - "fastrand 2.2.0", - "hex", - "http 0.2.12", - "ring", - "time", - "tokio", - "tracing", - "url", - "zeroize", -] - -[[package]] -name = "aws-credential-types" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60e8f6b615cb5fc60a98132268508ad104310f0cfb25a1c22eee76efdf9154da" -dependencies = [ - "aws-smithy-async", - "aws-smithy-runtime-api", - "aws-smithy-types", - "zeroize", -] - -[[package]] -name = "aws-runtime" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a10d5c055aa540164d9561a0e2e74ad30f0dcf7393c3a92f6733ddf9c5762468" -dependencies = [ - "aws-credential-types", - "aws-sigv4", - "aws-smithy-async", - "aws-smithy-eventstream", - "aws-smithy-http", - "aws-smithy-runtime", - "aws-smithy-runtime-api", - "aws-smithy-types", - "aws-types", - "bytes", - "fastrand 2.2.0", - "http 0.2.12", - "http-body 0.4.6", - "once_cell", - "percent-encoding", - "pin-project-lite", - "tracing", - "uuid", -] - -[[package]] -name = "aws-sdk-s3" -version = "1.63.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43850204a109a5eea1ea93951cf0440268cef98b0d27dfef4534949e23735f7" -dependencies = [ - "aws-credential-types", - "aws-runtime", - "aws-sigv4", - "aws-smithy-async", - "aws-smithy-checksums", - "aws-smithy-eventstream", - "aws-smithy-http", - "aws-smithy-json", - "aws-smithy-runtime", - "aws-smithy-runtime-api", - "aws-smithy-types", - "aws-smithy-xml", - "aws-types", - "bytes", - "fastrand 2.2.0", - "hex", - "hmac", - "http 0.2.12", - "http-body 0.4.6", - "lru", - "once_cell", - "percent-encoding", - "regex-lite", - "sha2", - "tracing", - "url", -] - -[[package]] -name = "aws-sdk-sso" -version = "1.49.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09677244a9da92172c8dc60109b4a9658597d4d298b188dd0018b6a66b410ca4" -dependencies = [ - "aws-credential-types", - "aws-runtime", - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-json", - "aws-smithy-runtime", - "aws-smithy-runtime-api", - "aws-smithy-types", - "aws-types", - "bytes", - "http 0.2.12", - "once_cell", - "regex-lite", - "tracing", -] - -[[package]] -name = "aws-sdk-ssooidc" -version = "1.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fea2f3a8bb3bd10932ae7ad59cc59f65f270fc9183a7e91f501dc5efbef7ee" -dependencies = [ - "aws-credential-types", - "aws-runtime", - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-json", - "aws-smithy-runtime", - "aws-smithy-runtime-api", - "aws-smithy-types", - "aws-types", - "bytes", - "http 0.2.12", - "once_cell", - "regex-lite", - "tracing", -] - -[[package]] -name = "aws-sdk-sts" -version = "1.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ada54e5f26ac246dc79727def52f7f8ed38915cb47781e2a72213957dc3a7d5" -dependencies = [ - "aws-credential-types", - "aws-runtime", - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-json", - "aws-smithy-query", - "aws-smithy-runtime", - "aws-smithy-runtime-api", - "aws-smithy-types", - "aws-smithy-xml", - "aws-types", - "http 0.2.12", - "once_cell", - "regex-lite", - "tracing", -] - -[[package]] -name = "aws-sigv4" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5619742a0d8f253be760bfbb8e8e8368c69e3587e4637af5754e488a611499b1" -dependencies = [ - "aws-credential-types", - "aws-smithy-eventstream", - "aws-smithy-http", - "aws-smithy-runtime-api", - "aws-smithy-types", - "bytes", - "crypto-bigint 0.5.5", - "form_urlencoded", - "hex", - "hmac", - "http 0.2.12", - "http 1.1.0", - "once_cell", - "p256 0.11.1", - "percent-encoding", - "ring", - "sha2", - "subtle", - "time", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-smithy-async" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62220bc6e97f946ddd51b5f1361f78996e704677afc518a4ff66b7a72ea1378c" -dependencies = [ - "futures-util", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "aws-smithy-checksums" -version = "0.60.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1a71073fca26775c8b5189175ea8863afb1c9ea2cceb02a5de5ad9dfbaa795" -dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "bytes", - "crc32c", - "crc32fast", - "hex", - "http 0.2.12", - "http-body 0.4.6", - "md-5", - "pin-project-lite", - "sha1", - "sha2", - "tracing", -] - -[[package]] -name = "aws-smithy-eventstream" -version = "0.60.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef7d0a272725f87e51ba2bf89f8c21e4df61b9e49ae1ac367a6d69916ef7c90" -dependencies = [ - "aws-smithy-types", - "bytes", - "crc32fast", -] - -[[package]] -name = "aws-smithy-http" -version = "0.60.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8bc3e8fdc6b8d07d976e301c02fe553f72a39b7a9fea820e023268467d7ab6" -dependencies = [ - "aws-smithy-eventstream", - "aws-smithy-runtime-api", - "aws-smithy-types", - "bytes", - "bytes-utils", - "futures-core", - "http 0.2.12", - "http-body 0.4.6", - "once_cell", - "percent-encoding", - "pin-project-lite", - "pin-utils", - "tracing", -] - -[[package]] -name = "aws-smithy-json" -version = "0.60.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4683df9469ef09468dad3473d129960119a0d3593617542b7d52086c8486f2d6" -dependencies = [ - "aws-smithy-types", -] - -[[package]] -name = "aws-smithy-query" -version = "0.60.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" -dependencies = [ - "aws-smithy-types", - "urlencoding", -] - -[[package]] -name = "aws-smithy-runtime" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be28bd063fa91fd871d131fc8b68d7cd4c5fa0869bea68daca50dcb1cbd76be2" -dependencies = [ - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-runtime-api", - "aws-smithy-types", - "bytes", - "fastrand 2.2.0", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "http-body 1.0.1", - "httparse", - "hyper 0.14.31", - "hyper-rustls 0.24.2", - "once_cell", - "pin-project-lite", - "pin-utils", - "rustls 0.21.12", - "tokio", - "tracing", -] - -[[package]] -name = "aws-smithy-runtime-api" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92165296a47a812b267b4f41032ff8069ab7ff783696d217f0994a0d7ab585cd" -dependencies = [ - "aws-smithy-async", - "aws-smithy-types", - "bytes", - "http 0.2.12", - "http 1.1.0", - "pin-project-lite", - "tokio", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-smithy-types" -version = "1.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbd94a32b3a7d55d3806fe27d98d3ad393050439dd05eb53ece36ec5e3d3510" -dependencies = [ - "base64-simd", - "bytes", - "bytes-utils", - "futures-core", - "http 0.2.12", - "http 1.1.0", - "http-body 0.4.6", - "http-body 1.0.1", - "http-body-util", - "itoa 1.0.14", - "num-integer", - "pin-project-lite", - "pin-utils", - "ryu", - "serde", - "time", - "tokio", - "tokio-util", -] - -[[package]] -name = "aws-smithy-xml" -version = "0.60.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0b0166827aa700d3dc519f72f8b3a91c35d0b8d042dc5d643a91e6f80648fc" -dependencies = [ - "xmlparser", -] - -[[package]] -name = "aws-types" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5221b91b3e441e6675310829fd8984801b772cb1546ef6c0e54dec9f1ac13fef" -dependencies = [ - "aws-credential-types", - "aws-smithy-async", - "aws-smithy-runtime-api", - "aws-smithy-types", - "rustc_version", - "tracing", -] - -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core", - "base64 0.22.1", - "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.5.1", - "hyper-util", - "itoa 1.0.14", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sha1", - "sync_wrapper 1.0.2", - "tokio", - "tokio-tungstenite", - "tower 0.5.1", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "backtrace" version = "0.3.74" @@ -1278,23 +476,11 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide", - "object 0.36.5", + "object", "rustc-demangle", "windows-targets 0.52.6", ] -[[package]] -name = "base16ct" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - [[package]] name = "base64" version = "0.13.1" @@ -1313,59 +499,6 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64-simd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" -dependencies = [ - "outref", - "vsimd", -] - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bcder" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627747a6774aab38beb35990d88309481378558875a41da1a4b2e373c906ef0" -dependencies = [ - "bytes", - "smallvec", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bit_field" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" - -[[package]] -name = "bitfield" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" - [[package]] name = "bitflags" version = "1.3.2" @@ -1374,31 +507,13 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ "serde", ] -[[package]] -name = "bitness" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57792b99d555ebf109c83169228076f7d997e2b37ba1a653850ccd703ac7bab0" -dependencies = [ - "sysctl", - "thiserror 1.0.69", - "uname", - "winapi", -] - -[[package]] -name = "bitstream-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" - [[package]] name = "bitvec" version = "1.0.1" @@ -1411,25 +526,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "bitvec-nom2" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d988fcc40055ceaa85edc55875a08f8abd29018582647fd82ad6128dba14a5f0" -dependencies = [ - "bitvec", - "nom", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest", -] - [[package]] name = "blake2b_simd" version = "0.5.11" @@ -1456,22 +552,22 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - [[package]] name = "block2" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2", + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d59b4c170e16f0405a2e95aff44432a0d41aa97675f3d52623effe95792a037" +dependencies = [ + "objc2 0.6.0", ] [[package]] @@ -1483,25 +579,15 @@ dependencies = [ "async-channel", "async-task", "futures-io", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "piper", ] -[[package]] -name = "blowfish" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7" -dependencies = [ - "byteorder", - "cipher", -] - [[package]] name = "borsh" -version = "1.5.3" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" +checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1509,15 +595,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.3" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" +checksum = "f8b668d39970baad5356d7c83a86fee3a539e6f93bf6764c97368243e17a0487" dependencies = [ "once_cell", "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -1533,53 +619,25 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", ] -[[package]] -name = "bstr" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "bswap" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3acc5ce9c60e68df21b877f13f908ef95c89f01cb6c656cf76ba95f10bc72f5" -[[package]] -name = "buffer-redux" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e8acf87c5b9f5897cd3ebb9a327f420e0cae9dd4e5c1d2e36f2c84c571a58f1" -dependencies = [ - "memchr", -] - -[[package]] -name = "built" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b" - [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -dependencies = [ - "allocator-api2", -] +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byte-unit" @@ -1614,17 +672,11 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "bytecount" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" - [[package]] name = "bytemuck" -version = "1.20.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -1640,50 +692,13 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" dependencies = [ "serde", ] -[[package]] -name = "bytes-utils" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" -dependencies = [ - "bytes", - "either", -] - -[[package]] -name = "bytesize" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" - -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "cached" version = "0.46.1" @@ -1723,7 +738,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cairo-sys-rs", "glib", "libc", @@ -1742,16 +757,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "camellia" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3264e2574e9ef2b53ce6f536dea83a69ac0bc600b762d1523ff83fe07230ce30" -dependencies = [ - "byteorder", - "cipher", -] - [[package]] name = "camino" version = "1.1.9" @@ -1761,110 +766,45 @@ dependencies = [ "serde", ] -[[package]] -name = "cargo-mobile2" -version = "0.17.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197498a32cc339dac8e77a319eacf00688b5ac633628f007c4465f303cc69105" -dependencies = [ - "colored", - "core-foundation 0.10.0", - "deunicode", - "duct", - "dunce", - "embed-resource", - "english-numbers", - "freedesktop_entry_parser", - "handlebars", - "heck 0.5.0", - "home", - "ignore", - "java-properties", - "libc", - "log", - "once-cell-regex", - "os_info", - "os_pipe", - "path_abs", - "serde", - "serde_json", - "textwrap 0.16.1", - "thiserror 1.0.69", - "toml 0.8.19", - "ureq", - "which", - "windows 0.58.0", - "x509-certificate", -] - [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" -version = "0.18.1" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +checksum = "8769706aad5d996120af43197bf46ef6ad0fda35216b4505f926a365a232d924" dependencies = [ "camino", "cargo-platform", "semver", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "cargo_toml" -version = "0.17.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" +checksum = "5fbd1fe9db3ebf71b89060adaf7b0504c2d6a425cf061313099547e382c2e472" dependencies = [ "serde", - "toml 0.8.19", -] - -[[package]] -name = "cast5" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b07d673db1ccf000e90f54b819db9e75a8348d6eb056e9b8ab53231b7a9911" -dependencies = [ - "cipher", -] - -[[package]] -name = "castaway" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" -dependencies = [ - "rustversion", -] - -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", + "toml 0.8.20", ] [[package]] name = "cc" -version = "1.2.1" +version = "1.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" dependencies = [ - "jobserver", - "libc", "shlex", ] @@ -1885,15 +825,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "cfb-mode" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738b8d467867f80a71351933f70461f5b56f24d5c93e0cf216e59229c968d330" -dependencies = [ - "cipher", -] - [[package]] name = "cfg-expr" version = "0.15.8" @@ -1918,29 +849,17 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", - "js-sys", "num-traits", "serde", - "wasm-bindgen", "windows-targets 0.52.6", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" version = "2.34.0" @@ -1951,59 +870,16 @@ dependencies = [ "atty", "bitflags 1.3.2", "strsim 0.8.0", - "textwrap 0.11.0", + "textwrap", "unicode-width", "vec_map", ] -[[package]] -name = "clap" -version = "4.5.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim 0.11.1", -] - -[[package]] -name = "clap_complete" -version = "4.5.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9647a559c112175f17cf724dc72d3645680a883c58481332779192b0d8e7a01" -dependencies = [ - "clap 4.5.21", -] - -[[package]] -name = "clap_derive" -version = "4.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.89", -] - [[package]] name = "clap_lex" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clipboard-win" @@ -2014,24 +890,13 @@ dependencies = [ "error-code", ] -[[package]] -name = "cmac" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8543454e3c3f5126effff9cd44d562af4e31fb8ce1cc0d3dcd8f084515dbc1aa" -dependencies = [ - "cipher", - "dbl", - "digest", -] - [[package]] name = "cocoa" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block", "cocoa-foundation", "core-foundation 0.10.0", @@ -2047,7 +912,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "block", "core-foundation 0.10.0", "core-graphics-types 0.2.0", @@ -2055,28 +920,6 @@ dependencies = [ "objc", ] -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[package]] -name = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "colored" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" -dependencies = [ - "lazy_static", - "windows-sys 0.48.0", -] - [[package]] name = "combine" version = "4.6.7" @@ -2087,26 +930,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "common-path" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" - -[[package]] -name = "compact_str" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6050c3a16ddab2e412160b31f2c871015704239bca62f72f6e5f0be631d3f644" -dependencies = [ - "castaway", - "cfg-if", - "itoa 1.0.14", - "rustversion", - "ryu", - "static_assertions", -] - [[package]] name = "concurrent-queue" version = "2.5.0" @@ -2116,25 +939,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "console" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.52.0", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "const-random" version = "0.1.18" @@ -2155,12 +959,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "const_panic" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "013b6c2c3a14d678f38cd23994b02da3a1a1b6a5d1eedddfe63a5a5f11b13a81" - [[package]] name = "constant_time_eq" version = "0.1.5" @@ -2183,15 +981,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "cookie-factory" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" -dependencies = [ - "futures", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -2237,7 +1026,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "core-graphics-types 0.2.0", "foreign-types 0.5.0", @@ -2261,62 +1050,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "libc", ] -[[package]] -name = "core_maths" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b02505ccb8c50b0aa21ace0fc08c3e53adebd4e58caa18a36152803c7709a3" -dependencies = [ - "libm", -] - -[[package]] -name = "cpio" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938e716cb1ade5d6c8f959c13a7248b889c07491fc7e41167c3afe20f8f0de1e" - -[[package]] -name = "cpio-archive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d5133d716d3d82da8c76367ddb0ab1733e2629f1462e4f39947e13b8b4b741" -dependencies = [ - "chrono", - "is_executable", - "simple-file-manifest", - "thiserror 1.0.69", -] - [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] -[[package]] -name = "crc24" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd121741cf3eb82c08dd3023eb55bf2665e5f60ec20f89760cf836ae4562e6a0" - -[[package]] -name = "crc32c" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" -dependencies = [ - "rustc_version", -] - [[package]] name = "crc32fast" version = "1.4.2" @@ -2328,67 +1075,24 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-common" @@ -2397,33 +1101,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", "typenum", ] -[[package]] -name = "cryptographic-message-syntax" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c324ba1028cef7e3a71a00cbf585637bb0215dec2f6a2b566d094190a1309b" -dependencies = [ - "bcder", - "bytes", - "chrono", - "hex", - "pem", - "reqwest 0.11.27", - "ring", - "signature 2.2.0", - "x509-certificate", -] - -[[package]] -name = "css-color" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a" - [[package]] name = "cssparser" version = "0.27.2" @@ -2448,7 +1128,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -2458,54 +1138,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.89", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "ctrlc" -version = "3.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" -dependencies = [ - "nix 0.29.0", - "windows-sys 0.59.0", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest", - "fiat-crypto", - "rand_core 0.6.4", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -2521,7 +1154,7 @@ dependencies = [ "objc", "rust-ini", "web-sys", - "winreg 0.52.0", + "winreg", "xdg", "zbus 3.15.2", ] @@ -2571,7 +1204,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -2593,35 +1226,9 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.89", + "syn 2.0.98", ] -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "data-url" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" - [[package]] name = "dataurl" version = "0.1.2" @@ -2630,48 +1237,18 @@ checksum = "17a1f14ed857323d318ca723a05a456196347efbe855f712f68cf6b8a14f8f15" dependencies = [ "atty", "base64 0.13.1", - "clap 2.34.0", + "clap", "encoding_rs", "percent-encoding", "url", ] -[[package]] -name = "dbl" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd2735a791158376708f9347fe8faba9667589d82427ef3aed6794a8981de3d9" -dependencies = [ - "generic-array", -] - [[package]] name = "dconf_rs" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7046468a81e6a002061c01e6a7c83139daf91b11c30e66795b13217c2d885c8b" -[[package]] -name = "der" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.3.11" @@ -2693,100 +1270,24 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling 0.20.10", - "proc-macro2", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn 2.0.89", -] - [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.89", -] - -[[package]] -name = "des" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdd80ce8ce993de27e9f063a444a4d53ce8e8db4c1f00cc03af5ad5a9867a1e" -dependencies = [ - "cipher", + "syn 2.0.98", ] [[package]] name = "detect-desktop-environment" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf27a1bbe31ac901a2350a6316b1f7056067118abe6bf1ff015d5950ac5e3eb3" - -[[package]] -name = "deunicode" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00" - -[[package]] -name = "dialoguer" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" -dependencies = [ - "console", - "shell-words", - "tempfile", - "thiserror 1.0.69", - "zeroize", -] - -[[package]] -name = "difference" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" +checksum = "ff7f16599c3ba6b4ab9a3195bcd9413a7ee8d51e7651f3e9efd6a5db5315008d" [[package]] name = "digest" @@ -2795,9 +1296,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", - "const-oid", "crypto-common", - "subtle", ] [[package]] @@ -2817,7 +1316,16 @@ version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "dirs-sys", + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys 0.5.0", ] [[package]] @@ -2842,6 +1350,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.0", + "windows-sys 0.59.0", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -2867,7 +1387,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -2876,7 +1396,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.5", + "libloading 0.8.6", ] [[package]] @@ -2899,7 +1419,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -2911,12 +1431,6 @@ dependencies = [ "const-random", ] -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - [[package]] name = "downcast-rs" version = "1.2.1" @@ -2932,22 +1446,6 @@ dependencies = [ "serde", ] -[[package]] -name = "dsa" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48bc224a9084ad760195584ce5abb3c2c34a225fa312a128ad245a6b412b7689" -dependencies = [ - "digest", - "num-bigint-dig", - "num-traits", - "pkcs8 0.10.2", - "rfc6979 0.4.0", - "sha2", - "signature 2.2.0", - "zeroize", -] - [[package]] name = "dtoa" version = "1.0.9" @@ -2963,18 +1461,6 @@ dependencies = [ "dtoa", ] -[[package]] -name = "duct" -version = "0.13.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c" -dependencies = [ - "libc", - "once_cell", - "os_pipe", - "shared_child", -] - [[package]] name = "dunce" version = "1.0.5" @@ -2983,125 +1469,15 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" - -[[package]] -name = "eax" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9954fabd903b82b9d7a68f65f97dc96dd9ad368e40ccc907a7c19d53e6bfac28" -dependencies = [ - "aead", - "cipher", - "cmac", - "ctr", - "subtle", -] - -[[package]] -name = "ecdsa" -version = "0.14.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" -dependencies = [ - "der 0.6.1", - "elliptic-curve 0.12.3", - "rfc6979 0.3.1", - "signature 1.6.4", -] - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der 0.7.9", - "digest", - "elliptic-curve 0.13.8", - "rfc6979 0.4.0", - "signature 2.2.0", - "spki 0.7.3", -] - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8 0.10.2", - "signature 2.2.0", -] - -[[package]] -name = "ed25519-dalek" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" -dependencies = [ - "curve25519-dalek", - "ed25519", - "serde", - "sha2", - "subtle", - "zeroize", -] +checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" [[package]] name = "either" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "elf" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" - -[[package]] -name = "elliptic-curve" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" -dependencies = [ - "base16ct 0.1.1", - "crypto-bigint 0.4.9", - "der 0.6.1", - "digest", - "ff 0.12.1", - "generic-array", - "group 0.12.1", - "pkcs8 0.9.0", - "rand_core 0.6.4", - "sec1 0.3.0", - "subtle", - "zeroize", -] - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct 0.2.0", - "crypto-bigint 0.5.5", - "digest", - "ff 0.13.0", - "generic-array", - "group 0.13.0", - "hkdf", - "pem-rfc7468", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "sec1 0.7.3", - "subtle", - "zeroize", -] +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" [[package]] name = "embed-resource" @@ -3112,9 +1488,9 @@ dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.19", + "toml 0.8.20", "vswhom", - "winreg 0.52.0", + "winreg", ] [[package]] @@ -3123,12 +1499,6 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "encoding_rs" version = "0.8.35" @@ -3144,39 +1514,11 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" -[[package]] -name = "english-numbers" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4f5d6e192964d498b45abee72ca445e91909094bc8e8791259e82c2a0d1aa6" - -[[package]] -name = "enum-display-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ef37b2a9b242295d61a154ee91ae884afff6b8b933b486b12481cc58310ca" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "enum-primitive-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba7795da175654fe16979af73f81f26a8ea27638d8d9823d317016888a63dc4c" -dependencies = [ - "num-traits", - "quote", - "syn 2.0.89", -] - [[package]] name = "enumflags2" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", "serde", @@ -3184,56 +1526,30 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", ] -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "env_logger" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" @@ -3247,12 +1563,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3280,9 +1596,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -3291,40 +1607,14 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.0", "pin-project-lite", ] -[[package]] -name = "exr" -version = "1.73.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" -dependencies = [ - "bit_field", - "half", - "lebe", - "miniz_oxide", - "rayon-core", - "smallvec", - "zune-inflate", -] - -[[package]] -name = "fancy-regex" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] - [[package]] name = "fastrand" version = "1.9.0" @@ -3336,54 +1626,28 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fdeflate" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07c6f4c64c1d33a3111c4466f7365ebdcc37c5bd1ea0d62aae2e3d722aacbedb" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" dependencies = [ "simd-adler32", ] [[package]] name = "fern" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69ff9c9d5fb3e6da8ac2f77ab76fe7e8087d512ce095200f8f29ac5b656cf6dc" +checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" dependencies = [ "log", ] -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - [[package]] name = "field-offset" version = "0.3.6" @@ -3394,83 +1658,22 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "figment" -version = "0.10.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3" -dependencies = [ - "atomic", - "pear", - "serde", - "toml 0.8.19", - "uncased", - "version_check", -] - -[[package]] -name = "filetime" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" -dependencies = [ - "cfg-if", - "libc", - "libredox", - "windows-sys 0.59.0", -] - [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", ] -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" - [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" - -[[package]] -name = "fontconfig-parser" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" -dependencies = [ - "roxmltree", -] - -[[package]] -name = "fontdb" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37be9fc20d966be438cd57a45767f73349477fb0f85ce86e000557f787298afb" -dependencies = [ - "fontconfig-parser", - "log", - "memmap2", - "slotmap", - "tinyvec", - "ttf-parser", -] - [[package]] name = "foreign-types" version = "0.3.2" @@ -3498,7 +1701,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -3522,35 +1725,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fraction" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f158e3ff0a1b334408dc9fb811cd99b446986f4d8b741bb08f9df1604085ae7" -dependencies = [ - "lazy_static", - "num", -] - -[[package]] -name = "freedesktop_entry_parser" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db9c27b72f19a99a895f8ca89e2d26e4ef31013376e56fdafef697627306c3e4" -dependencies = [ - "nom", - "thiserror 1.0.69", -] - -[[package]] -name = "fsevent-sys" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" -dependencies = [ - "libc", -] - [[package]] name = "funty" version = "2.0.0" @@ -3632,11 +1806,11 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ - "fastrand 2.2.0", + "fastrand 2.3.0", "futures-core", "futures-io", "parking", @@ -3651,7 +1825,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -3666,12 +1840,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - [[package]] name = "futures-util" version = "0.3.31" @@ -3701,9 +1869,9 @@ dependencies = [ [[package]] name = "gdk" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646" +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -3742,9 +1910,9 @@ dependencies = [ [[package]] name = "gdk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -3759,9 +1927,9 @@ dependencies = [ [[package]] name = "gdkwayland-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90fbf5c033c65d93792192a49a8efb5bb1e640c419682a58bb96f5ae77f3d4a" +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" dependencies = [ "gdk-sys", "glib-sys", @@ -3773,9 +1941,9 @@ dependencies = [ [[package]] name = "gdkx11" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce" +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" dependencies = [ "gdk", "gdkx11-sys", @@ -3787,9 +1955,9 @@ dependencies = [ [[package]] name = "gdkx11-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043" +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" dependencies = [ "gdk-sys", "glib-sys", @@ -3806,7 +1974,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -3825,7 +1992,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30" dependencies = [ - "rustix 0.38.41", + "rustix 0.38.44", "windows-targets 0.52.6", ] @@ -3854,23 +2021,15 @@ dependencies = [ ] [[package]] -name = "ghash" -version = "0.5.1" +name = "getrandom" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ - "opaque-debug", - "polyval", -] - -[[package]] -name = "gif" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" -dependencies = [ - "color_quant", - "weezl", + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -3917,7 +2076,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "futures-channel", "futures-core", "futures-executor", @@ -3945,7 +2104,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -3960,22 +2119,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "globset" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata", - "regex-syntax", -] +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "gobject-sys" @@ -3988,44 +2134,11 @@ dependencies = [ "system-deps", ] -[[package]] -name = "goblin" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47" -dependencies = [ - "log", - "plain", - "scroll", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.0", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "gtk" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c" +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" dependencies = [ "atk", "cairo-rs", @@ -4044,9 +2157,9 @@ dependencies = [ [[package]] name = "gtk-sys" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" dependencies = [ "atk-sys", "cairo-sys-rs", @@ -4062,80 +2175,36 @@ dependencies = [ [[package]] name = "gtk3-macros" -version = "0.18.0" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e" +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] name = "h2" -version = "0.3.26" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.6.0", + "http", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", "tracing", ] -[[package]] -name = "half" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" -dependencies = [ - "cfg-if", - "crunchy", -] - -[[package]] -name = "handlebars" -version = "6.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4ccde012831f9a071a637b0d4e31df31c0f6c525784b35ae76a9ac6bc1e315" -dependencies = [ - "log", - "num-order", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror 1.0.69", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -4160,11 +2229,6 @@ name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", -] [[package]] name = "heck" @@ -4205,31 +2269,13 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4248,37 +2294,15 @@ dependencies = [ [[package]] name = "http" -version = "0.2.12" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", "itoa 1.0.14", ] -[[package]] -name = "http" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -dependencies = [ - "bytes", - "fnv", - "itoa 1.0.14", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -4286,7 +2310,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -4297,67 +2321,30 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "hyper" -version = "0.14.31" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa 1.0.14", - "pin-project-lite", - "socket2 0.5.7", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.7", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", - "httpdate", "itoa 1.0.14", "pin-project-lite", "smallvec", @@ -4367,35 +2354,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 0.2.12", - "hyper 0.14.31", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" -dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.5.1", + "http", + "hyper", "hyper-util", - "rustls 0.23.19", + "rustls 0.23.23", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.1", "tower-service", + "webpki-roots", ] [[package]] @@ -4406,7 +2378,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.5.1", + "hyper", "hyper-util", "native-tls", "tokio", @@ -4423,11 +2395,11 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.5.1", + "http", + "http-body", + "hyper", "pin-project-lite", - "socket2 0.5.7", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -4581,16 +2553,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", -] - -[[package]] -name = "idea" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "075557004419d7f2031b8bb7f44bb43e55a83ca7b63076a8fb8fe75753836477" -dependencies = [ - "cipher", + "syn 2.0.98", ] [[package]] @@ -4620,22 +2583,6 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "ignore" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" -dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata", - "same-file", - "walkdir", - "winapi-util", -] - [[package]] name = "image" version = "0.25.5" @@ -4644,70 +2591,9 @@ checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" dependencies = [ "bytemuck", "byteorder-lite", - "color_quant", - "exr", - "gif", - "image-webp 0.2.0", "num-traits", "png", - "qoi", - "ravif", - "rayon", - "rgb", "tiff", - "zune-core", - "zune-jpeg", -] - -[[package]] -name = "image-webp" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f79afb8cbee2ef20f59ccd477a218c12a93943d075b492015ecb1bb81f8ee904" -dependencies = [ - "byteorder-lite", - "quick-error", -] - -[[package]] -name = "image-webp" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" -dependencies = [ - "byteorder-lite", - "quick-error", -] - -[[package]] -name = "imagesize" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" - -[[package]] -name = "imgref" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" - -[[package]] -name = "include_dir" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" -dependencies = [ - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" -dependencies = [ - "proc-macro2", - "quote", ] [[package]] @@ -4723,24 +2609,15 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown 0.15.2", "serde", ] -[[package]] -name = "infer" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" -dependencies = [ - "cfb", -] - [[package]] name = "infer" version = "0.16.0" @@ -4750,42 +2627,6 @@ dependencies = [ "cfb", ] -[[package]] -name = "inlinable_string" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" - -[[package]] -name = "inotify" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" -dependencies = [ - "bitflags 1.3.2", - "inotify-sys", - "libc", -] - -[[package]] -name = "inotify-sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" -dependencies = [ - "libc", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "block-padding", - "generic-array", -] - [[package]] name = "instant" version = "0.1.13" @@ -4795,17 +2636,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "interpolate_name" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - [[package]] name = "io-lifetimes" version = "1.0.11" @@ -4819,9 +2649,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-docker" @@ -4832,17 +2662,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "is-terminal" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" -dependencies = [ - "hermit-abi 0.4.0", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "is-wsl" version = "0.4.0" @@ -4853,63 +2672,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "is_executable" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2" -dependencies = [ - "winapi", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "iso8601" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924e5d73ea28f59011fec52a0d12185d496a9b075d360657aed2a5707f701153" -dependencies = [ - "nom", -] - -[[package]] -name = "iter-read" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071ed4cc1afd86650602c7b11aa2e1ce30762a1c27193201cb5cee9c6ebb1294" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "0.4.8" @@ -4922,17 +2684,6 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" -[[package]] -name = "java-properties" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37bf6f484471c451f2b51eabd9e66b3fa7274550c5ec4b6c3d6070840945117f" -dependencies = [ - "encoding_rs", - "lazy_static", - "regex", -] - [[package]] name = "javascriptcore-rs" version = "1.1.2" @@ -4978,15 +2729,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - [[package]] name = "jpeg-decoder" version = "0.3.1" @@ -4995,24 +2737,14 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] -[[package]] -name = "json-patch" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" -dependencies = [ - "serde", - "serde_json", - "thiserror 1.0.69", -] - [[package]] name = "json-patch" version = "3.0.1" @@ -5046,240 +2778,17 @@ dependencies = [ "serde_json", ] -[[package]] -name = "jsonrpsee" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843" -dependencies = [ - "jsonrpsee-core", - "jsonrpsee-server", - "jsonrpsee-types", - "tokio", -] - -[[package]] -name = "jsonrpsee-client-transport" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" -dependencies = [ - "base64 0.22.1", - "futures-util", - "http 1.1.0", - "jsonrpsee-core", - "pin-project", - "soketto", - "thiserror 1.0.69", - "tokio", - "tokio-util", - "tracing", - "url", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" -dependencies = [ - "async-trait", - "bytes", - "futures-timer", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "jsonrpsee-types", - "parking_lot", - "pin-project", - "rand 0.8.5", - "rustc-hash", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c" -dependencies = [ - "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.5.1", - "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tokio-util", - "tower 0.4.13", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1" -dependencies = [ - "http 1.1.0", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d" -dependencies = [ - "http 1.1.0", - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", - "url", -] - -[[package]] -name = "jsonschema" -version = "0.18.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0f4bea31643be4c6a678e9aa4ae44f0db9e5609d5ca9dc9083d06eb3e9a27a" -dependencies = [ - "ahash 0.8.11", - "anyhow", - "base64 0.22.1", - "bytecount", - "clap 4.5.21", - "fancy-regex", - "fraction", - "getrandom 0.2.15", - "iso8601", - "itoa 1.0.14", - "memchr", - "num-cmp", - "once_cell", - "parking_lot", - "percent-encoding", - "regex", - "reqwest 0.12.9", - "serde", - "serde_json", - "time", - "url", - "uuid", -] - -[[package]] -name = "jsonwebtoken" -version = "9.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" -dependencies = [ - "base64 0.21.7", - "js-sys", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "jzon" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ab85f84ca42c5ec520e6f3c9966ba1fd62909ce260f8837e248857d2560509" - -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "once_cell", - "sha2", - "signature 2.2.0", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - [[package]] name = "keyboard-types" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "serde", "unicode-segmentation", ] -[[package]] -name = "konst" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65f00fb3910881e52bf0850ae2a82aea411488a557e1c02820ceaa60963dce3" -dependencies = [ - "const_panic", - "konst_kernel", - "typewit", -] - -[[package]] -name = "konst_kernel" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599c1232f55c72c7fc378335a3efe1c878c92720838c8e6a4fd87784ef7764de" -dependencies = [ - "typewit", -] - -[[package]] -name = "kqueue" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" -dependencies = [ - "kqueue-sys", - "libc", -] - -[[package]] -name = "kqueue-sys" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" -dependencies = [ - "bitflags 1.3.2", - "libc", -] - [[package]] name = "kuchikiki" version = "0.8.2" @@ -5293,30 +2802,11 @@ dependencies = [ "selectors", ] -[[package]] -name = "kurbo" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89234b2cc610a7dd927ebde6b41dd1a5d4214cffaef4cf1fb2195d592f92518f" -dependencies = [ - "arrayvec 0.7.6", - "smallvec", -] - [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] - -[[package]] -name = "lebe" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libappindicator" @@ -5344,19 +2834,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.166" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36" - -[[package]] -name = "libfuzzer-sys" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9569d2f74e257076d8c6bfa73fb505b46b851e51ddaecc825944aa3bed17fa" -dependencies = [ - "arbitrary", - "cc", -] +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libloading" @@ -5370,29 +2850,22 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", ] -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - [[package]] name = "libredox" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", - "redox_syscall 0.5.7", ] [[package]] @@ -5403,9 +2876,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litemap" @@ -5413,18 +2886,6 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" -[[package]] -name = "local-ip-address" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3669cf5561f8d27e8fc84cc15e58350e70f557d4d65f70e3154e54cd2f8e1782" -dependencies = [ - "libc", - "neli", - "thiserror 1.0.69", - "windows-sys 0.59.0", -] - [[package]] name = "lock_api" version = "0.4.12" @@ -5435,50 +2896,15 @@ dependencies = [ "scopeguard", ] -[[package]] -name = "lockfree-object-pool" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" - [[package]] name = "log" -version = "0.4.22" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" dependencies = [ "value-bag", ] -[[package]] -name = "loop9" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" -dependencies = [ - "imgref", -] - -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.2", -] - -[[package]] -name = "lzma-sys" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "mac" version = "0.1.1" @@ -5498,19 +2924,6 @@ dependencies = [ "time", ] -[[package]] -name = "magic_string" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8033ce8c43f7ccb207e4699f30eed50d7526379ee08fab47159f80b7934e18" -dependencies = [ - "base64 0.13.1", - "regex", - "serde", - "serde_json", - "vlq", -] - [[package]] name = "malloc_buf" version = "0.0.6" @@ -5540,53 +2953,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "maybe-rayon" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" -dependencies = [ - "cfg-if", - "rayon", -] - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - -[[package]] -name = "md5" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" - [[package]] name = "memchr" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memmap2" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" -dependencies = [ - "libc", -] - [[package]] name = "memoffset" version = "0.7.1" @@ -5605,79 +2977,17 @@ dependencies = [ "autocfg", ] -[[package]] -name = "miette" -version = "7.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317f146e2eb7021892722af37cf1b971f0a70c8406f487e24952667616192c64" -dependencies = [ - "cfg-if", - "miette-derive", - "owo-colors", - "textwrap 0.16.1", - "thiserror 1.0.69", - "unicode-width", -] - -[[package]] -name = "miette-derive" -version = "7.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c9b935fbe1d6cbd1dac857b54a688145e2d93f48db36010514d0f612d0ad67" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - [[package]] name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "minicbor" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d15f4203d71fdf90903c2696e55426ac97a363c67b218488a73b534ce7aca10" -dependencies = [ - "minicbor-derive", -] - -[[package]] -name = "minicbor-derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1154809406efdb7982841adb6311b3d095b46f78342dd646736122fe6b19e267" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "minisign" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23ef13ff1d745b1e52397daaa247e333c607f3cff96d4df2b798dc252db974b" -dependencies = [ - "getrandom 0.2.15", - "rpassword", - "scrypt", -] - [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", "simd-adler32", @@ -5685,23 +2995,10 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "mio" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -5717,9 +3014,9 @@ dependencies = [ "dpi", "gtk", "keyboard-types", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "once_cell", "png", "serde", @@ -5729,9 +3026,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ "libc", "log", @@ -5750,7 +3047,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "jni-sys", "log", "ndk-sys", @@ -5774,31 +3071,6 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "neli" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1100229e06604150b3becd61a4965d5c70f3be1759544ea7274166f4be41ef43" -dependencies = [ - "byteorder", - "libc", - "log", - "neli-proc-macros", -] - -[[package]] -name = "neli-proc-macros" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168194d373b1e134786274020dae7fc5513d565ea2ebb9bc9ff17ffb69106d4" -dependencies = [ - "either", - "proc-macro2", - "quote", - "serde", - "syn 1.0.109", -] - [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -5823,7 +3095,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "cfg_aliases", "libc", @@ -5836,126 +3108,18 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonmax" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" - -[[package]] -name = "noop_proc_macro" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" - -[[package]] -name = "notify" -version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" -dependencies = [ - "bitflags 2.6.0", - "crossbeam-channel", - "filetime", - "fsevent-sys", - "inotify", - "kqueue", - "libc", - "log", - "mio 0.8.11", - "walkdir", - "windows-sys 0.48.0", -] - -[[package]] -name = "notify-debouncer-mini" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d40b221972a1fc5ef4d858a2f671fb34c75983eb385463dff3780eeff6a9d43" -dependencies = [ - "crossbeam-channel", - "log", - "notify", -] - [[package]] name = "notify-rust" -version = "4.11.3" +version = "4.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5134a72dc570b178bff81b01e81ab14a6fcc015391ed4b3b14853090658cd3a3" +checksum = "7fa3b9f2364a09bd359aa0206702882e208437450866a374d5372d64aece4029" dependencies = [ + "futures-lite 2.6.0", "log", "mac-notification-sys", "serde", "tauri-winrt-notification 0.2.1", - "zbus 4.4.0", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "serde", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-cmp" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63335b2e2c34fae2fb0aa2cecfd9f0832a1e24b3b32ecec612c3426d46dc8aaa" - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", + "zbus 5.5.0", ] [[package]] @@ -5964,63 +3128,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-modular" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" - -[[package]] -name = "num-order" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" -dependencies = [ - "num-modular", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -6028,7 +3135,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -6049,7 +3155,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -6100,33 +3206,54 @@ dependencies = [ "objc2-encode", ] +[[package]] +name = "objc2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3531f65190d9cff863b77a99857e74c314dd16bf56c538c4b57c7cbc3f3a6e59" +dependencies = [ + "objc2-encode", +] + [[package]] name = "objc2-app-kit" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.6.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "libc", - "objc2", + "objc2 0.5.2", "objc2-core-data", "objc2-core-image", - "objc2-foundation", + "objc2-foundation 0.2.2", "objc2-quartz-core", ] +[[package]] +name = "objc2-app-kit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5906f93257178e2f7ae069efb89fbd6ee94f0592740b5f8a1512ca498814d0fb" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", + "objc2-core-foundation", + "objc2-foundation 0.3.0", +] + [[package]] name = "objc2-cloud-kit" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2 0.5.2", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] @@ -6135,9 +3262,9 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" dependencies = [ - "block2", - "objc2", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -6146,10 +3273,30 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-foundation", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "objc2-core-foundation" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daeaf60f25471d26948a1c2f840e3f7d86f4109e3af4e8e4b5cd70c39690d925" +dependencies = [ + "bitflags 2.8.0", + "objc2 0.6.0", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dca602628b65356b6513290a21a6405b4d4027b8b250f0b98dddbb28b7de02" +dependencies = [ + "bitflags 2.8.0", + "objc2-core-foundation", ] [[package]] @@ -6158,9 +3305,9 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2", - "objc2", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", "objc2-metal", ] @@ -6170,17 +3317,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ - "block2", - "objc2", + "block2 0.5.1", + "objc2 0.5.2", "objc2-contacts", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] name = "objc2-encode" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] name = "objc2-foundation" @@ -6188,11 +3335,23 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.6.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "dispatch", "libc", - "objc2", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-foundation" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a21c6c9014b82c39515db5b396f91645182611c97d24637cf56ac01e5f8d998" +dependencies = [ + "bitflags 2.8.0", + "block2 0.6.0", + "objc2 0.6.0", + "objc2-core-foundation", ] [[package]] @@ -6201,10 +3360,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "block2", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -6213,10 +3372,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-foundation", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -6225,10 +3384,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-foundation", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", "objc2-metal", ] @@ -6238,8 +3397,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" dependencies = [ - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -6248,14 +3407,14 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2 0.5.2", "objc2-cloud-kit", "objc2-core-data", "objc2-core-image", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", "objc2-link-presentation", "objc2-quartz-core", "objc2-symbols", @@ -6269,9 +3428,9 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ - "block2", - "objc2", - "objc2-foundation", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -6280,11 +3439,11 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2 0.5.2", "objc2-core-location", - "objc2-foundation", + "objc2-foundation 0.2.2", ] [[package]] @@ -6293,11 +3452,11 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", ] [[package]] @@ -6311,76 +3470,26 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "crc32fast", - "flate2", - "hashbrown 0.14.5", - "indexmap 2.6.0", - "memchr", - "ruzstd", -] - -[[package]] -name = "object" -version = "0.36.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] -[[package]] -name = "ocb3" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c196e0276c471c843dd5777e7543a36a298a4be942a2a688d8111cd43390dedb" -dependencies = [ - "aead", - "cipher", - "ctr", - "subtle", -] - -[[package]] -name = "oid-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" -dependencies = [ - "asn1-rs", -] - -[[package]] -name = "once-cell-regex" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3de7e389a5043420c8f2b95ed03f3f104ad6f4c41f7d7e27298f033abc253e8" -dependencies = [ - "once_cell", - "regex", -] - [[package]] name = "once_cell" -version = "1.20.2" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "open" -version = "5.3.1" +version = "5.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ecd52f0b8d15c40ce4820aa251ed5de032e5d91fab27f7db2f40d42a8bdf69c" +checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" dependencies = [ + "dunce", "is-wsl", "libc", "pathdiff", @@ -6388,11 +3497,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -6409,20 +3518,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.104" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ "cc", "libc", @@ -6436,15 +3545,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "ordered-float" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" -dependencies = [ - "num-traits", -] - [[package]] name = "ordered-multimap" version = "0.7.3" @@ -6467,9 +3567,9 @@ dependencies = [ [[package]] name = "os_info" -version = "3.8.2" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae99c7fa6dd38c7cafe1ec085e804f8f555a2f8659b0dbe03f1f9963a9b51092" +checksum = "2a604e53c24761286860eba4e2c8b23a0161526476b1de520139d69cdb85a6b5" dependencies = [ "log", "serde", @@ -6486,202 +3586,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "outref" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" - -[[package]] -name = "owo-colors" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" - -[[package]] -name = "oxc_allocator" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "466379b9ab2e05996bfedfae9c96753a633bb5a53aaf0898eb0e0ab09e169514" -dependencies = [ - "allocator-api2", - "bumpalo", -] - -[[package]] -name = "oxc_ast" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34bd4f56fe32adea489153f6d681d9ee01f0336b9b6a89f062611488d8f80797" -dependencies = [ - "bitflags 2.6.0", - "num-bigint", - "oxc_allocator", - "oxc_ast_macros", - "oxc_span", - "oxc_syntax", -] - -[[package]] -name = "oxc_ast_macros" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197b36739db0e80919e19a90785233eea5664697d4cd829bd49af34838ec43d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "oxc_diagnostics" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd4bb48b9527f5825c84acb688ec1485df4a5edadc17b3582626bb49736752b" -dependencies = [ - "miette", - "owo-colors", - "textwrap 0.16.1", - "unicode-width", -] - -[[package]] -name = "oxc_index" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9aa9446f6d2a64d0baa02fe20dc3d64e3e112083854b84fdacb82261be2b84" - -[[package]] -name = "oxc_parser" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3432e80a58cfb38f9a138203e64d0f9a621d4c4e9d18e3e3bd870b51ce1f0e" -dependencies = [ - "assert-unchecked", - "bitflags 2.6.0", - "memchr", - "num-bigint", - "num-traits", - "oxc_allocator", - "oxc_ast", - "oxc_diagnostics", - "oxc_regular_expression", - "oxc_span", - "oxc_syntax", - "rustc-hash", - "seq-macro", -] - -[[package]] -name = "oxc_regular_expression" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc6d05fec98ad6cc864ba8cfe7ece2e258106059a9a57e35b02450650b06979" -dependencies = [ - "oxc_allocator", - "oxc_diagnostics", - "oxc_span", - "phf 0.11.2", - "rustc-hash", - "unicode-id-start", -] - -[[package]] -name = "oxc_span" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a862a896ac3abd269863a19d4f77302b019458d90513705c7a017b138c8449b" -dependencies = [ - "compact_str", - "miette", - "oxc_allocator", - "oxc_ast_macros", -] - -[[package]] -name = "oxc_syntax" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50c7ea034fb12f65376cfffc8ae4bfde3cda0a1e14407f82ffba1d26431703d" -dependencies = [ - "bitflags 2.6.0", - "dashmap", - "nonmax", - "oxc_allocator", - "oxc_ast_macros", - "oxc_index", - "oxc_span", - "phf 0.11.2", - "rustc-hash", - "unicode-id-start", -] - -[[package]] -name = "p12" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4873306de53fe82e7e484df31e1e947d61514b6ea2ed6cd7b45d63006fd9224" -dependencies = [ - "cbc", - "cipher", - "des", - "getrandom 0.2.15", - "hmac", - "lazy_static", - "rc2", - "sha1", - "yasna", -] - -[[package]] -name = "p256" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" -dependencies = [ - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", - "sha2", -] - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "primeorder", - "sha2", -] - -[[package]] -name = "p384" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" -dependencies = [ - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "primeorder", - "sha2", -] - -[[package]] -name = "p521" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2" -dependencies = [ - "base16ct 0.2.0", - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "primeorder", - "rand_core 0.6.4", - "sha2", -] - [[package]] name = "pango" version = "0.18.3" @@ -6731,98 +3635,17 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.7", + "redox_syscall 0.5.9", "smallvec", "windows-targets 0.52.6", ] -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "path_abs" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ef02f6342ac01d8a93b65f96db53fe68a92a15f41144f97fb00a9e669633c3" -dependencies = [ - "serde", - "serde_derive", - "std_prelude", - "stfu8", -] - [[package]] name = "pathdiff" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest", - "hmac", -] - -[[package]] -name = "pear" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467" -dependencies = [ - "inlinable_string", - "pear_codegen", - "yansi", -] - -[[package]] -name = "pear_codegen" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147" -dependencies = [ - "proc-macro2", - "proc-macro2-diagnostics", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "pem" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" -dependencies = [ - "base64 0.22.1", - "serde", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -6831,20 +3654,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 1.0.69", + "thiserror 2.0.11", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" dependencies = [ "pest", "pest_generator", @@ -6852,92 +3675,28 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] name = "pest_meta" -version = "2.7.14" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" dependencies = [ "once_cell", "pest", "sha2", ] -[[package]] -name = "pgp" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6c842436d5fa2b59eac1e9b3d142b50bfff99c1744c816b1f4c2ac55a20754" -dependencies = [ - "aes", - "aes-gcm", - "argon2", - "base64 0.22.1", - "bitfield", - "block-padding", - "blowfish", - "bstr", - "buffer-redux", - "byteorder", - "camellia", - "cast5", - "cfb-mode", - "chrono", - "cipher", - "const-oid", - "crc24", - "curve25519-dalek", - "derive_builder", - "des", - "digest", - "dsa", - "eax", - "ecdsa 0.16.9", - "ed25519-dalek", - "elliptic-curve 0.13.8", - "flate2", - "generic-array", - "hex", - "hkdf", - "idea", - "iter-read", - "k256", - "log", - "md-5", - "nom", - "num-bigint-dig", - "num-traits", - "num_enum", - "ocb3", - "p256 0.13.2", - "p384", - "p521", - "rand 0.8.5", - "ripemd", - "rsa", - "sha1", - "sha1-checked", - "sha2", - "sha3", - "signature 2.2.0", - "smallvec", - "thiserror 1.0.69", - "twofish", - "x25519-dalek", - "zeroize", -] - [[package]] name = "phf" version = "0.8.0" @@ -6960,12 +3719,12 @@ dependencies = [ [[package]] name = "phf" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ - "phf_macros 0.11.2", - "phf_shared 0.11.2", + "phf_macros 0.11.3", + "phf_shared 0.11.3", ] [[package]] @@ -7010,11 +3769,11 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ - "phf_shared 0.11.2", + "phf_shared 0.11.3", "rand 0.8.5", ] @@ -7034,15 +3793,15 @@ dependencies = [ [[package]] name = "phf_macros" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", + "phf_generator 0.11.3", + "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -7065,44 +3824,18 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ - "siphasher 0.3.11", -] - -[[package]] -name = "pico-args" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" - -[[package]] -name = "pin-project" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", + "siphasher 1.0.1", ] [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -7117,53 +3850,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.2.0", + "fastrand 2.3.0", "futures-io", ] -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der 0.7.9", - "pkcs8 0.10.2", - "spki 0.7.3", -] - -[[package]] -name = "pkcs8" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" -dependencies = [ - "der 0.6.1", - "spki 0.6.0", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der 0.7.9", - "spki 0.7.3", -] - [[package]] name = "pkg-config" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" -[[package]] -name = "plain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" - [[package]] name = "plist" version = "1.7.0" @@ -7171,7 +3867,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ "base64 0.22.1", - "indexmap 2.6.0", + "indexmap 2.7.1", "quick-xml 0.32.0", "serde", "time", @@ -7179,9 +3875,9 @@ dependencies = [ [[package]] name = "png" -version = "0.17.14" +version = "0.17.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -7216,23 +3912,11 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.41", + "rustix 0.38.44", "tracing", "windows-sys 0.59.0", ] -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - [[package]] name = "portmaster" version = "0.1.0" @@ -7252,12 +3936,12 @@ dependencies = [ "glib-sys", "gtk", "gtk-sys", - "http 1.1.0", + "http", "lazy_static", "log", "notify-rust", "open", - "reqwest 0.12.9", + "reqwest", "rfd", "rust-ini", "serde", @@ -7265,7 +3949,6 @@ dependencies = [ "sha", "tauri", "tauri-build", - "tauri-cli", "tauri-plugin-clipboard-manager", "tauri-plugin-dialog", "tauri-plugin-log", @@ -7306,15 +3989,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve 0.13.8", -] - [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -7340,7 +4014,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.22.22", + "toml_edit 0.22.24", ] [[package]] @@ -7375,45 +4049,13 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] -[[package]] -name = "proc-macro2-diagnostics" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", - "version_check", - "yansi", -] - -[[package]] -name = "profiling" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" -dependencies = [ - "profiling-procmacros", -] - -[[package]] -name = "profiling-procmacros" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" -dependencies = [ - "quote", - "syn 2.0.89", -] - [[package]] name = "ptr_meta" version = "0.1.4" @@ -7434,21 +4076,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "qoi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - [[package]] name = "quick-xml" version = "0.31.0" @@ -7469,18 +4096,70 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.2" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" dependencies = [ "memchr", ] [[package]] -name = "quote" -version = "1.0.37" +name = "quinn" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.23.23", + "socket2 0.5.8", + "thiserror 2.0.11", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom 0.2.15", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls 0.23.23", + "rustls-pki-types", + "slab", + "thiserror 2.0.11", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.5.8", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -7572,129 +4251,12 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rasn" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9b0d03fbc7d2dcfdd35086c43ce30ac5ff62ed7eff4397e4f4f2995a2b0e2a" -dependencies = [ - "arrayvec 0.7.6", - "bitvec", - "bitvec-nom2", - "bytes", - "chrono", - "either", - "jzon", - "konst", - "nom", - "num-bigint", - "num-integer", - "num-traits", - "once_cell", - "rasn-derive", - "snafu", -] - -[[package]] -name = "rasn-derive" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbaf7105cd254b632f4732fbcc243ce750cef87d8335826125ef6df5733b5a0c" -dependencies = [ - "either", - "itertools 0.10.5", - "proc-macro2", - "quote", - "rayon", - "syn 1.0.109", - "uuid", -] - -[[package]] -name = "rav1e" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" -dependencies = [ - "arbitrary", - "arg_enum_proc_macro", - "arrayvec 0.7.6", - "av1-grain", - "bitstream-io", - "built", - "cfg-if", - "interpolate_name", - "itertools 0.12.1", - "libc", - "libfuzzer-sys", - "log", - "maybe-rayon", - "new_debug_unreachable", - "noop_proc_macro", - "num-derive", - "num-traits", - "once_cell", - "paste", - "profiling", - "rand 0.8.5", - "rand_chacha 0.3.1", - "simd_helpers", - "system-deps", - "thiserror 1.0.69", - "v_frame", - "wasm-bindgen", -] - -[[package]] -name = "ravif" -version = "0.11.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6" -dependencies = [ - "avif-serialize", - "imgref", - "loop9", - "quick-error", - "rav1e", - "rayon", - "rgb", -] - [[package]] name = "raw-window-handle" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rc2" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62c64daa8e9438b84aaae55010a93f396f8e60e3911590fcba770d04643fc1dd" -dependencies = [ - "cipher", -] - [[package]] name = "redox_syscall" version = "0.1.57" @@ -7703,11 +4265,11 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -7732,6 +4294,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "redox_users" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 2.0.11", +] + [[package]] name = "regex" version = "1.11.1" @@ -7755,12 +4328,6 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "regex-lite" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" - [[package]] name = "regex-syntax" version = "0.8.5" @@ -7778,64 +4345,21 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg 0.50.0", -] - -[[package]] -name = "reqwest" -version = "0.12.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64 0.22.1", "bytes", "encoding_rs", - "futures-channel", "futures-core", "futures-util", - "h2 0.4.7", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.5.1", - "hyper-rustls 0.27.3", + "hyper", + "hyper-rustls", "hyper-tls", "hyper-util", "ipnet", @@ -7846,118 +4370,69 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.2.0", + "quinn", + "rustls 0.23.23", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", - "system-configuration 0.6.1", + "sync_wrapper", + "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls 0.26.1", "tokio-util", + "tower", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "windows-registry 0.2.0", -] - -[[package]] -name = "resvg" -version = "0.43.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7314563c59c7ce31c18e23ad3dd092c37b928a0fa4e1c0a1a6504351ab411d1" -dependencies = [ - "gif", - "image-webp 0.1.3", - "log", - "pico-args", - "rgb", - "svgtypes", - "tiny-skia", - "usvg", - "zune-jpeg", -] - -[[package]] -name = "rfc6979" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" -dependencies = [ - "crypto-bigint 0.4.9", - "hmac", - "zeroize", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", + "webpki-roots", + "windows-registry", ] [[package]] name = "rfd" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f6f80a9b882647d9014673ca9925d30ffc9750f2eed2b4490e189eaebd01e8" +checksum = "6a24763657bff09769a8ccf12c8b8a50416fb035fe199263b4c5071e4e3f006f" dependencies = [ "ashpd 0.10.2", - "block2", + "block2 0.5.1", + "core-foundation 0.10.0", + "core-foundation-sys", "glib-sys", "gobject-sys", "gtk-sys", "js-sys", "log", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "raw-window-handle", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-sys 0.48.0", -] - -[[package]] -name = "rgb" -version = "0.8.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" -dependencies = [ - "bytemuck", + "windows-sys 0.59.0", ] [[package]] name = "ring" -version = "0.17.8" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest", -] - [[package]] name = "rkyv" version = "0.7.45" @@ -7987,89 +4462,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "route-recognizer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" - -[[package]] -name = "roxmltree" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" - -[[package]] -name = "rpassword" -version = "7.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" -dependencies = [ - "libc", - "rtoolbox", - "windows-sys 0.48.0", -] - -[[package]] -name = "rpm" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95c49b6baaa0e8fa864b2069d1e94e7a132471da3ac26a132f3fa7e71416772c" -dependencies = [ - "bitflags 2.6.0", - "bzip2", - "chrono", - "cpio", - "digest", - "enum-display-derive", - "enum-primitive-derive", - "flate2", - "hex", - "itertools 0.13.0", - "log", - "md-5", - "nom", - "num", - "num-derive", - "num-traits", - "pgp", - "sha1", - "sha2", - "thiserror 1.0.69", - "xz2", - "zstd", -] - -[[package]] -name = "rsa" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "signature 2.2.0", - "spki 0.7.3", - "subtle", - "zeroize", -] - -[[package]] -name = "rtoolbox" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "rust-argon2" version = "0.8.3" @@ -8116,9 +4508,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" @@ -8129,20 +4521,11 @@ dependencies = [ "semver", ] -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - [[package]] name = "rustix" -version = "0.37.27" +version = "0.37.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" dependencies = [ "bitflags 1.3.2", "errno", @@ -8154,27 +4537,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.41" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "errno", "libc", - "linux-raw-sys 0.4.14", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", ] [[package]] @@ -8183,63 +4554,27 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ - "log", "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls" -version = "0.23.19" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ - "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.2.0", - "rustls-pki-types", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -8251,18 +4586,11 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" dependencies = [ - "ring", - "untrusted", + "web-time", ] [[package]] @@ -8278,53 +4606,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" - -[[package]] -name = "rustybuzz" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85d1ccd519e61834798eb52c4e886e8c2d7d698dd3d6ce0b1b47eb8557f1181" -dependencies = [ - "bitflags 2.6.0", - "bytemuck", - "core_maths", - "log", - "smallvec", - "ttf-parser", - "unicode-bidi-mirroring", - "unicode-ccc", - "unicode-properties", - "unicode-script", -] - -[[package]] -name = "ruzstd" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" -dependencies = [ - "byteorder", - "derive_more", - "twox-hash", -] +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -8368,7 +4658,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -8383,88 +4673,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scroll" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "scrypt" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" -dependencies = [ - "pbkdf2", - "salsa20", - "sha2", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "seahash" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" -[[package]] -name = "sec1" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" -dependencies = [ - "base16ct 0.1.1", - "der 0.6.1", - "generic-array", - "pkcs8 0.9.0", - "subtle", - "zeroize", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct 0.2.0", - "der 0.7.9", - "generic-array", - "pkcs8 0.10.2", - "subtle", - "zeroize", -] - [[package]] name = "security-framework" version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -8473,9 +4694,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -8503,24 +4724,18 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ "serde", ] -[[package]] -name = "seq-macro" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" - [[package]] name = "serde" -version = "1.0.215" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] @@ -8536,37 +4751,15 @@ dependencies = [ "typeid", ] -[[package]] -name = "serde-value" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" -dependencies = [ - "ordered-float", - "serde", -] - -[[package]] -name = "serde-xml-rs" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3aa78ecda1ebc9ec9847d5d3aba7d618823446a049ba2491940506da6e2782" -dependencies = [ - "log", - "serde", - "thiserror 1.0.69", - "xml-rs", -] - [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -8577,41 +4770,21 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", -] - -[[package]] -name = "serde_fmt" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4" -dependencies = [ - "serde", + "syn 2.0.98", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" dependencies = [ - "indexmap 2.6.0", "itoa 1.0.14", "memchr", "ryu", "serde", ] -[[package]] -name = "serde_path_to_error" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" -dependencies = [ - "itoa 1.0.14", - "serde", -] - [[package]] name = "serde_repr" version = "0.1.19" @@ -8620,7 +4793,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -8646,15 +4819,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.6.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -8664,27 +4837,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.11.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.89", -] - -[[package]] -name = "serde_yaml" -version = "0.9.34+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" -dependencies = [ - "indexmap 2.6.0", - "itoa 1.0.14", - "ryu", - "serde", - "unsafe-libyaml", + "syn 2.0.98", ] [[package]] @@ -8739,22 +4899,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sha1-checked" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" -dependencies = [ - "digest", - "sha1", -] - -[[package]] -name = "sha1_smol" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" - [[package]] name = "sha2" version = "0.10.8" @@ -8766,16 +4910,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest", - "keccak", -] - [[package]] name = "shared_child" version = "1.0.1" @@ -8786,12 +4920,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - [[package]] name = "shlex" version = "1.3.0" @@ -8807,74 +4935,18 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core 0.6.4", -] - [[package]] name = "simd-adler32" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" -[[package]] -name = "simd_helpers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" -dependencies = [ - "quote", -] - [[package]] name = "simdutf8" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "simple-file-manifest" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd19be0257552dd56d1bb6946f89f193c6e5b9f13cc9327c4bc84a357507c74" - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 1.0.69", - "time", -] - -[[package]] -name = "simplecss" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" -dependencies = [ - "log", -] - [[package]] name = "siphasher" version = "0.3.11" @@ -8896,49 +4968,11 @@ dependencies = [ "autocfg", ] -[[package]] -name = "slotmap" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" -dependencies = [ - "version_check", -] - [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "smawk" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" - -[[package]] -name = "snafu" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6" -dependencies = [ - "backtrace", - "doc-comment", - "snafu-derive", -] - -[[package]] -name = "snafu-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" [[package]] name = "socket2" @@ -8952,25 +4986,14 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", ] -[[package]] -name = "socks" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" -dependencies = [ - "byteorder", - "libc", - "winapi", -] - [[package]] name = "softbuffer" version = "0.4.6" @@ -8983,32 +5006,16 @@ dependencies = [ "foreign-types 0.5.0", "js-sys", "log", - "objc2", - "objc2-foundation", + "objc2 0.5.2", + "objc2-foundation 0.2.2", "objc2-quartz-core", "raw-window-handle", - "redox_syscall 0.5.7", + "redox_syscall 0.5.9", "wasm-bindgen", "web-sys", "windows-sys 0.59.0", ] -[[package]] -name = "soketto" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures", - "http 1.1.0", - "httparse", - "log", - "rand 0.8.5", - "sha1", -] - [[package]] name = "soup3" version = "0.5.0" @@ -9035,44 +5042,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "spake2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5482afe85a0b6ce956c945401598dbc527593c77ba51d0a87a586938b1b893a" -dependencies = [ - "curve25519-dalek", - "hkdf", - "rand_core 0.6.4", - "sha2", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" -dependencies = [ - "base64ct", - "der 0.6.1", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der 0.7.9", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -9085,49 +5054,27 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "std_prelude" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8207e78455ffdf55661170876f88daf85356e4edd54e0a3dbc79586ca1e50cbe" - -[[package]] -name = "stfu8" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51f1e89f093f99e7432c491c382b88a6860a5adbe6bf02574bf0a08efff1978" - -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" -dependencies = [ - "float-cmp", -] - [[package]] name = "string_cache" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +checksum = "938d512196766101d333398efde81bc1f37b00cb42c2f8350e5df639f040bbbe" dependencies = [ "new_debug_unreachable", - "once_cell", "parking_lot", - "phf_shared 0.10.0", + "phf_shared 0.11.3", "precomputed-hash", "serde", ] [[package]] name = "string_cache_codegen" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", + "phf_generator 0.11.3", + "phf_shared 0.11.3", "proc-macro2", "quote", ] @@ -9150,106 +5097,12 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "sublime_fuzzy" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7986063f7c0ab374407e586d7048a3d5aac94f103f751088bf398e07cd5400" - [[package]] name = "subtle" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "sval" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6dc0f9830c49db20e73273ffae9b5240f63c42e515af1da1fceefb69fceafd8" - -[[package]] -name = "sval_buffer" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "429922f7ad43c0ef8fd7309e14d750e38899e32eb7e8da656ea169dd28ee212f" -dependencies = [ - "sval", - "sval_ref", -] - -[[package]] -name = "sval_dynamic" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f16ff5d839396c11a30019b659b0976348f3803db0626f736764c473b50ff4" -dependencies = [ - "sval", -] - -[[package]] -name = "sval_fmt" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01c27a80b6151b0557f9ccbe89c11db571dc5f68113690c1e028d7e974bae94" -dependencies = [ - "itoa 1.0.14", - "ryu", - "sval", -] - -[[package]] -name = "sval_json" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0deef63c70da622b2a8069d8600cf4b05396459e665862e7bdb290fd6cf3f155" -dependencies = [ - "itoa 1.0.14", - "ryu", - "sval", -] - -[[package]] -name = "sval_nested" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a39ce5976ae1feb814c35d290cf7cf8cd4f045782fe1548d6bc32e21f6156e9f" -dependencies = [ - "sval", - "sval_buffer", - "sval_ref", -] - -[[package]] -name = "sval_ref" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7c6ee3751795a728bc9316a092023529ffea1783499afbc5c66f5fabebb1fa" -dependencies = [ - "sval", -] - -[[package]] -name = "sval_serde" -version = "2.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5572d0321b68109a343634e3a5d576bf131b82180c6c442dee06349dfc652a" -dependencies = [ - "serde", - "sval", - "sval_nested", -] - -[[package]] -name = "svgtypes" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794de53cc48eaabeed0ab6a3404a65f40b3e38c067e4435883a65d2aa4ca000e" -dependencies = [ - "kurbo", - "siphasher 1.0.1", -] - [[package]] name = "swift-rs" version = "1.0.7" @@ -9274,21 +5127,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.89" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -9298,18 +5145,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - [[package]] name = "synstructure" version = "0.13.1" @@ -9318,7 +5153,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -9330,49 +5165,15 @@ dependencies = [ "libc", ] -[[package]] -name = "sysctl" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225e483f02d0ad107168dc57381a8a40c3aeea6abe47f37506931f861643cfa8" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "libc", - "thiserror 1.0.69", - "walkdir", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation 0.9.4", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "system-configuration-sys", ] [[package]] @@ -9394,17 +5195,17 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 0.8.19", + "toml 0.8.20", "version-compare", ] [[package]] name = "tao" -version = "0.30.8" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" +checksum = "3731d04d4ac210cd5f344087733943b9bfb1a32654387dad4d1c70de21aee2c9" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cocoa", "core-foundation 0.10.0", "core-graphics 0.24.0", @@ -9415,7 +5216,6 @@ dependencies = [ "gdkwayland-sys", "gdkx11-sys", "gtk", - "instant", "jni", "lazy_static", "libc", @@ -9445,7 +5245,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -9454,17 +5254,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" -[[package]] -name = "tar" -version = "0.4.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" -dependencies = [ - "filetime", - "libc", - "xattr", -] - [[package]] name = "target-lexicon" version = "0.12.16" @@ -9473,13 +5262,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.1.1" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e545de0a2dfe296fa67db208266cd397c5a55ae782da77973ef4c4fac90e9f2c" +checksum = "58a998b6be84104ca05c7e9a21f2180ddec020c8b84ea59a8fc8530a2a19588d" dependencies = [ "anyhow", "bytes", - "dirs 5.0.1", + "dirs 6.0.0", "dunce", "embed_plist", "futures-util", @@ -9487,20 +5276,20 @@ dependencies = [ "glob", "gtk", "heck 0.5.0", - "http 1.1.0", + "http", "image", "jni", "libc", "log", "mime", "muda", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "percent-encoding", "plist", "raw-window-handle", - "reqwest 0.12.9", + "reqwest", "serde", "serde_json", "serde_repr", @@ -9510,8 +5299,8 @@ dependencies = [ "tauri-macros", "tauri-runtime", "tauri-runtime-wry", - "tauri-utils 2.1.0", - "thiserror 2.0.3", + "tauri-utils", + "thiserror 2.0.11", "tokio", "tray-icon", "url", @@ -9524,160 +5313,36 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.3" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd2a4bcfaf5fb9f4be72520eefcb61ae565038f8ccba2a497d8c28f463b8c01" +checksum = "8e950124f6779c6cf98e3260c7a6c8488a74aa6350dd54c6950fdaa349bca2df" dependencies = [ "anyhow", "cargo_toml", "dirs 5.0.1", "glob", "heck 0.5.0", - "json-patch 3.0.1", + "json-patch", "schemars", "semver", "serde", "serde_json", - "tauri-utils 2.1.0", + "tauri-utils", "tauri-winres", - "toml 0.8.19", + "toml 0.8.20", "walkdir", ] -[[package]] -name = "tauri-bundler" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a829580e402e515d2d1947f7c945c46cb8b843b0f80965d363aa6c62160e2663" -dependencies = [ - "anyhow", - "ar", - "bitness", - "dirs 5.0.1", - "dunce", - "flate2", - "glob", - "handlebars", - "heck 0.5.0", - "hex", - "image", - "log", - "md5", - "os_pipe", - "plist", - "regex", - "rpm", - "semver", - "serde", - "serde_json", - "sha1", - "sha2", - "strsim 0.11.1", - "tar", - "tauri-icns", - "tauri-macos-sign", - "tauri-utils 2.1.0", - "tempfile", - "thiserror 2.0.3", - "time", - "ureq", - "url", - "uuid", - "walkdir", - "windows-registry 0.3.0", - "windows-sys 0.59.0", - "zip 2.2.1", -] - -[[package]] -name = "tauri-cli" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41bd283c8aba340b8db472647f43511768ad280fe49e3bd3e76b4117903e7590" -dependencies = [ - "anyhow", - "ar", - "axum", - "base64 0.22.1", - "cargo-mobile2", - "clap 4.5.21", - "clap_complete", - "colored", - "common-path", - "css-color", - "ctrlc", - "dialoguer", - "duct", - "dunce", - "elf", - "env_logger 0.11.5", - "glob", - "handlebars", - "heck 0.5.0", - "html5ever", - "ignore", - "image", - "include_dir", - "itertools 0.13.0", - "json-patch 3.0.1", - "jsonrpsee", - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-ws-client", - "jsonschema", - "kuchikiki", - "libc", - "local-ip-address", - "log", - "magic_string", - "memchr", - "minisign", - "notify", - "notify-debouncer-mini", - "object 0.36.5", - "os_info", - "os_pipe", - "oxc_allocator", - "oxc_ast", - "oxc_parser", - "oxc_span", - "phf 0.11.2", - "plist", - "rand 0.8.5", - "regex", - "resvg", - "semver", - "serde", - "serde-value", - "serde_json", - "shared_child", - "sublime_fuzzy", - "tauri-bundler", - "tauri-icns", - "tauri-macos-sign", - "tauri-utils 1.6.0", - "tauri-utils 2.1.0", - "tempfile", - "tokio", - "toml 0.8.19", - "toml_edit 0.22.22", - "ureq", - "url", - "uuid", - "walkdir", - "windows-sys 0.59.0", -] - [[package]] name = "tauri-codegen" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf79faeecf301d3e969b1fae977039edb77a4c1f25cc0a961be298b54bff97cf" +checksum = "f77894f9ddb5cb6c04fcfe8c8869ebe0aded4dabf19917118d48be4a95599ab5" dependencies = [ "base64 0.22.1", "brotli", "ico", - "json-patch 3.0.1", + "json-patch", "plist", "png", "proc-macro2", @@ -9686,66 +5351,34 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.89", - "tauri-utils 2.1.0", - "thiserror 2.0.3", + "syn 2.0.98", + "tauri-utils", + "thiserror 2.0.11", "time", "url", "uuid", "walkdir", ] -[[package]] -name = "tauri-icns" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b7eb4d0d43724ba9ba6a6717420ee68aee377816a3edbb45db8c18862b1431" -dependencies = [ - "byteorder", - "png", -] - -[[package]] -name = "tauri-macos-sign" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be95e2d37d1e3605831da071234418c786684af48982509af1b7f50b31af4546" -dependencies = [ - "anyhow", - "apple-codesign", - "chrono", - "dirs-next", - "log", - "once-cell-regex", - "os_pipe", - "p12", - "plist", - "rand 0.8.5", - "serde", - "serde_json", - "tempfile", - "x509-certificate", -] - [[package]] name = "tauri-macros" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c52027c8c5afb83166dacddc092ee8fff50772f9646d461d8c33ee887e447a03" +checksum = "3240a5caed760a532e8f687be6f05b2c7d11a1d791fb53ccc08cfeb3e5308736" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", "tauri-codegen", - "tauri-utils 2.1.0", + "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e753f2a30933a9bbf0a202fa47d7cc4a3401f06e8d6dcc53b79aa62954828c79" +checksum = "5841b9a0200e954ef7457f8d327091424328891e267a97b641dc246cc54d0dec" dependencies = [ "anyhow", "glob", @@ -9753,16 +5386,16 @@ dependencies = [ "schemars", "serde", "serde_json", - "tauri-utils 2.1.0", - "toml 0.8.19", + "tauri-utils", + "toml 0.8.20", "walkdir", ] [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.0.2" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a66feaa0fb7fce8e5073323d11ca381c9da7ac06f458e42b9ff77364b76a360" +checksum = "54de1e3a2ea008687954d5d72952800e87b09f6fbea6d0960d99e58050537642" dependencies = [ "arboard", "log", @@ -9770,14 +5403,14 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "tauri-plugin-dialog" -version = "2.0.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4307310e1d2c09ab110235834722e7c2b85099b683e1eb7342ab351b0be5ada3" +checksum = "8b59fd750551b1066744ab956a1cd6b1ea3e1b3763b0b9153ac27a044d596426" dependencies = [ "log", "raw-window-handle", @@ -9787,15 +5420,15 @@ dependencies = [ "tauri", "tauri-plugin", "tauri-plugin-fs", - "thiserror 1.0.69", + "thiserror 2.0.11", "url", ] [[package]] name = "tauri-plugin-fs" -version = "2.0.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba7d46e86db8c830d143ef90ab5a453328365b0cc834c24edea4267b16aba0" +checksum = "a1a1edf18000f02903a7c2e5997fb89aca455ecbc0acc15c6535afbb883be223" dependencies = [ "anyhow", "dunce", @@ -9807,38 +5440,40 @@ dependencies = [ "serde_repr", "tauri", "tauri-plugin", - "thiserror 1.0.69", + "tauri-utils", + "thiserror 2.0.11", + "toml 0.8.20", "url", "uuid", ] [[package]] name = "tauri-plugin-log" -version = "2.0.2" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aa13d15daf90230ba26d5a9b4a4612975fa64ce17290cb7f6e0f89bb6997d82" +checksum = "367a28a5e0ca39eac98005699466e8906edc4a2a8f8e13a5f1a71dc0bea6c677" dependencies = [ "android_logger", "byte-unit", - "cocoa", "fern", "log", - "objc", + "objc2 0.5.2", + "objc2-foundation 0.2.2", "serde", "serde_json", "serde_repr", "swift-rs", "tauri", "tauri-plugin", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", ] [[package]] name = "tauri-plugin-notification" -version = "2.0.1" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef492a2d19b6376bb4c9e0c4fab3f3bf8a220ea112d24f35027b737ff55de20c" +checksum = "0f8d3ee5207d3359ca2b714545664f24f70374d795bf91f7c1935a494003a57d" dependencies = [ "log", "notify-rust", @@ -9848,16 +5483,16 @@ dependencies = [ "serde_repr", "tauri", "tauri-plugin", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", "url", ] [[package]] name = "tauri-plugin-os" -version = "2.0.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc5f23a86f37687c7f4fecfdc706b279087bc44f7a46702f7307ff1551ee03a" +checksum = "dda2d571a9baf0664c1f2088db227e3072f9028602fafa885deade7547c3b738" dependencies = [ "gethostname 0.5.0", "log", @@ -9868,14 +5503,14 @@ dependencies = [ "sys-locale", "tauri", "tauri-plugin", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "tauri-plugin-shell" -version = "2.0.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad7880c5586b6b2104be451e3d7fc0f3800c84bda69e9ba81c828f87cb34267" +checksum = "bb2c50a63e60fb8925956cc5b7569f4b750ac197a4d39f13b8dd46ea8e2bad79" dependencies = [ "encoding_rs", "log", @@ -9888,78 +5523,78 @@ dependencies = [ "shared_child", "tauri", "tauri-plugin", - "thiserror 1.0.69", + "thiserror 2.0.11", "tokio", ] [[package]] name = "tauri-plugin-single-instance" -version = "2.0.1" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25ac834491d089699a2bc9266a662faf373c9f779f05a2235bc6e4d9e61769a" +checksum = "47c387d4d96690131dc46d1d2827df5c222b896a2bfeb15a16267229a55c50b5" dependencies = [ - "log", "serde", "serde_json", "tauri", - "thiserror 1.0.69", + "thiserror 2.0.11", + "tracing", "windows-sys 0.59.0", - "zbus 4.4.0", + "zbus 5.5.0", ] [[package]] name = "tauri-plugin-window-state" -version = "2.0.2" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683c8764751fbbcebf3a594bcee24cf84c62773fa0080d1b40fc80698472421e" +checksum = "35e344b512b0d99d9d06225f235d87d6c66d89496a3bf323d9b578d940596e6c" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "log", "serde", "serde_json", "tauri", "tauri-plugin", - "thiserror 1.0.69", + "thiserror 2.0.11", ] [[package]] name = "tauri-runtime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cce18d43f80d4aba3aa8a0c953bbe835f3d0f2370aca75e8dbb14bd4bab27958" +checksum = "2274ef891ccc0a8d318deffa9d70053f947664d12d58b9c0d1ae5e89237e01f7" dependencies = [ "dpi", "gtk", - "http 1.1.0", + "http", "jni", "raw-window-handle", "serde", "serde_json", - "tauri-utils 2.1.0", - "thiserror 2.0.3", + "tauri-utils", + "thiserror 2.0.11", "url", "windows 0.58.0", ] [[package]] name = "tauri-runtime-wry" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f442a38863e10129ffe2cec7bd09c2dcf8a098a3a27801a476a304d5bb991d2" +checksum = "3707b40711d3b9f6519150869e358ffbde7c57567fb9b5a8b51150606939b2a0" dependencies = [ "gtk", - "http 1.1.0", + "http", "jni", "log", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "percent-encoding", "raw-window-handle", "softbuffer", "tao", "tauri-runtime", - "tauri-utils 2.1.0", + "tauri-utils", "url", "webkit2gtk", "webview2-com", @@ -9969,57 +5604,24 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.6.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2826db448309d382dac14d520f0c0a40839b87b57b977e59cf5f296b3ace6a93" +checksum = "96fb10e7cc97456b2d5b9c03e335b5de5da982039a303a20d10006885e4523a0" dependencies = [ - "aes-gcm", - "ctor", - "dunce", - "getrandom 0.2.15", - "heck 0.5.0", - "html5ever", - "infer 0.13.0", - "json-patch 1.4.0", - "json5", - "kuchikiki", - "log", - "memchr", - "phf 0.11.2", - "schemars", - "semver", - "serde", - "serde_json", - "serde_with", - "serialize-to-javascript", - "thiserror 1.0.69", - "toml 0.7.8", - "url", - "windows-version", -] - -[[package]] -name = "tauri-utils" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9271a88f99b4adea0dc71d0baca4505475a0bbd139fb135f62958721aaa8fe54" -dependencies = [ - "aes-gcm", "brotli", "cargo_metadata", "ctor", "dunce", - "getrandom 0.2.15", "glob", "html5ever", - "http 1.1.0", - "infer 0.16.0", - "json-patch 3.0.1", + "http", + "infer", + "json-patch", "json5", "kuchikiki", "log", "memchr", - "phf 0.11.2", + "phf 0.11.3", "proc-macro2", "quote", "regex", @@ -10029,10 +5631,9 @@ dependencies = [ "serde-untagged", "serde_json", "serde_with", - "serialize-to-javascript", "swift-rs", - "thiserror 2.0.3", - "toml 0.8.19", + "thiserror 2.0.11", + "toml 0.8.20", "url", "urlpattern", "uuid", @@ -10073,14 +5674,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.14.0" +version = "3.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" dependencies = [ "cfg-if", - "fastrand 2.2.0", + "fastrand 2.3.0", + "getrandom 0.3.1", "once_cell", - "rustix 0.38.41", + "rustix 0.38.44", "windows-sys 0.59.0", ] @@ -10095,25 +5697,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal_size" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" -dependencies = [ - "rustix 0.37.27", - "windows-sys 0.48.0", -] - [[package]] name = "textwrap" version = "0.11.0" @@ -10123,18 +5706,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "textwrap" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" -dependencies = [ - "smawk", - "terminal_size", - "unicode-linebreak", - "unicode-width", -] - [[package]] name = "thin-slice" version = "0.1.1" @@ -10152,11 +5723,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.3" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.3", + "thiserror-impl 2.0.11", ] [[package]] @@ -10167,18 +5738,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -10194,9 +5765,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa 1.0.14", @@ -10217,9 +5788,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -10234,32 +5805,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tiny-skia" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "bytemuck", - "cfg-if", - "log", - "png", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - [[package]] name = "tinystr" version = "0.7.6" @@ -10272,9 +5817,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -10287,17 +5832,17 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.2", + "mio", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2 0.5.8", "tokio-macros", "tracing", "windows-sys 0.52.0", @@ -10305,13 +5850,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -10324,16 +5869,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.25.0" @@ -10347,48 +5882,22 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.19", - "rustls-pki-types", + "rustls 0.23.23", "tokio", ] -[[package]] -name = "tokio-stream" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite 0.24.0", -] - [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", - "futures-io", "futures-sink", "pin-project-lite", "tokio", @@ -10404,7 +5913,7 @@ dependencies = [ "bytes", "futures-core", "futures-sink", - "http 1.1.0", + "http", "httparse", "rand 0.8.5", "ring", @@ -10428,15 +5937,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ - "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.22", + "toml_edit 0.22.24", ] [[package]] @@ -10454,7 +5962,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -10467,53 +5975,37 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.1", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.6.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.20", + "winnow 0.7.3", ] [[package]] name = "tower" -version = "0.4.13" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 0.1.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -10534,7 +6026,6 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -10548,7 +6039,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -10562,22 +6053,23 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.19.2" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d48a05076dd272615d03033bf04f480199f7d1b66a8ac64d75c625fc4a70c06b" +checksum = "eadd75f5002e2513eaa19b2365f533090cc3e93abd38788452d9ea85cff7b48a" dependencies = [ - "core-graphics 0.24.0", "crossbeam-channel", - "dirs 5.0.1", + "dirs 6.0.0", "libappindicator", "muda", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.6.0", + "objc2-app-kit 0.3.0", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.0", "once_cell", "png", "serde", - "thiserror 1.0.69", + "thiserror 2.0.11", "windows-sys 0.59.0", ] @@ -10587,74 +6079,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "ttf-parser" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a" -dependencies = [ - "core_maths", -] - -[[package]] -name = "tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.1.0", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.22.4", - "rustls-native-certs 0.7.3", - "rustls-pki-types", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", -] - -[[package]] -name = "tungstenite" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.1.0", - "httparse", - "log", - "rand 0.8.5", - "sha1", - "thiserror 1.0.69", - "utf-8", -] - -[[package]] -name = "twofish" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78e83a30223c757c3947cd144a31014ff04298d8719ae10d03c31c0448c8013" -dependencies = [ - "cipher", -] - -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "static_assertions", -] - [[package]] name = "typeid" version = "1.0.2" @@ -10663,24 +6087,9 @@ checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "typewit" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51dbd25812f740f45e2a9769f84711982e000483b13b73a8a1852e092abac8c" -dependencies = [ - "typewit_proc_macros", -] - -[[package]] -name = "typewit_proc_macros" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36a83ea2b3c704935a01b4642946aadd445cea40b10935e3f8bd8052b8193d6" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" @@ -10699,24 +6108,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "uname" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8" -dependencies = [ - "libc", -] - -[[package]] -name = "uncased" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" -dependencies = [ - "version_check", -] - [[package]] name = "unic-char-property" version = "0.9.0" @@ -10758,53 +6149,11 @@ dependencies = [ "unic-common", ] -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" - -[[package]] -name = "unicode-bidi-mirroring" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64af057ad7466495ca113126be61838d8af947f41d93a949980b2389a118082f" - -[[package]] -name = "unicode-ccc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260bc6647b3893a9a90668360803a15f96b85a5257b1c3a0c3daf6ae2496de42" - -[[package]] -name = "unicode-id-start" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f322b60f6b9736017344fa0635d64be2f458fbc04eef65f6be22976dd1ffd5b" - [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "unicode-linebreak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" - -[[package]] -name = "unicode-properties" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" - -[[package]] -name = "unicode-script" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "unicode-segmentation" @@ -10812,63 +6161,18 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" -[[package]] -name = "unicode-vo" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" - [[package]] name = "unicode-width" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - [[package]] name = "untrusted" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "ureq" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a" -dependencies = [ - "base64 0.22.1", - "flate2", - "log", - "once_cell", - "rustls 0.23.19", - "rustls-pki-types", - "socks", - "url", - "webpki-roots 0.26.7", -] - [[package]] name = "url" version = "2.5.4" @@ -10881,12 +6185,6 @@ dependencies = [ "serde", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "urlpattern" version = "0.3.0" @@ -10899,33 +6197,6 @@ dependencies = [ "url", ] -[[package]] -name = "usvg" -version = "0.43.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6803057b5cbb426e9fb8ce2216f3a9b4ca1dd2c705ba3cbebc13006e437735fd" -dependencies = [ - "base64 0.22.1", - "data-url", - "flate2", - "fontdb", - "imagesize", - "kurbo", - "log", - "pico-args", - "roxmltree", - "rustybuzz", - "simplecss", - "siphasher 1.0.1", - "strict-num", - "svgtypes", - "tiny-skia-path", - "unicode-bidi", - "unicode-script", - "unicode-vo", - "xmlwriter", -] - [[package]] name = "utf-8" version = "0.7.6" @@ -10950,32 +6221,14 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - [[package]] name = "uuid" -version = "1.11.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "93d59ca99a559661b96bf898d8fce28ed87935fd2bea9f05983c1464dd6c71b1" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.1", "serde", - "sha1_smol", -] - -[[package]] -name = "v_frame" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" -dependencies = [ - "aligned-vec", - "num-traits", - "wasm-bindgen", ] [[package]] @@ -10983,36 +6236,6 @@ name = "value-bag" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" -dependencies = [ - "value-bag-serde1", - "value-bag-sval2", -] - -[[package]] -name = "value-bag-serde1" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb773bd36fd59c7ca6e336c94454d9c66386416734817927ac93d81cb3c5b0b" -dependencies = [ - "erased-serde", - "serde", - "serde_fmt", -] - -[[package]] -name = "value-bag-sval2" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a916a702cac43a88694c97657d449775667bcd14b70419441d05b7fea4a83a" -dependencies = [ - "sval", - "sval_buffer", - "sval_dynamic", - "sval_fmt", - "sval_json", - "sval_ref", - "sval_serde", -] [[package]] name = "vcpkg" @@ -11038,18 +6261,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "vlq" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65dd7eed29412da847b0f78bcec0ac98588165988a8cfe41d4ea1d429f8ccfff" - -[[package]] -name = "vsimd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" - [[package]] name = "vswhom" version = "0.1.0" @@ -11062,9 +6273,9 @@ dependencies = [ [[package]] name = "vswhom-sys" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150" dependencies = [ "cc", "libc", @@ -11108,48 +6319,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasm-bindgen" -version = "0.2.95" +name = "wasi" +version = "0.13.3+wasi-0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11157,22 +6378,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" @@ -11189,13 +6413,13 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" +checksum = "b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf" dependencies = [ "cc", "downcast-rs", - "rustix 0.38.41", + "rustix 0.38.44", "scoped-tls", "smallvec", "wayland-sys", @@ -11203,23 +6427,23 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" +checksum = "c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f" dependencies = [ - "bitflags 2.6.0", - "rustix 0.38.41", + "bitflags 2.8.0", + "rustix 0.38.44", "wayland-backend", "wayland-scanner", ] [[package]] name = "wayland-protocols" -version = "0.32.5" +version = "0.32.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" +checksum = "0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -11227,20 +6451,20 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" +checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" dependencies = [ "proc-macro2", - "quick-xml 0.36.2", + "quick-xml 0.37.2", "quote", ] [[package]] name = "wayland-sys" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" +checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ "dlib", "log", @@ -11249,9 +6473,19 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -11303,24 +6537,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" dependencies = [ "rustls-pki-types", ] [[package]] name = "webview2-com" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" +checksum = "823e7ebcfaea51e78f72c87fc3b65a1e602c321f407a0b36dbb327d7bb7cd921" dependencies = [ "webview2-com-macros", "webview2-com-sys", @@ -11338,14 +6566,14 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] name = "webview2-com-sys" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" +checksum = "7a82bce72db6e5ee83c68b5de1e2cd6ea195b9fbff91cb37df5884cbe3222df4" dependencies = [ "thiserror 1.0.69", "windows 0.58.0", @@ -11366,7 +6594,7 @@ checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" dependencies = [ "either", "home", - "rustix 0.38.41", + "rustix 0.38.44", "winsafe", ] @@ -11409,13 +6637,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window-vibrancy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" +checksum = "831ad7678290beae36be6f9fad9234139c7f00f3b536347de7745621716be82d" dependencies = [ - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "raw-window-handle", "windows-sys 0.59.0", "windows-version", @@ -11491,7 +6719,7 @@ dependencies = [ "windows-implement 0.58.0", "windows-interface 0.58.0", "windows-result 0.2.0", - "windows-strings 0.1.0", + "windows-strings", "windows-targets 0.52.6", ] @@ -11503,7 +6731,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -11514,7 +6742,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -11525,7 +6753,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -11536,9 +6764,15 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + [[package]] name = "windows-registry" version = "0.2.0" @@ -11546,18 +6780,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-registry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafa604f2104cf5ae2cc2db1dee84b7e6a5d11b05f737b60def0ffdc398cbc0a" -dependencies = [ - "windows-result 0.2.0", - "windows-strings 0.2.0", + "windows-strings", "windows-targets 0.52.6", ] @@ -11600,15 +6823,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-strings" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978d65aedf914c664c510d9de43c8fd85ca745eaff1ed53edf409b479e441663" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -11693,11 +6907,11 @@ dependencies = [ [[package]] name = "windows-version" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515" +checksum = "7bfbcc4996dd183ff1376a20ade1242da0d2dcaff83cc76710a588d24fd4c5db" dependencies = [ - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -11843,23 +7057,13 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.20" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winreg" version = "0.52.0" @@ -11876,6 +7080,15 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "write16" version = "1.0.0" @@ -11890,12 +7103,12 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wry" -version = "0.47.2" +version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ce51277d65170f6379d8cda935c80e3c2d1f0ff712a123c8bddb11b31a4b73" +checksum = "a2e33c08b174442ff80d5c791020696f9f8b4e4a87b8cfc7494aad6167ec44e1" dependencies = [ "base64 0.22.1", - "block2", + "block2 0.5.1", "cookie", "crossbeam-channel", "dpi", @@ -11903,15 +7116,15 @@ dependencies = [ "gdkx11", "gtk", "html5ever", - "http 1.1.0", + "http", "javascriptcore-rs", "jni", "kuchikiki", "libc", "ndk", - "objc2", - "objc2-app-kit", - "objc2-foundation", + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", "objc2-ui-kit", "objc2-web-kit", "once_cell", @@ -11920,7 +7133,7 @@ dependencies = [ "sha2", "soup3", "tao-macros", - "thiserror 1.0.69", + "thiserror 2.0.11", "url", "webkit2gtk", "webkit2gtk-sys", @@ -11968,7 +7181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" dependencies = [ "gethostname 0.4.3", - "rustix 0.38.41", + "rustix 0.38.44", "x11rb-protocol", ] @@ -11978,58 +7191,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" -[[package]] -name = "x25519-dalek" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" -dependencies = [ - "curve25519-dalek", - "rand_core 0.6.4", - "serde", - "zeroize", -] - -[[package]] -name = "x509" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3cec94c3999f31341553f358ef55f65fc031291a022cd42ec0ce7219560c76" -dependencies = [ - "chrono", - "cookie-factory", -] - -[[package]] -name = "x509-certificate" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66534846dec7a11d7c50a74b7cdb208b9a581cad890b7866430d438455847c85" -dependencies = [ - "bcder", - "bytes", - "chrono", - "der 0.7.9", - "hex", - "pem", - "ring", - "signature 2.2.0", - "spki 0.7.3", - "thiserror 1.0.69", - "zeroize", -] - -[[package]] -name = "xattr" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" -dependencies = [ - "libc", - "linux-raw-sys 0.4.14", - "rustix 0.38.41", -] - [[package]] name = "xdg" version = "2.5.2" @@ -12046,45 +7207,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "xml-rs" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" - -[[package]] -name = "xmlparser" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" - -[[package]] -name = "xmlwriter" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" - -[[package]] -name = "xz2" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" -dependencies = [ - "lzma-sys", -] - -[[package]] -name = "yansi" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" - -[[package]] -name = "yasna" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" - [[package]] name = "yoke" version = "0.7.5" @@ -12105,8 +7227,8 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", - "synstructure 0.13.1", + "syn 2.0.98", + "synstructure", ] [[package]] @@ -12152,11 +7274,11 @@ dependencies = [ [[package]] name = "zbus" -version = "4.4.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" +checksum = "59c333f648ea1b647bc95dc1d34807c8e25ed7a6feff3394034dc4776054b236" dependencies = [ - "async-broadcast 0.7.1", + "async-broadcast 0.7.2", "async-executor", "async-fs 2.1.2", "async-io 2.4.0", @@ -12167,40 +7289,9 @@ dependencies = [ "async-trait", "blocking", "enumflags2", - "event-listener 5.3.1", + "event-listener 5.4.0", "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix 0.29.0", - "ordered-stream", - "rand 0.8.5", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "windows-sys 0.52.0", - "xdg-home", - "zbus_macros 4.4.0", - "zbus_names 3.0.0", - "zvariant 4.2.0", -] - -[[package]] -name = "zbus" -version = "5.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1162094dc63b1629fcc44150bcceeaa80798cd28bcbe7fa987b65a034c258608" -dependencies = [ - "async-broadcast 0.7.1", - "async-recursion", - "async-trait", - "enumflags2", - "event-listener 5.3.1", - "futures-core", - "futures-util", + "futures-lite 2.6.0", "hex", "nix 0.29.0", "ordered-stream", @@ -12211,11 +7302,11 @@ dependencies = [ "tracing", "uds_windows", "windows-sys 0.59.0", - "winnow 0.6.20", + "winnow 0.7.3", "xdg-home", - "zbus_macros 5.1.1", - "zbus_names 4.1.0", - "zvariant 5.1.0", + "zbus_macros 5.5.0", + "zbus_names 4.2.0", + "zvariant 5.4.0", ] [[package]] @@ -12234,30 +7325,17 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "4.4.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" +checksum = "f325ad10eb0d0a3eb060203494c3b7ec3162a01a59db75d2deee100339709fc0" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.89", - "zvariant_utils 2.1.0", -] - -[[package]] -name = "zbus_macros" -version = "5.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd2dcdce3e2727f7d74b7e33b5a89539b3cc31049562137faf7ae4eb86cd16d" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.89", - "zbus_names 4.1.0", - "zvariant 5.1.0", - "zvariant_utils 3.0.2", + "syn 2.0.98", + "zbus_names 4.2.0", + "zvariant 5.4.0", + "zvariant_utils 3.2.0", ] [[package]] @@ -12273,25 +7351,14 @@ dependencies = [ [[package]] name = "zbus_names" -version = "3.0.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "zvariant 4.2.0", -] - -[[package]] -name = "zbus_names" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856b7a38811f71846fd47856ceee8bccaec8399ff53fb370247e66081ace647b" -dependencies = [ - "serde", - "static_assertions", - "winnow 0.6.20", - "zvariant 5.1.0", + "winnow 0.7.3", + "zvariant 5.4.0", ] [[package]] @@ -12312,7 +7379,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.98", ] [[package]] @@ -12332,8 +7399,8 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", - "synstructure 0.13.1", + "syn 2.0.98", + "synstructure", ] [[package]] @@ -12341,20 +7408,6 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] [[package]] name = "zerovec" @@ -12375,113 +7428,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "byteorder", - "crc32fast", - "crossbeam-utils", - "flate2", -] - -[[package]] -name = "zip" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d52293fc86ea7cf13971b3bb81eb21683636e7ae24c729cdaf1b7c4157a352" -dependencies = [ - "arbitrary", - "crc32fast", - "crossbeam-utils", - "displaydoc", - "flate2", - "indexmap 2.6.0", - "memchr", - "thiserror 2.0.3", - "zopfli", -] - -[[package]] -name = "zip_structs" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce824a6bfffe8942820fa36d24973b7c83a40896749a42e33de0abdd11750ee5" -dependencies = [ - "byteorder", - "bytesize", - "thiserror 1.0.69", -] - -[[package]] -name = "zopfli" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" -dependencies = [ - "bumpalo", - "crc32fast", - "lockfree-object-pool", - "log", - "once_cell", - "simd-adler32", -] - -[[package]] -name = "zstd" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "zune-core" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" - -[[package]] -name = "zune-inflate" -version = "0.2.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "zune-jpeg" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16099418600b4d8f028622f73ff6e3deaabdff330fb9a2a131dea781ee8b0768" -dependencies = [ - "zune-core", + "syn 2.0.98", ] [[package]] @@ -12501,31 +7448,18 @@ dependencies = [ [[package]] name = "zvariant" -version = "4.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" -dependencies = [ - "endi", - "enumflags2", - "serde", - "static_assertions", - "zvariant_derive 4.2.0", -] - -[[package]] -name = "zvariant" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1200ee6ac32f1e5a312e455a949a4794855515d34f9909f4a3e082d14e1a56f" +checksum = "b2df9ee044893fcffbdc25de30546edef3e32341466811ca18421e3cd6c5a3ac" dependencies = [ "endi", "enumflags2", "serde", "static_assertions", "url", - "winnow 0.6.20", - "zvariant_derive 5.1.0", - "zvariant_utils 3.0.2", + "winnow 0.7.3", + "zvariant_derive 5.4.0", + "zvariant_utils 3.2.0", ] [[package]] @@ -12543,28 +7477,15 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "4.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" +checksum = "74170caa85b8b84cc4935f2d56a57c7a15ea6185ccdd7eadb57e6edd90f94b2f" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.89", - "zvariant_utils 2.1.0", -] - -[[package]] -name = "zvariant_derive" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687e3b97fae6c9104fbbd36c73d27d149abf04fb874e2efbd84838763daa8916" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.89", - "zvariant_utils 3.0.2", + "syn 2.0.98", + "zvariant_utils 3.2.0", ] [[package]] @@ -12580,25 +7501,14 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "2.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.89", -] - -[[package]] -name = "zvariant_utils" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20d1d011a38f12360e5fcccceeff5e2c42a8eb7f27f0dcba97a0862ede05c9c6" +checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" dependencies = [ "proc-macro2", "quote", "serde", "static_assertions", - "syn 2.0.89", - "winnow 0.6.20", + "syn 2.0.98", + "winnow 0.7.3", ] diff --git a/desktop/tauri/src-tauri/Cargo.toml b/desktop/tauri/src-tauri/Cargo.toml index c30303c5..98f0767b 100644 --- a/desktop/tauri/src-tauri/Cargo.toml +++ b/desktop/tauri/src-tauri/Cargo.toml @@ -12,21 +12,20 @@ rust-version = "1.64" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build = { version = "2.0.3", features = [] } +tauri-build = { version = "2.0.5", features = [] } [dependencies] # Tauri -tauri = { version = "2.1.1", features = ["tray-icon", "image-png", "config-json5", "devtools"] } -tauri-plugin-shell = "2.0.2" -tauri-plugin-dialog = "2.0.3" -tauri-plugin-clipboard-manager = "2.0.2" -tauri-plugin-os = "2.0.1" -tauri-plugin-single-instance = "2.0.1" -tauri-plugin-notification = "2.0.1" -tauri-plugin-log = "2.0.2" -tauri-plugin-window-state = "2.0.2" +tauri = { version = "2.2.5", features = ["tray-icon", "image-png", "config-json5", "devtools"] } +tauri-plugin-shell = "2.2.0" +tauri-plugin-dialog = "2.2.0" +tauri-plugin-clipboard-manager = "2.1.11" +tauri-plugin-os = "2.2.0" +tauri-plugin-single-instance = "2.2.1" +tauri-plugin-notification = "2.2.1" +tauri-plugin-log = "2.2.1" +tauri-plugin-window-state = "2.2.1" -tauri-cli = "2.1.0" clap_lex = "0.7.2" # General diff --git a/desktop/tauri/src-tauri/gen/schemas/acl-manifests.json b/desktop/tauri/src-tauri/gen/schemas/acl-manifests.json index 1d974eb0..e73a9e19 100644 --- a/desktop/tauri/src-tauri/gen/schemas/acl-manifests.json +++ b/desktop/tauri/src-tauri/gen/schemas/acl-manifests.json @@ -1 +1 @@ -{"clipboard-manager":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n","permissions":[]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-read-image":{"identifier":"allow-read-image","description":"Enables the read_image command without any pre-configured scope.","commands":{"allow":["read_image"],"deny":[]}},"allow-read-text":{"identifier":"allow-read-text","description":"Enables the read_text command without any pre-configured scope.","commands":{"allow":["read_text"],"deny":[]}},"allow-write-html":{"identifier":"allow-write-html","description":"Enables the write_html command without any pre-configured scope.","commands":{"allow":["write_html"],"deny":[]}},"allow-write-image":{"identifier":"allow-write-image","description":"Enables the write_image command without any pre-configured scope.","commands":{"allow":["write_image"],"deny":[]}},"allow-write-text":{"identifier":"allow-write-text","description":"Enables the write_text command without any pre-configured scope.","commands":{"allow":["write_text"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-read-image":{"identifier":"deny-read-image","description":"Denies the read_image command without any pre-configured scope.","commands":{"allow":[],"deny":["read_image"]}},"deny-read-text":{"identifier":"deny-read-text","description":"Denies the read_text command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text"]}},"deny-write-html":{"identifier":"deny-write-html","description":"Denies the write_html command without any pre-configured scope.","commands":{"allow":[],"deny":["write_html"]}},"deny-write-image":{"identifier":"deny-write-image","description":"Denies the write_image command without any pre-configured scope.","commands":{"allow":[],"deny":["write_image"]}},"deny-write-text":{"identifier":"deny-write-text","description":"Denies the write_text command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"dialog":{"default_permission":{"identifier":"default","description":"This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n","permissions":["allow-ask","allow-confirm","allow-message","allow-save","allow-open"]},"permissions":{"allow-ask":{"identifier":"allow-ask","description":"Enables the ask command without any pre-configured scope.","commands":{"allow":["ask"],"deny":[]}},"allow-confirm":{"identifier":"allow-confirm","description":"Enables the confirm command without any pre-configured scope.","commands":{"allow":["confirm"],"deny":[]}},"allow-message":{"identifier":"allow-message","description":"Enables the message command without any pre-configured scope.","commands":{"allow":["message"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"deny-ask":{"identifier":"deny-ask","description":"Denies the ask command without any pre-configured scope.","commands":{"allow":[],"deny":["ask"]}},"deny-confirm":{"identifier":"deny-confirm","description":"Denies the confirm command without any pre-configured scope.","commands":{"allow":[],"deny":["confirm"]}},"deny-message":{"identifier":"deny-message","description":"Denies the message command without any pre-configured scope.","commands":{"allow":[],"deny":["message"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}}},"permission_sets":{},"global_scope_schema":null},"log":{"default_permission":{"identifier":"default","description":"Allows the log command","permissions":["allow-log"]},"permissions":{"allow-log":{"identifier":"allow-log","description":"Enables the log command without any pre-configured scope.","commands":{"allow":["log"],"deny":[]}},"deny-log":{"identifier":"deny-log","description":"Denies the log command without any pre-configured scope.","commands":{"allow":[],"deny":["log"]}}},"permission_sets":{},"global_scope_schema":null},"notification":{"default_permission":{"identifier":"default","description":"This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n","permissions":["allow-is-permission-granted","allow-request-permission","allow-notify","allow-register-action-types","allow-register-listener","allow-cancel","allow-get-pending","allow-remove-active","allow-get-active","allow-check-permissions","allow-show","allow-batch","allow-list-channels","allow-delete-channel","allow-create-channel","allow-permission-state"]},"permissions":{"allow-batch":{"identifier":"allow-batch","description":"Enables the batch command without any pre-configured scope.","commands":{"allow":["batch"],"deny":[]}},"allow-cancel":{"identifier":"allow-cancel","description":"Enables the cancel command without any pre-configured scope.","commands":{"allow":["cancel"],"deny":[]}},"allow-check-permissions":{"identifier":"allow-check-permissions","description":"Enables the check_permissions command without any pre-configured scope.","commands":{"allow":["check_permissions"],"deny":[]}},"allow-create-channel":{"identifier":"allow-create-channel","description":"Enables the create_channel command without any pre-configured scope.","commands":{"allow":["create_channel"],"deny":[]}},"allow-delete-channel":{"identifier":"allow-delete-channel","description":"Enables the delete_channel command without any pre-configured scope.","commands":{"allow":["delete_channel"],"deny":[]}},"allow-get-active":{"identifier":"allow-get-active","description":"Enables the get_active command without any pre-configured scope.","commands":{"allow":["get_active"],"deny":[]}},"allow-get-pending":{"identifier":"allow-get-pending","description":"Enables the get_pending command without any pre-configured scope.","commands":{"allow":["get_pending"],"deny":[]}},"allow-is-permission-granted":{"identifier":"allow-is-permission-granted","description":"Enables the is_permission_granted command without any pre-configured scope.","commands":{"allow":["is_permission_granted"],"deny":[]}},"allow-list-channels":{"identifier":"allow-list-channels","description":"Enables the list_channels command without any pre-configured scope.","commands":{"allow":["list_channels"],"deny":[]}},"allow-notify":{"identifier":"allow-notify","description":"Enables the notify command without any pre-configured scope.","commands":{"allow":["notify"],"deny":[]}},"allow-permission-state":{"identifier":"allow-permission-state","description":"Enables the permission_state command without any pre-configured scope.","commands":{"allow":["permission_state"],"deny":[]}},"allow-register-action-types":{"identifier":"allow-register-action-types","description":"Enables the register_action_types command without any pre-configured scope.","commands":{"allow":["register_action_types"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-active":{"identifier":"allow-remove-active","description":"Enables the remove_active command without any pre-configured scope.","commands":{"allow":["remove_active"],"deny":[]}},"allow-request-permission":{"identifier":"allow-request-permission","description":"Enables the request_permission command without any pre-configured scope.","commands":{"allow":["request_permission"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"deny-batch":{"identifier":"deny-batch","description":"Denies the batch command without any pre-configured scope.","commands":{"allow":[],"deny":["batch"]}},"deny-cancel":{"identifier":"deny-cancel","description":"Denies the cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["cancel"]}},"deny-check-permissions":{"identifier":"deny-check-permissions","description":"Denies the check_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["check_permissions"]}},"deny-create-channel":{"identifier":"deny-create-channel","description":"Denies the create_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["create_channel"]}},"deny-delete-channel":{"identifier":"deny-delete-channel","description":"Denies the delete_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["delete_channel"]}},"deny-get-active":{"identifier":"deny-get-active","description":"Denies the get_active command without any pre-configured scope.","commands":{"allow":[],"deny":["get_active"]}},"deny-get-pending":{"identifier":"deny-get-pending","description":"Denies the get_pending command without any pre-configured scope.","commands":{"allow":[],"deny":["get_pending"]}},"deny-is-permission-granted":{"identifier":"deny-is-permission-granted","description":"Denies the is_permission_granted command without any pre-configured scope.","commands":{"allow":[],"deny":["is_permission_granted"]}},"deny-list-channels":{"identifier":"deny-list-channels","description":"Denies the list_channels command without any pre-configured scope.","commands":{"allow":[],"deny":["list_channels"]}},"deny-notify":{"identifier":"deny-notify","description":"Denies the notify command without any pre-configured scope.","commands":{"allow":[],"deny":["notify"]}},"deny-permission-state":{"identifier":"deny-permission-state","description":"Denies the permission_state command without any pre-configured scope.","commands":{"allow":[],"deny":["permission_state"]}},"deny-register-action-types":{"identifier":"deny-register-action-types","description":"Denies the register_action_types command without any pre-configured scope.","commands":{"allow":[],"deny":["register_action_types"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-active":{"identifier":"deny-remove-active","description":"Denies the remove_active command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_active"]}},"deny-request-permission":{"identifier":"deny-request-permission","description":"Denies the request_permission command without any pre-configured scope.","commands":{"allow":[],"deny":["request_permission"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}}},"permission_sets":{},"global_scope_schema":null},"os":{"default_permission":{"identifier":"default","description":"This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n","permissions":["allow-arch","allow-exe-extension","allow-family","allow-locale","allow-os-type","allow-platform","allow-version"]},"permissions":{"allow-arch":{"identifier":"allow-arch","description":"Enables the arch command without any pre-configured scope.","commands":{"allow":["arch"],"deny":[]}},"allow-exe-extension":{"identifier":"allow-exe-extension","description":"Enables the exe_extension command without any pre-configured scope.","commands":{"allow":["exe_extension"],"deny":[]}},"allow-family":{"identifier":"allow-family","description":"Enables the family command without any pre-configured scope.","commands":{"allow":["family"],"deny":[]}},"allow-hostname":{"identifier":"allow-hostname","description":"Enables the hostname command without any pre-configured scope.","commands":{"allow":["hostname"],"deny":[]}},"allow-locale":{"identifier":"allow-locale","description":"Enables the locale command without any pre-configured scope.","commands":{"allow":["locale"],"deny":[]}},"allow-os-type":{"identifier":"allow-os-type","description":"Enables the os_type command without any pre-configured scope.","commands":{"allow":["os_type"],"deny":[]}},"allow-platform":{"identifier":"allow-platform","description":"Enables the platform command without any pre-configured scope.","commands":{"allow":["platform"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-arch":{"identifier":"deny-arch","description":"Denies the arch command without any pre-configured scope.","commands":{"allow":[],"deny":["arch"]}},"deny-exe-extension":{"identifier":"deny-exe-extension","description":"Denies the exe_extension command without any pre-configured scope.","commands":{"allow":[],"deny":["exe_extension"]}},"deny-family":{"identifier":"deny-family","description":"Denies the family command without any pre-configured scope.","commands":{"allow":[],"deny":["family"]}},"deny-hostname":{"identifier":"deny-hostname","description":"Denies the hostname command without any pre-configured scope.","commands":{"allow":[],"deny":["hostname"]}},"deny-locale":{"identifier":"deny-locale","description":"Denies the locale command without any pre-configured scope.","commands":{"allow":[],"deny":["locale"]}},"deny-os-type":{"identifier":"deny-os-type","description":"Denies the os_type command without any pre-configured scope.","commands":{"allow":[],"deny":["os_type"]}},"deny-platform":{"identifier":"deny-platform","description":"Denies the platform command without any pre-configured scope.","commands":{"allow":[],"deny":["platform"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"raw":{"default":false,"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","type":"boolean"},"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}},"window-state":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n","permissions":["allow-filename","allow-restore-state","allow-save-window-state"]},"permissions":{"allow-filename":{"identifier":"allow-filename","description":"Enables the filename command without any pre-configured scope.","commands":{"allow":["filename"],"deny":[]}},"allow-restore-state":{"identifier":"allow-restore-state","description":"Enables the restore_state command without any pre-configured scope.","commands":{"allow":["restore_state"],"deny":[]}},"allow-save-window-state":{"identifier":"allow-save-window-state","description":"Enables the save_window_state command without any pre-configured scope.","commands":{"allow":["save_window_state"],"deny":[]}},"deny-filename":{"identifier":"deny-filename","description":"Denies the filename command without any pre-configured scope.","commands":{"allow":[],"deny":["filename"]}},"deny-restore-state":{"identifier":"deny-restore-state","description":"Denies the restore_state command without any pre-configured scope.","commands":{"allow":[],"deny":["restore_state"]}},"deny-save-window-state":{"identifier":"deny-save-window-state","description":"Denies the save_window_state command without any pre-configured scope.","commands":{"allow":[],"deny":["save_window_state"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file +{"clipboard-manager":{"default_permission":{"identifier":"default","description":"No features are enabled by default, as we believe\nthe clipboard can be inherently dangerous and it is \napplication specific if read and/or write access is needed.\n\nClipboard interaction needs to be explicitly enabled.\n","permissions":[]},"permissions":{"allow-clear":{"identifier":"allow-clear","description":"Enables the clear command without any pre-configured scope.","commands":{"allow":["clear"],"deny":[]}},"allow-read-image":{"identifier":"allow-read-image","description":"Enables the read_image command without any pre-configured scope.","commands":{"allow":["read_image"],"deny":[]}},"allow-read-text":{"identifier":"allow-read-text","description":"Enables the read_text command without any pre-configured scope.","commands":{"allow":["read_text"],"deny":[]}},"allow-write-html":{"identifier":"allow-write-html","description":"Enables the write_html command without any pre-configured scope.","commands":{"allow":["write_html"],"deny":[]}},"allow-write-image":{"identifier":"allow-write-image","description":"Enables the write_image command without any pre-configured scope.","commands":{"allow":["write_image"],"deny":[]}},"allow-write-text":{"identifier":"allow-write-text","description":"Enables the write_text command without any pre-configured scope.","commands":{"allow":["write_text"],"deny":[]}},"deny-clear":{"identifier":"deny-clear","description":"Denies the clear command without any pre-configured scope.","commands":{"allow":[],"deny":["clear"]}},"deny-read-image":{"identifier":"deny-read-image","description":"Denies the read_image command without any pre-configured scope.","commands":{"allow":[],"deny":["read_image"]}},"deny-read-text":{"identifier":"deny-read-text","description":"Denies the read_text command without any pre-configured scope.","commands":{"allow":[],"deny":["read_text"]}},"deny-write-html":{"identifier":"deny-write-html","description":"Denies the write_html command without any pre-configured scope.","commands":{"allow":[],"deny":["write_html"]}},"deny-write-image":{"identifier":"deny-write-image","description":"Denies the write_image command without any pre-configured scope.","commands":{"allow":[],"deny":["write_image"]}},"deny-write-text":{"identifier":"deny-write-text","description":"Denies the write_text command without any pre-configured scope.","commands":{"allow":[],"deny":["write_text"]}}},"permission_sets":{},"global_scope_schema":null},"core":{"default_permission":{"identifier":"default","description":"Default core plugins set which includes:\n- 'core:path:default'\n- 'core:event:default'\n- 'core:window:default'\n- 'core:webview:default'\n- 'core:app:default'\n- 'core:image:default'\n- 'core:resources:default'\n- 'core:menu:default'\n- 'core:tray:default'\n","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"dialog":{"default_permission":{"identifier":"default","description":"This permission set configures the types of dialogs\navailable from the dialog plugin.\n\n#### Granted Permissions\n\nAll dialog types are enabled.\n\n\n","permissions":["allow-ask","allow-confirm","allow-message","allow-save","allow-open"]},"permissions":{"allow-ask":{"identifier":"allow-ask","description":"Enables the ask command without any pre-configured scope.","commands":{"allow":["ask"],"deny":[]}},"allow-confirm":{"identifier":"allow-confirm","description":"Enables the confirm command without any pre-configured scope.","commands":{"allow":["confirm"],"deny":[]}},"allow-message":{"identifier":"allow-message","description":"Enables the message command without any pre-configured scope.","commands":{"allow":["message"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-save":{"identifier":"allow-save","description":"Enables the save command without any pre-configured scope.","commands":{"allow":["save"],"deny":[]}},"deny-ask":{"identifier":"deny-ask","description":"Denies the ask command without any pre-configured scope.","commands":{"allow":[],"deny":["ask"]}},"deny-confirm":{"identifier":"deny-confirm","description":"Denies the confirm command without any pre-configured scope.","commands":{"allow":[],"deny":["confirm"]}},"deny-message":{"identifier":"deny-message","description":"Denies the message command without any pre-configured scope.","commands":{"allow":[],"deny":["message"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-save":{"identifier":"deny-save","description":"Denies the save command without any pre-configured scope.","commands":{"allow":[],"deny":["save"]}}},"permission_sets":{},"global_scope_schema":null},"log":{"default_permission":{"identifier":"default","description":"Allows the log command","permissions":["allow-log"]},"permissions":{"allow-log":{"identifier":"allow-log","description":"Enables the log command without any pre-configured scope.","commands":{"allow":["log"],"deny":[]}},"deny-log":{"identifier":"deny-log","description":"Denies the log command without any pre-configured scope.","commands":{"allow":[],"deny":["log"]}}},"permission_sets":{},"global_scope_schema":null},"notification":{"default_permission":{"identifier":"default","description":"This permission set configures which\nnotification features are by default exposed.\n\n#### Granted Permissions\n\nIt allows all notification related features.\n\n","permissions":["allow-is-permission-granted","allow-request-permission","allow-notify","allow-register-action-types","allow-register-listener","allow-cancel","allow-get-pending","allow-remove-active","allow-get-active","allow-check-permissions","allow-show","allow-batch","allow-list-channels","allow-delete-channel","allow-create-channel","allow-permission-state"]},"permissions":{"allow-batch":{"identifier":"allow-batch","description":"Enables the batch command without any pre-configured scope.","commands":{"allow":["batch"],"deny":[]}},"allow-cancel":{"identifier":"allow-cancel","description":"Enables the cancel command without any pre-configured scope.","commands":{"allow":["cancel"],"deny":[]}},"allow-check-permissions":{"identifier":"allow-check-permissions","description":"Enables the check_permissions command without any pre-configured scope.","commands":{"allow":["check_permissions"],"deny":[]}},"allow-create-channel":{"identifier":"allow-create-channel","description":"Enables the create_channel command without any pre-configured scope.","commands":{"allow":["create_channel"],"deny":[]}},"allow-delete-channel":{"identifier":"allow-delete-channel","description":"Enables the delete_channel command without any pre-configured scope.","commands":{"allow":["delete_channel"],"deny":[]}},"allow-get-active":{"identifier":"allow-get-active","description":"Enables the get_active command without any pre-configured scope.","commands":{"allow":["get_active"],"deny":[]}},"allow-get-pending":{"identifier":"allow-get-pending","description":"Enables the get_pending command without any pre-configured scope.","commands":{"allow":["get_pending"],"deny":[]}},"allow-is-permission-granted":{"identifier":"allow-is-permission-granted","description":"Enables the is_permission_granted command without any pre-configured scope.","commands":{"allow":["is_permission_granted"],"deny":[]}},"allow-list-channels":{"identifier":"allow-list-channels","description":"Enables the list_channels command without any pre-configured scope.","commands":{"allow":["list_channels"],"deny":[]}},"allow-notify":{"identifier":"allow-notify","description":"Enables the notify command without any pre-configured scope.","commands":{"allow":["notify"],"deny":[]}},"allow-permission-state":{"identifier":"allow-permission-state","description":"Enables the permission_state command without any pre-configured scope.","commands":{"allow":["permission_state"],"deny":[]}},"allow-register-action-types":{"identifier":"allow-register-action-types","description":"Enables the register_action_types command without any pre-configured scope.","commands":{"allow":["register_action_types"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-active":{"identifier":"allow-remove-active","description":"Enables the remove_active command without any pre-configured scope.","commands":{"allow":["remove_active"],"deny":[]}},"allow-request-permission":{"identifier":"allow-request-permission","description":"Enables the request_permission command without any pre-configured scope.","commands":{"allow":["request_permission"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"deny-batch":{"identifier":"deny-batch","description":"Denies the batch command without any pre-configured scope.","commands":{"allow":[],"deny":["batch"]}},"deny-cancel":{"identifier":"deny-cancel","description":"Denies the cancel command without any pre-configured scope.","commands":{"allow":[],"deny":["cancel"]}},"deny-check-permissions":{"identifier":"deny-check-permissions","description":"Denies the check_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["check_permissions"]}},"deny-create-channel":{"identifier":"deny-create-channel","description":"Denies the create_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["create_channel"]}},"deny-delete-channel":{"identifier":"deny-delete-channel","description":"Denies the delete_channel command without any pre-configured scope.","commands":{"allow":[],"deny":["delete_channel"]}},"deny-get-active":{"identifier":"deny-get-active","description":"Denies the get_active command without any pre-configured scope.","commands":{"allow":[],"deny":["get_active"]}},"deny-get-pending":{"identifier":"deny-get-pending","description":"Denies the get_pending command without any pre-configured scope.","commands":{"allow":[],"deny":["get_pending"]}},"deny-is-permission-granted":{"identifier":"deny-is-permission-granted","description":"Denies the is_permission_granted command without any pre-configured scope.","commands":{"allow":[],"deny":["is_permission_granted"]}},"deny-list-channels":{"identifier":"deny-list-channels","description":"Denies the list_channels command without any pre-configured scope.","commands":{"allow":[],"deny":["list_channels"]}},"deny-notify":{"identifier":"deny-notify","description":"Denies the notify command without any pre-configured scope.","commands":{"allow":[],"deny":["notify"]}},"deny-permission-state":{"identifier":"deny-permission-state","description":"Denies the permission_state command without any pre-configured scope.","commands":{"allow":[],"deny":["permission_state"]}},"deny-register-action-types":{"identifier":"deny-register-action-types","description":"Denies the register_action_types command without any pre-configured scope.","commands":{"allow":[],"deny":["register_action_types"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-active":{"identifier":"deny-remove-active","description":"Denies the remove_active command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_active"]}},"deny-request-permission":{"identifier":"deny-request-permission","description":"Denies the request_permission command without any pre-configured scope.","commands":{"allow":[],"deny":["request_permission"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}}},"permission_sets":{},"global_scope_schema":null},"os":{"default_permission":{"identifier":"default","description":"This permission set configures which\noperating system information are available\nto gather from the frontend.\n\n#### Granted Permissions\n\nAll information except the host name are available.\n\n","permissions":["allow-arch","allow-exe-extension","allow-family","allow-locale","allow-os-type","allow-platform","allow-version"]},"permissions":{"allow-arch":{"identifier":"allow-arch","description":"Enables the arch command without any pre-configured scope.","commands":{"allow":["arch"],"deny":[]}},"allow-exe-extension":{"identifier":"allow-exe-extension","description":"Enables the exe_extension command without any pre-configured scope.","commands":{"allow":["exe_extension"],"deny":[]}},"allow-family":{"identifier":"allow-family","description":"Enables the family command without any pre-configured scope.","commands":{"allow":["family"],"deny":[]}},"allow-hostname":{"identifier":"allow-hostname","description":"Enables the hostname command without any pre-configured scope.","commands":{"allow":["hostname"],"deny":[]}},"allow-locale":{"identifier":"allow-locale","description":"Enables the locale command without any pre-configured scope.","commands":{"allow":["locale"],"deny":[]}},"allow-os-type":{"identifier":"allow-os-type","description":"Enables the os_type command without any pre-configured scope.","commands":{"allow":["os_type"],"deny":[]}},"allow-platform":{"identifier":"allow-platform","description":"Enables the platform command without any pre-configured scope.","commands":{"allow":["platform"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-arch":{"identifier":"deny-arch","description":"Denies the arch command without any pre-configured scope.","commands":{"allow":[],"deny":["arch"]}},"deny-exe-extension":{"identifier":"deny-exe-extension","description":"Denies the exe_extension command without any pre-configured scope.","commands":{"allow":[],"deny":["exe_extension"]}},"deny-family":{"identifier":"deny-family","description":"Denies the family command without any pre-configured scope.","commands":{"allow":[],"deny":["family"]}},"deny-hostname":{"identifier":"deny-hostname","description":"Denies the hostname command without any pre-configured scope.","commands":{"allow":[],"deny":["hostname"]}},"deny-locale":{"identifier":"deny-locale","description":"Denies the locale command without any pre-configured scope.","commands":{"allow":[],"deny":["locale"]}},"deny-os-type":{"identifier":"deny-os-type","description":"Denies the os_type command without any pre-configured scope.","commands":{"allow":[],"deny":["os_type"]}},"deny-platform":{"identifier":"deny-platform","description":"Denies the platform command without any pre-configured scope.","commands":{"allow":[],"deny":["platform"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"shell":{"default_permission":{"identifier":"default","description":"This permission set configures which\nshell functionality is exposed by default.\n\n#### Granted Permissions\n\nIt allows to use the `open` functionality without any specific\nscope pre-configured. It will allow opening `http(s)://`,\n`tel:` and `mailto:` links.\n","permissions":["allow-open"]},"permissions":{"allow-execute":{"identifier":"allow-execute","description":"Enables the execute command without any pre-configured scope.","commands":{"allow":["execute"],"deny":[]}},"allow-kill":{"identifier":"allow-kill","description":"Enables the kill command without any pre-configured scope.","commands":{"allow":["kill"],"deny":[]}},"allow-open":{"identifier":"allow-open","description":"Enables the open command without any pre-configured scope.","commands":{"allow":["open"],"deny":[]}},"allow-spawn":{"identifier":"allow-spawn","description":"Enables the spawn command without any pre-configured scope.","commands":{"allow":["spawn"],"deny":[]}},"allow-stdin-write":{"identifier":"allow-stdin-write","description":"Enables the stdin_write command without any pre-configured scope.","commands":{"allow":["stdin_write"],"deny":[]}},"deny-execute":{"identifier":"deny-execute","description":"Denies the execute command without any pre-configured scope.","commands":{"allow":[],"deny":["execute"]}},"deny-kill":{"identifier":"deny-kill","description":"Denies the kill command without any pre-configured scope.","commands":{"allow":[],"deny":["kill"]}},"deny-open":{"identifier":"deny-open","description":"Denies the open command without any pre-configured scope.","commands":{"allow":[],"deny":["open"]}},"deny-spawn":{"identifier":"deny-spawn","description":"Denies the spawn command without any pre-configured scope.","commands":{"allow":[],"deny":["spawn"]}},"deny-stdin-write":{"identifier":"deny-stdin-write","description":"Denies the stdin_write command without any pre-configured scope.","commands":{"allow":[],"deny":["stdin_write"]}}},"permission_sets":{},"global_scope_schema":{"$schema":"http://json-schema.org/draft-07/schema#","anyOf":[{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"cmd":{"description":"The command name. It can start with a variable that resolves to a system base directory. The variables are: `$AUDIO`, `$CACHE`, `$CONFIG`, `$DATA`, `$LOCALDATA`, `$DESKTOP`, `$DOCUMENT`, `$DOWNLOAD`, `$EXE`, `$FONT`, `$HOME`, `$PICTURE`, `$PUBLIC`, `$RUNTIME`, `$TEMPLATE`, `$VIDEO`, `$RESOURCE`, `$LOG`, `$TEMP`, `$APPCONFIG`, `$APPDATA`, `$APPLOCALDATA`, `$APPCACHE`, `$APPLOG`.","type":"string"},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"}},"required":["cmd","name"],"type":"object"},{"additionalProperties":false,"properties":{"args":{"allOf":[{"$ref":"#/definitions/ShellScopeEntryAllowedArgs"}],"description":"The allowed arguments for the command execution."},"name":{"description":"The name for this allowed shell command configuration.\n\nThis name will be used inside of the webview API to call this command along with any specified arguments.","type":"string"},"sidecar":{"description":"If this command is a sidecar command.","type":"boolean"}},"required":["name","sidecar"],"type":"object"}],"definitions":{"ShellScopeEntryAllowedArg":{"anyOf":[{"description":"A non-configurable argument that is passed to the command in the order it was specified.","type":"string"},{"additionalProperties":false,"description":"A variable that is set while calling the command from the webview API.","properties":{"raw":{"default":false,"description":"Marks the validator as a raw regex, meaning the plugin should not make any modification at runtime.\n\nThis means the regex will not match on the entire string by default, which might be exploited if your regex allow unexpected input to be considered valid. When using this option, make sure your regex is correct.","type":"boolean"},"validator":{"description":"[regex] validator to require passed values to conform to an expected input.\n\nThis will require the argument value passed to this variable to match the `validator` regex before it will be executed.\n\nThe regex string is by default surrounded by `^...$` to match the full string. For example the `https?://\\w+` regex would be registered as `^https?://\\w+$`.\n\n[regex]: ","type":"string"}},"required":["validator"],"type":"object"}],"description":"A command argument allowed to be executed by the webview API."},"ShellScopeEntryAllowedArgs":{"anyOf":[{"description":"Use a simple boolean to allow all or disable all arguments to this command configuration.","type":"boolean"},{"description":"A specific set of [`ShellScopeEntryAllowedArg`] that are valid to call for the command configuration.","items":{"$ref":"#/definitions/ShellScopeEntryAllowedArg"},"type":"array"}],"description":"A set of command arguments allowed to be executed by the webview API.\n\nA value of `true` will allow any arguments to be passed to the command. `false` will disable all arguments. A list of [`ShellScopeEntryAllowedArg`] will set those arguments as the only valid arguments to be passed to the attached command configuration."}},"description":"Shell scope entry.","title":"ShellScopeEntry"}},"window-state":{"default_permission":{"identifier":"default","description":"This permission set configures what kind of\noperations are available from the window state plugin.\n\n#### Granted Permissions\n\nAll operations are enabled by default.\n\n","permissions":["allow-filename","allow-restore-state","allow-save-window-state"]},"permissions":{"allow-filename":{"identifier":"allow-filename","description":"Enables the filename command without any pre-configured scope.","commands":{"allow":["filename"],"deny":[]}},"allow-restore-state":{"identifier":"allow-restore-state","description":"Enables the restore_state command without any pre-configured scope.","commands":{"allow":["restore_state"],"deny":[]}},"allow-save-window-state":{"identifier":"allow-save-window-state","description":"Enables the save_window_state command without any pre-configured scope.","commands":{"allow":["save_window_state"],"deny":[]}},"deny-filename":{"identifier":"deny-filename","description":"Denies the filename command without any pre-configured scope.","commands":{"allow":[],"deny":["filename"]}},"deny-restore-state":{"identifier":"deny-restore-state","description":"Denies the restore_state command without any pre-configured scope.","commands":{"allow":[],"deny":["restore_state"]}},"deny-save-window-state":{"identifier":"deny-save-window-state","description":"Denies the save_window_state command without any pre-configured scope.","commands":{"allow":[],"deny":["save_window_state"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file diff --git a/desktop/tauri/src-tauri/gen/schemas/desktop-schema.json b/desktop/tauri/src-tauri/gen/schemas/desktop-schema.json index 905008b7..5bd064ed 100644 --- a/desktop/tauri/src-tauri/gen/schemas/desktop-schema.json +++ b/desktop/tauri/src-tauri/gen/schemas/desktop-schema.json @@ -1100,6 +1100,11 @@ "type": "string", "const": "core:webview:allow-reparent" }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color" + }, { "description": "Enables the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -1180,6 +1185,11 @@ "type": "string", "const": "core:webview:deny-reparent" }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color" + }, { "description": "Denies the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -1395,6 +1405,21 @@ "type": "string", "const": "core:window:allow-set-always-on-top" }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color" + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count" + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label" + }, { "description": "Enables the set_closable command without any pre-configured scope.", "type": "string", @@ -1480,6 +1505,11 @@ "type": "string", "const": "core:window:allow-set-minimizable" }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon" + }, { "description": "Enables the set_position command without any pre-configured scope.", "type": "string", @@ -1740,6 +1770,21 @@ "type": "string", "const": "core:window:deny-set-always-on-top" }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color" + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count" + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label" + }, { "description": "Denies the set_closable command without any pre-configured scope.", "type": "string", @@ -1825,6 +1870,11 @@ "type": "string", "const": "core:window:deny-set-minimizable" }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon" + }, { "description": "Denies the set_position command without any pre-configured scope.", "type": "string", diff --git a/desktop/tauri/src-tauri/gen/schemas/windows-schema.json b/desktop/tauri/src-tauri/gen/schemas/windows-schema.json index 905008b7..5bd064ed 100644 --- a/desktop/tauri/src-tauri/gen/schemas/windows-schema.json +++ b/desktop/tauri/src-tauri/gen/schemas/windows-schema.json @@ -1100,6 +1100,11 @@ "type": "string", "const": "core:webview:allow-reparent" }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color" + }, { "description": "Enables the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -1180,6 +1185,11 @@ "type": "string", "const": "core:webview:deny-reparent" }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color" + }, { "description": "Denies the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -1395,6 +1405,21 @@ "type": "string", "const": "core:window:allow-set-always-on-top" }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color" + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count" + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label" + }, { "description": "Enables the set_closable command without any pre-configured scope.", "type": "string", @@ -1480,6 +1505,11 @@ "type": "string", "const": "core:window:allow-set-minimizable" }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon" + }, { "description": "Enables the set_position command without any pre-configured scope.", "type": "string", @@ -1740,6 +1770,21 @@ "type": "string", "const": "core:window:deny-set-always-on-top" }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color" + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count" + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label" + }, { "description": "Denies the set_closable command without any pre-configured scope.", "type": "string", @@ -1825,6 +1870,11 @@ "type": "string", "const": "core:window:deny-set-minimizable" }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon" + }, { "description": "Denies the set_position command without any pre-configured scope.", "type": "string", From b2907e9475a2708abcd07e14413445ec856aec08 Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Tue, 25 Feb 2025 11:34:21 +0200 Subject: [PATCH 02/34] [desktop] Add rust-dark-light as direct dependency --- desktop/tauri/rust-dark-light/.gitignore | 4 + desktop/tauri/rust-dark-light/Cargo.toml | 34 +++++++ desktop/tauri/rust-dark-light/README.md | 39 ++++++++ desktop/tauri/rust-dark-light/build.rs | 5 + .../tauri/rust-dark-light/src/freedesktop.rs | 92 +++++++++++++++++++ desktop/tauri/rust-dark-light/src/lib.rs | 73 +++++++++++++++ .../src/platforms/freedesktop/detect.rs | 47 ++++++++++ .../src/platforms/freedesktop/mod.rs | 88 ++++++++++++++++++ .../src/platforms/freedesktop/notify.rs | 42 +++++++++ .../src/platforms/macos/detect.rs | 56 +++++++++++ .../src/platforms/macos/mod.rs | 2 + .../src/platforms/macos/notify.rs | 23 +++++ .../rust-dark-light/src/platforms/mod.rs | 48 ++++++++++ .../src/platforms/websys/detect.rs | 11 +++ .../src/platforms/websys/mod.rs | 2 + .../src/platforms/websys/notify.rs | 23 +++++ .../src/platforms/windows/detect.rs | 15 +++ .../src/platforms/windows/mod.rs | 2 + .../src/platforms/windows/notify.rs | 23 +++++ .../tauri/rust-dark-light/src/utils/mod.rs | 1 + .../tauri/rust-dark-light/src/utils/rgb.rs | 23 +++++ desktop/tauri/src-tauri/Cargo.lock | 1 - desktop/tauri/src-tauri/Cargo.toml | 2 +- 23 files changed, 654 insertions(+), 2 deletions(-) create mode 100644 desktop/tauri/rust-dark-light/.gitignore create mode 100644 desktop/tauri/rust-dark-light/Cargo.toml create mode 100644 desktop/tauri/rust-dark-light/README.md create mode 100644 desktop/tauri/rust-dark-light/build.rs create mode 100644 desktop/tauri/rust-dark-light/src/freedesktop.rs create mode 100644 desktop/tauri/rust-dark-light/src/lib.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/freedesktop/detect.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/freedesktop/mod.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/freedesktop/notify.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/macos/detect.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/macos/mod.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/macos/notify.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/mod.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/websys/detect.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/websys/mod.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/websys/notify.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/windows/detect.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/windows/mod.rs create mode 100644 desktop/tauri/rust-dark-light/src/platforms/windows/notify.rs create mode 100644 desktop/tauri/rust-dark-light/src/utils/mod.rs create mode 100644 desktop/tauri/rust-dark-light/src/utils/rgb.rs diff --git a/desktop/tauri/rust-dark-light/.gitignore b/desktop/tauri/rust-dark-light/.gitignore new file mode 100644 index 00000000..eb489b96 --- /dev/null +++ b/desktop/tauri/rust-dark-light/.gitignore @@ -0,0 +1,4 @@ +/target +/examples/*/target +Cargo.lock +.vscode diff --git a/desktop/tauri/rust-dark-light/Cargo.toml b/desktop/tauri/rust-dark-light/Cargo.toml new file mode 100644 index 00000000..0ad97cf0 --- /dev/null +++ b/desktop/tauri/rust-dark-light/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "dark-light" +version = "1.1.1" +authors = ["Corey Farwell "] +edition = "2018" +license = "MIT/Apache-2.0" +repository = "https://github.com/frewsxcv/rust-dark-light" +description = "Detect if dark mode or light mode is enabled" +readme = "README.md" +build = "build.rs" + +[dependencies] +futures = "0.3.30" +anyhow = "1.0.79" + +[dev-dependencies] +tokio = { version = "1.23.0", features = ["full"] } + +[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly", target_os = "netbsd", target_os = "openbsd"))'.dependencies] +detect-desktop-environment = "1.0.0" +dconf_rs = "0.3" +zbus = "3.0" +rust-ini = "0.20" +ashpd = "0.7.0" +xdg = "2.4.1" + +[target.'cfg(windows)'.dependencies] +winreg = "0.52.0" + +[target.'cfg(target_os = "macos")'.dependencies] +objc = "0.2" + +[target.'cfg(target_arch = "wasm32")'.dependencies] +web-sys = { version = "0.3", features = ["MediaQueryList", "Window"] } diff --git a/desktop/tauri/rust-dark-light/README.md b/desktop/tauri/rust-dark-light/README.md new file mode 100644 index 00000000..490561b9 --- /dev/null +++ b/desktop/tauri/rust-dark-light/README.md @@ -0,0 +1,39 @@ +# rust-dark-light + +Rust crate to detect if dark mode or light mode is enabled. Supports macOS, Windows, Linux, BSDs, and WASM. On Linux and BSDs, first the XDG Desktop Portal dbus API is checked for the `color-scheme` preference, which works in Flatpak sandboxes without needing filesystem access. If that does not work, fallback methods are used for KDE, GNOME, Cinnamon, MATE, XFCE, and Unity. + +[API Documentation](https://docs.rs/dark-light/) + +## Usage + +```rust +fn main() { + let mode = dark_light::detect(); + + match mode { + // Dark mode + dark_light::Mode::Dark => {}, + // Light mode + dark_light::Mode::Light => {}, + // Unspecified + dark_light::Mode::Default => {}, + } +} +``` + +## Example + +``` +cargo run --example detect +``` + +## License + +Licensed under either of + + * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) + * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + + diff --git a/desktop/tauri/rust-dark-light/build.rs b/desktop/tauri/rust-dark-light/build.rs new file mode 100644 index 00000000..07763e7a --- /dev/null +++ b/desktop/tauri/rust-dark-light/build.rs @@ -0,0 +1,5 @@ +fn main() { + if let Ok("apple") = std::env::var("CARGO_CFG_TARGET_VENDOR").as_deref() { + println!("cargo:rustc-link-lib=framework=AppKit"); + } +} diff --git a/desktop/tauri/rust-dark-light/src/freedesktop.rs b/desktop/tauri/rust-dark-light/src/freedesktop.rs new file mode 100644 index 00000000..39843d75 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/freedesktop.rs @@ -0,0 +1,92 @@ +use detect_desktop_environment::DesktopEnvironment; +use ini::Ini; +use std::path::{Path, PathBuf}; +use zbus::blocking::Connection; + +use crate::Mode; + +const XDG_KDEGLOBALS: &str = "/etc/xdg/kdeglobals"; + +fn get_freedesktop_color_scheme() -> Option { + let conn = Connection::session(); + if conn.is_err() { + return None; + } + let reply = conn.unwrap().call_method( + Some("org.freedesktop.portal.Desktop"), + "/org/freedesktop/portal/desktop", + Some("org.freedesktop.portal.Settings"), + "Read", + &("org.freedesktop.appearance", "color-scheme"), + ); + if let Ok(reply) = &reply { + let theme = reply.body().deserialize::(); + if theme.is_err() { + return None; + } + + match theme.unwrap() { + 1 => Some(Mode::Dark), + 2 => Some(Mode::Light), + _ => None, + } + } else { + None + } +} + +fn detect_gtk(pattern: &str) -> Mode { + match dconf_rs::get_string(pattern) { + Ok(theme) => Mode::from(theme.to_lowercase().contains("dark")), + Err(_) => Mode::Light, + } +} + +fn detect_kde(path: &str) -> Mode { + match Ini::load_from_file(path) { + Ok(cfg) => { + let section = match cfg.section(Some("Colors:Window")) { + Some(section) => section, + None => return Mode::Light, + }; + let values = match section.get("BackgroundNormal") { + Some(string) => string, + None => return Mode::Light, + }; + let rgb = values + .split(',') + .map(|s| s.parse::().unwrap_or(255)) + .collect::>(); + let rgb = if rgb.len() > 2 { + rgb + } else { + vec![255, 255, 255] + }; + let (r, g, b) = (rgb[0], rgb[1], rgb[2]); + Mode::rgb(r, g, b) + } + Err(_) => Mode::Light, + } +} + +pub fn detect() -> Mode { + match get_freedesktop_color_scheme() { + Some(mode) => mode, + // Other desktop environments are still being worked on, fow now, only the following implementations work. + None => match DesktopEnvironment::detect() { + DesktopEnvironment::Kde => { + let path = if Path::new(XDG_KDEGLOBALS).exists() { + PathBuf::from(XDG_KDEGLOBALS) + } else { + dirs::home_dir().unwrap().join(".config/kdeglobals") + }; + detect_kde(path.to_str().unwrap()) + } + DesktopEnvironment::Cinnamon => detect_gtk("/org/cinnamon/desktop/interface/gtk-theme"), + DesktopEnvironment::Gnome => detect_gtk("/org/gnome/desktop/interface/gtk-theme"), + DesktopEnvironment::Mate => detect_gtk("/org/mate/desktop/interface/gtk-theme"), + DesktopEnvironment::Unity => detect_gtk("/org/gnome/desktop/interface/gtk-theme"), + _ => Mode::Default, + }, + } +} diff --git a/desktop/tauri/rust-dark-light/src/lib.rs b/desktop/tauri/rust-dark-light/src/lib.rs new file mode 100644 index 00000000..6c3d47eb --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/lib.rs @@ -0,0 +1,73 @@ +//! Detect if dark mode or light mode is enabled. +//! +//! # Examples +//! +//! ``` +//! let mode = dark_light::detect(); +//! +//! match mode { +//! // Dark mode +//! dark_light::Mode::Dark => {}, +//! // Light mode +//! dark_light::Mode::Light => {}, +//! // Unspecified +//! dark_light::Mode::Default => {}, +//! } +//! ``` + +mod platforms; +use platforms::platform; + +mod utils; +#[cfg(any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "netbsd", + target_os = "openbsd" +))] +use utils::rgb::Rgb; + +/// Enum representing dark mode, light mode, or unspecified. +#[derive(Copy, Clone, PartialEq, Eq, Debug)] +pub enum Mode { + /// Dark mode + Dark, + /// Light mode + Light, + /// Unspecified + Default, +} + +impl Mode { + #[allow(dead_code)] + fn from_bool(b: bool) -> Self { + if b { + Mode::Dark + } else { + Mode::Light + } + } + + #[cfg(any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "netbsd", + target_os = "openbsd" + ))] + /// Convert an RGB color to [`Mode`]. The color is converted to grayscale, and if the grayscale value is less than 192, [`Mode::Dark`] is returned. Otherwise, [`Mode::Light`] is returned. + fn from_rgb(rgb: Rgb) -> Self { + let window_background_gray = (rgb.0 * 11 + rgb.1 * 16 + rgb.2 * 5) / 32; + if window_background_gray < 192 { + Self::Dark + } else { + Self::Light + } + } +} + +/// Detect if light mode or dark mode is enabled. If the mode can’t be detected, fall back to [`Mode::Default`]. +pub use platform::detect::detect; +/// Notifies the user if the system theme has been changed. +pub use platform::notify::subscribe; diff --git a/desktop/tauri/rust-dark-light/src/platforms/freedesktop/detect.rs b/desktop/tauri/rust-dark-light/src/platforms/freedesktop/detect.rs new file mode 100644 index 00000000..4901475a --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/freedesktop/detect.rs @@ -0,0 +1,47 @@ +use detect_desktop_environment::DesktopEnvironment; + +use crate::Mode; + +use super::{dconf_detect, gsetting_detect, kde_detect, CINNAMON, GNOME, MATE}; + +pub fn detect() -> Mode { + NonFreeDesktop::detect() +} + +/// Detects the color scheme on a platform. +trait ColorScheme { + fn detect() -> Mode; +} + +/// Represents the FreeDesktop platform. +struct FreeDesktop; + +/// Represents non FreeDesktop platforms. +struct NonFreeDesktop; + +/// Detects the color scheme on FreeDesktop platforms. It makes use of the DBus interface. +impl ColorScheme for FreeDesktop { + fn detect() -> Mode { + todo!() + } +} + +/// Detects the color scheme on non FreeDesktop platforms, having a custom implementation for each desktop environment. +impl ColorScheme for NonFreeDesktop { + fn detect() -> Mode { + match DesktopEnvironment::detect() { + Some(mode) => match mode { + DesktopEnvironment::Kde => match kde_detect() { + Ok(mode) => mode, + Err(_) => Mode::Default, + }, + DesktopEnvironment::Cinnamon => dconf_detect(CINNAMON), + DesktopEnvironment::Gnome => gsetting_detect(), + DesktopEnvironment::Mate => dconf_detect(MATE), + DesktopEnvironment::Unity => dconf_detect(GNOME), + _ => Mode::Default, + }, + None => Mode::Default, + } + } +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/freedesktop/mod.rs b/desktop/tauri/rust-dark-light/src/platforms/freedesktop/mod.rs new file mode 100644 index 00000000..0dd73c75 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/freedesktop/mod.rs @@ -0,0 +1,88 @@ +use std::{process::Command, str::FromStr}; + +use anyhow::Context; +use ini::Ini; + +use crate::{utils::rgb::Rgb, Mode}; + +pub mod detect; +pub mod notify; + +const MATE: &str = "/org/mate/desktop/interface/gtk-theme"; +const GNOME: &str = "/org/gnome/desktop/interface/gtk-theme"; +const CINNAMON: &str = "/org/cinnamon/desktop/interface/gtk-theme"; + +fn dconf_detect(path: &str) -> Mode { + match dconf_rs::get_string(path) { + Ok(theme) => { + println!("dconf output: {}", theme); + if theme.is_empty() { + Mode::Default + } else { + if theme.to_lowercase().contains("dark") { + Mode::Dark + } else { + Mode::Light + } + } + } + Err(_) => Mode::Default, + } +} + +pub fn gsetting_detect() -> Mode { + let mode = match Command::new("gsettings") + .arg("get") + .arg("org.gnome.desktop.interface") + .arg("color-scheme") + .output() + { + Ok(output) => { + if let Ok(scheme) = String::from_utf8(output.stdout) { + if scheme.contains("prefer-dark") { + Mode::Dark + } else if scheme.contains("prefer-light") { + Mode::Dark + } else { + Mode::Default + } + } else { + Mode::Default + } + } + Err(_) => Mode::Default, + }; + + // Fallback to dconf + if mode == Mode::Default { + return dconf_detect(GNOME); + } + + mode +} + +fn kde_detect() -> anyhow::Result { + let xdg = xdg::BaseDirectories::new()?; + let path = xdg + .find_config_file("kdeglobals") + .context("Path not found")?; + let cfg = Ini::load_from_file(path)?; + let properties = cfg + .section(Some("Colors:Window")) + .context("Failed to get section Colors:Window")?; + let background = properties + .get("BackgroundNormal") + .context("Failed to get BackgroundNormal inside Colors:Window")?; + let rgb = Rgb::from_str(background).unwrap(); + Ok(Mode::from_rgb(rgb)) +} + +impl From for Mode { + fn from(value: ashpd::desktop::settings::ColorScheme) -> Self { + match value { + ashpd::desktop::settings::ColorScheme::NoPreference => Mode::Default, + ashpd::desktop::settings::ColorScheme::PreferDark => Mode::Dark, + ashpd::desktop::settings::ColorScheme::PreferLight => Mode::Light, + } + } +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/freedesktop/notify.rs b/desktop/tauri/rust-dark-light/src/platforms/freedesktop/notify.rs new file mode 100644 index 00000000..c63fdc11 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/freedesktop/notify.rs @@ -0,0 +1,42 @@ +use ashpd::desktop::settings::{ColorScheme, Settings}; +use futures::{stream, Stream, StreamExt}; +use std::task::Poll; + +use crate::{detect, Mode}; + +pub async fn subscribe() -> anyhow::Result + Send> { + let stream = if get_freedesktop_color_scheme().await.is_ok() { + let proxy = Settings::new().await?; + proxy + .receive_color_scheme_changed() + .await? + .map(Mode::from) + .boxed() + } else { + let mut last_mode = detect(); + stream::poll_fn(move |ctx| -> Poll> { + let current_mode = detect(); + if current_mode != last_mode { + last_mode = current_mode; + Poll::Ready(Some(current_mode)) + } else { + ctx.waker().wake_by_ref(); + Poll::Pending + } + }) + .boxed() + }; + + Ok(stream) +} + +async fn get_freedesktop_color_scheme() -> anyhow::Result { + let proxy = Settings::new().await?; + let color_scheme = proxy.color_scheme().await?; + let mode = match color_scheme { + ColorScheme::PreferDark => Mode::Dark, + ColorScheme::PreferLight => Mode::Light, + ColorScheme::NoPreference => Mode::Default, + }; + Ok(mode) +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/macos/detect.rs b/desktop/tauri/rust-dark-light/src/platforms/macos/detect.rs new file mode 100644 index 00000000..5c56cb83 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/macos/detect.rs @@ -0,0 +1,56 @@ +// Dark/light mode detection on macOS. +// Written with help from Ryan McGrath (https://rymc.io/). + +use crate::Mode; +use objc::runtime::Object; +use objc::{class, msg_send, sel, sel_impl}; + +extern "C" { + static NSAppearanceNameAqua: *const Object; + static NSAppearanceNameAccessibilityHighContrastAqua: *const Object; + static NSAppearanceNameDarkAqua: *const Object; + static NSAppearanceNameAccessibilityHighContrastDarkAqua: *const Object; +} + +fn is_dark_mode_enabled() -> bool { + unsafe { + let mut appearance: *const Object = msg_send![class!(NSAppearance), currentAppearance]; + if appearance.is_null() { + appearance = msg_send![class!(NSApp), effectiveAppearance]; + } + + let objects = [ + NSAppearanceNameAqua, + NSAppearanceNameAccessibilityHighContrastAqua, + NSAppearanceNameDarkAqua, + NSAppearanceNameAccessibilityHighContrastDarkAqua, + ]; + let names: *const Object = msg_send![ + class!(NSArray), + arrayWithObjects:objects.as_ptr() + count:objects.len() + ]; + + // `bestMatchFromAppearancesWithNames` is only available in macOS 10.14+. + // Gracefully handle earlier versions. + let responds_to_selector: objc::runtime::BOOL = msg_send![ + appearance, + respondsToSelector: sel!(bestMatchFromAppearancesWithNames:) + ]; + if responds_to_selector == objc::runtime::NO { + return false; + } + + let style: *const Object = msg_send![ + appearance, + bestMatchFromAppearancesWithNames:&*names + ]; + + style == NSAppearanceNameDarkAqua + || style == NSAppearanceNameAccessibilityHighContrastDarkAqua + } +} + +pub fn detect() -> crate::Mode { + Mode::from_bool(is_dark_mode_enabled()) +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/macos/mod.rs b/desktop/tauri/rust-dark-light/src/platforms/macos/mod.rs new file mode 100644 index 00000000..bfae5452 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/macos/mod.rs @@ -0,0 +1,2 @@ +pub mod detect; +pub mod notify; diff --git a/desktop/tauri/rust-dark-light/src/platforms/macos/notify.rs b/desktop/tauri/rust-dark-light/src/platforms/macos/notify.rs new file mode 100644 index 00000000..305205f2 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/macos/notify.rs @@ -0,0 +1,23 @@ +use std::task::Poll; + +use futures::{stream, Stream}; + +use crate::{detect, Mode}; + +pub async fn subscribe() -> anyhow::Result + Send> { + let mut last_mode = detect(); + + let stream = stream::poll_fn(move |ctx| -> Poll> { + let current_mode = detect(); + + if current_mode != last_mode { + last_mode = current_mode; + Poll::Ready(Some(current_mode)) + } else { + ctx.waker().wake_by_ref(); + Poll::Pending + } + }); + + Ok(stream) +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/mod.rs b/desktop/tauri/rust-dark-light/src/platforms/mod.rs new file mode 100644 index 00000000..35037de3 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/mod.rs @@ -0,0 +1,48 @@ +#[cfg(target_os = "macos")] +pub mod macos; + +#[cfg(target_os = "macos")] +pub use macos as platform; + +#[cfg(target_os = "windows")] +pub mod windows; +#[cfg(target_os = "windows")] +pub use windows as platform; + +#[cfg(any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "netbsd", + target_os = "openbsd" +))] +pub mod freedesktop; +#[cfg(any( + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "netbsd", + target_os = "openbsd" +))] +pub use freedesktop as platform; + +#[cfg(target_arch = "wasm32")] +pub mod websys; +#[cfg(target_arch = "wasm32")] +pub use websys as platform; + +#[cfg(not(any( + target_os = "macos", + target_os = "windows", + target_os = "linux", + target_os = "freebsd", + target_os = "dragonfly", + target_os = "netbsd", + target_os = "openbsd", + target_arch = "wasm32" +)))] +pub mod platform { + pub fn detect() -> crate::Mode { + super::Mode::Light + } +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/websys/detect.rs b/desktop/tauri/rust-dark-light/src/platforms/websys/detect.rs new file mode 100644 index 00000000..33431e82 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/websys/detect.rs @@ -0,0 +1,11 @@ +use crate::Mode; + +pub fn detect() -> crate::Mode { + if let Some(window) = web_sys::window() { + let query_result = window.match_media("(prefers-color-scheme: dark)"); + if let Ok(Some(mql)) = query_result { + return Mode::from_bool(mql.matches()); + } + } + Mode::Light +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/websys/mod.rs b/desktop/tauri/rust-dark-light/src/platforms/websys/mod.rs new file mode 100644 index 00000000..bfae5452 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/websys/mod.rs @@ -0,0 +1,2 @@ +pub mod detect; +pub mod notify; diff --git a/desktop/tauri/rust-dark-light/src/platforms/websys/notify.rs b/desktop/tauri/rust-dark-light/src/platforms/websys/notify.rs new file mode 100644 index 00000000..305205f2 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/websys/notify.rs @@ -0,0 +1,23 @@ +use std::task::Poll; + +use futures::{stream, Stream}; + +use crate::{detect, Mode}; + +pub async fn subscribe() -> anyhow::Result + Send> { + let mut last_mode = detect(); + + let stream = stream::poll_fn(move |ctx| -> Poll> { + let current_mode = detect(); + + if current_mode != last_mode { + last_mode = current_mode; + Poll::Ready(Some(current_mode)) + } else { + ctx.waker().wake_by_ref(); + Poll::Pending + } + }); + + Ok(stream) +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/windows/detect.rs b/desktop/tauri/rust-dark-light/src/platforms/windows/detect.rs new file mode 100644 index 00000000..39b94603 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/windows/detect.rs @@ -0,0 +1,15 @@ +use crate::Mode; +use winreg::RegKey; + +const SUBKEY: &str = "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +const VALUE: &str = "AppsUseLightTheme"; + +pub fn detect() -> Mode { + let hkcu = RegKey::predef(winreg::enums::HKEY_CURRENT_USER); + if let Ok(subkey) = hkcu.open_subkey(SUBKEY) { + if let Ok(dword) = subkey.get_value::(VALUE) { + return Mode::from_bool(dword == 0); + } + } + Mode::Light +} diff --git a/desktop/tauri/rust-dark-light/src/platforms/windows/mod.rs b/desktop/tauri/rust-dark-light/src/platforms/windows/mod.rs new file mode 100644 index 00000000..bfae5452 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/windows/mod.rs @@ -0,0 +1,2 @@ +pub mod detect; +pub mod notify; diff --git a/desktop/tauri/rust-dark-light/src/platforms/windows/notify.rs b/desktop/tauri/rust-dark-light/src/platforms/windows/notify.rs new file mode 100644 index 00000000..305205f2 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/platforms/windows/notify.rs @@ -0,0 +1,23 @@ +use std::task::Poll; + +use futures::{stream, Stream}; + +use crate::{detect, Mode}; + +pub async fn subscribe() -> anyhow::Result + Send> { + let mut last_mode = detect(); + + let stream = stream::poll_fn(move |ctx| -> Poll> { + let current_mode = detect(); + + if current_mode != last_mode { + last_mode = current_mode; + Poll::Ready(Some(current_mode)) + } else { + ctx.waker().wake_by_ref(); + Poll::Pending + } + }); + + Ok(stream) +} diff --git a/desktop/tauri/rust-dark-light/src/utils/mod.rs b/desktop/tauri/rust-dark-light/src/utils/mod.rs new file mode 100644 index 00000000..9d3d8988 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/utils/mod.rs @@ -0,0 +1 @@ +pub mod rgb; diff --git a/desktop/tauri/rust-dark-light/src/utils/rgb.rs b/desktop/tauri/rust-dark-light/src/utils/rgb.rs new file mode 100644 index 00000000..d43f62b9 --- /dev/null +++ b/desktop/tauri/rust-dark-light/src/utils/rgb.rs @@ -0,0 +1,23 @@ +use std::str::FromStr; + +/// Struct representing an RGB color +pub(crate) struct Rgb(pub(crate) u32, pub(crate) u32, pub(crate) u32); + +impl FromStr for Rgb { + type Err = anyhow::Error; + + fn from_str(s: &str) -> Result { + let rgb = s + .split(',') + .map(|s| s.parse::().unwrap_or(255)) + .try_fold(vec![], |mut acc, x| { + if acc.len() < 3 { + acc.push(x); + Ok(acc) + } else { + Err(anyhow::anyhow!("RGB format is invalid")) + } + })?; + Ok(Rgb(rgb[0], rgb[1], rgb[2])) + } +} diff --git a/desktop/tauri/src-tauri/Cargo.lock b/desktop/tauri/src-tauri/Cargo.lock index d1117733..49a5095b 100644 --- a/desktop/tauri/src-tauri/Cargo.lock +++ b/desktop/tauri/src-tauri/Cargo.lock @@ -1144,7 +1144,6 @@ dependencies = [ [[package]] name = "dark-light" version = "1.1.1" -source = "git+https://github.com/vlabo/rust-dark-light?rev=1f955c84d0ea05729bb5ecab29fb1b315b9897de#1f955c84d0ea05729bb5ecab29fb1b315b9897de" dependencies = [ "anyhow", "ashpd 0.7.0", diff --git a/desktop/tauri/src-tauri/Cargo.toml b/desktop/tauri/src-tauri/Cargo.toml index 98f0767b..073cf8e1 100644 --- a/desktop/tauri/src-tauri/Cargo.toml +++ b/desktop/tauri/src-tauri/Cargo.toml @@ -52,7 +52,7 @@ reqwest = { version = "0.12" } rfd = { version = "*", default-features = false, features = [ "tokio", "gtk3", "common-controls-v6" ] } open = "5.1.3" -dark-light = { git = "https://github.com/vlabo/rust-dark-light", rev = "1f955c84d0ea05729bb5ecab29fb1b315b9897de" } +dark-light = { path = "../rust-dark-light" } # Linux only [target.'cfg(target_os = "linux")'.dependencies] From 1d15b453416b406274540fc31e44692d61d0d2f0 Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Tue, 25 Feb 2025 16:37:34 +0200 Subject: [PATCH 03/34] [installer] Add migration to the NSIS installer --- desktop/tauri/src-tauri/tauri.conf.json5 | 2 +- .../License.txt | 27 + .../Readme.txt | 335 ++++ .../SimpleSC.dll | Bin 0 -> 1110016 bytes .../Source/LSASecurityControl.pas | 259 +++ .../Source/NSIS Plugins.groupproj | 36 + .../Source/NSIS.pas | 209 +++ .../Source/ServiceControl.pas | 1382 +++++++++++++++++ .../Source/SimpleSC.dpr | 609 ++++++++ .../Source/SimpleSC.dproj | 910 +++++++++++ .../Source/SimpleSC.res | Bin 0 -> 96 bytes .../templates/nsis/install_hooks.nsh | 126 ++ .../templates/nsis_install_hooks.nsh | 37 - .../windows/generate_windows_installers.ps1 | 9 +- 14 files changed, 3899 insertions(+), 42 deletions(-) create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/License.txt create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Readme.txt create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/SimpleSC.dll create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/LSASecurityControl.pas create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS Plugins.groupproj create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS.pas create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/ServiceControl.pas create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dpr create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dproj create mode 100644 desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.res create mode 100644 desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh delete mode 100644 desktop/tauri/src-tauri/templates/nsis_install_hooks.nsh diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index 00a9cced..52b2f25a 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -118,7 +118,7 @@ "windows": { "nsis": { "installMode": "perMachine", - "installerHooks": "templates/nsis_install_hooks.nsh", + "installerHooks": "templates/nsis/install_hooks.nsh", "installerIcon": "../../../assets/data/icons/pm_light.ico" }, "wix": { diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/License.txt b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/License.txt new file mode 100644 index 00000000..71e0f2a0 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/License.txt @@ -0,0 +1,27 @@ +SimpleSC - NSIS Service Control Plugin - License Agreement + +This plugin is subject to the Mozilla Public License Version 1.1 (the "License"); +You may not use this plugin except in compliance with the License. You may +obtain a copy of the License at http://www.mozilla.org/MPL. + +Alternatively, you may redistribute this library, use and/or modify it +under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation; either version 2.1 of the License, +or (at your option) any later version. You may obtain a copy +of the LGPL at www.gnu.org/copyleft. + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the License. + +Copyright + +Portions of this software are Copyright (C) 2001 - Peter Windridge, 2003 by +Bernhard Mayer, Fixed and formatted by Brett Dever http://editor.nfscheats.com/ + +The original code is ServiceControl.pas, released April 16, 2007. + +The initial developer of the original code is Rainer Budde (http://www.speed-soft.de). + +SimpleSC - NSIS Service Control Plugin is written, published and maintaned by +Rainer Budde (rainer@speed-soft.de). \ No newline at end of file diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Readme.txt b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Readme.txt new file mode 100644 index 00000000..1854869a --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Readme.txt @@ -0,0 +1,335 @@ +NSIS Simple Service Plugin + +This plugin contains basic service functions like start, stop the +service or checking the service status. It also contains advanced +service functions for example setting the service description, changed +the logon account, granting or removing the service logon privilege. + + + + +== Short Reference == + + +SimpleSC::InstallService [name_of_service] [display_name] [service_type] [start_type] [binary_path] [dependencies] [account] [password] +SimpleSC::RemoveService [name_of_service] + +SimpleSC::StartService [name_of_service] [arguments] [timeout] +SimpleSC::StopService [name_of_service] [wait_for_file_release] [timeout] +SimpleSC::PauseService [name_of_service] [timeout] +SimpleSC::ContinueService [name_of_service] [timeout] +SimpleSC::RestartService [name_of_service] [arguments] [timeout] +SimpleSC::ExistsService [name_of_service] + +SimpleSC::GetServiceDisplayName [name_of_service] +SimpleSC::GetServiceName [display_name] +SimpleSC::GetServiceStatus [name_of_service] +SimpleSC::GetServiceDescription [name_of_service] +SimpleSC::GetServiceStartType [name_of_service] +SimpleSC::GetServiceBinaryPath [name_of_service] +SimpleSC::GetServiceLogon [name_of_service] +SimpleSC::GetServiceFailure [name_of_service] +SimpleSC::GetServiceFailureFlag [name_of_service] +SimpleSC::GetServiceDelayedAutoStartInfo [name_of_service] + +SimpleSC::SetServiceDescription [name_of_service] [service_description] +SimpleSC::SetServiceStartType [name_of_service] [start_type] +SimpleSC::SetServiceBinaryPath [name_of_service] [binary_path] +SimpleSC::SetServiceLogon [name_of_service] [account] [password] +SimpleSC::SetServiceFailure [name_of_service] [reset_period] [reboot_message] [command] [action_type_1] [action_delay_1] [action_type_2] [action_delay_2] [action_type_3] [action_delay_3] +SimpleSC::SetServiceFailureFlag [name_of_service] [failure_actions_on_non_crash_failures] +SimpleSC::SetServiceDelayedAutoStartInfo [name_of_service] [delayed_autostart] + +SimpleSC::GrantServiceLogonPrivilege [account] +SimpleSC::RemoveServiceLogonPrivilege [account] + +SimpleSC::ServiceIsPaused [name_of_service] +SimpleSC::ServiceIsRunning [name_of_service] +SimpleSC::ServiceIsStopped [name_of_service] + +SimpleSC::GetErrorMessage [error_code] + + +Parameters: + +name_of_service - The name of the service used for Start/Stop commands and all further commands + +display_name - The name as shown in the service control manager applet in system control + +service_type - One of the following codes + 1 - SERVICE_KERNEL_DRIVER - Driver service. + 2 - SERVICE_FILE_SYSTEM_DRIVER - File system driver service. + 16 - SERVICE_WIN32_OWN_PROCESS - Service that runs in its own process. (Should be used in most cases) + 32 - SERVICE_WIN32_SHARE_PROCESS - Service that shares a process with one or more other services. + 256 - SERVICE_INTERACTIVE_PROCESS - The service can interact with the desktop. + Note: If you specify either SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS, + and the service is running in the context of the LocalSystem account, + you can also specify this value. + Example: SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS - (16 or 256) = 272 + Note: Services cannot directly interact with a user as of Windows Vista. + Therefore, this technique should not be used in new code. + See for more information: http://msdn2.microsoft.com/en-us/library/ms683502(VS.85).aspx + +start_type - one of the following codes + 0 - SERVICE_BOOT_START - Driver boot stage start + 1 - SERVICE_SYSTEM_START - Driver scm stage start + 2 - SERVICE_AUTO_START - Service auto start (Should be used in most cases) + 3 - SERVICE_DEMAND_START - Driver/service manual start + 4 - SERVICE_DISABLED - Driver/service disabled + +service_status - one of the following codes + 1 - SERVICE_STOPPED + 2 - SERVICE_START_PENDING + 3 - SERVICE_STOP_PENDING + 4 - SERVICE_RUNNING + 5 - SERVICE_CONTINUE_PENDING + 6 - SERVICE_PAUSE_PENDING + 7 - SERVICE_PAUSED + +binary_path - The path to the binary including all necessary parameters + +dependencies - Needed services, controls which services have to be started before this one; use the forward slash "/" to add more more than one service + +account - The username/account which should be used + +password - Password of the aforementioned account to be able to logon as a service + Note: If you do not specify account/password, the local system account will be used to run the service + +arguments - Arguments passed to the service main function. + Note: Driver services do not receive these arguments. + +reset_period - The time after which to reset the failure count to zero if there are no failures, in seconds. Specify 0 (INFINITE) to indicate that this value should never be reset + +reboot_message - The message to be broadcast to server users before rebooting + +command - The command line of the process to execute in response to the SC_ACTION_RUN_COMMAND service controller action. This process runs under the same account as the service + +timeout - Timeout in seconds of the function + +action_type_x - one of the following codes for the action to be performed + 0 - SC_ACTION_NONE - No action + 1 - SC_ACTION_RESTART - Restart the service + 2 - SC_ACTION_REBOOT - Reboot the computer (Note: The service user must have the SE_SHUTDOWN_NAME privilege) + 3 - SC_ACTION_RUN_COMMAND - Run a command + +action_delay_x - The time to wait before performing the specified action, in milliseconds + +failure_actions_on_non_crash_failures - This setting determines when failure actions are to be executed + 0 - The failure actions executed only if the service terminates without reporting a status of SERVICE_STOPPED + 1 - The failure actions executed if the status of a service is SERVICE_STOPPED but the exit code of the service is not 0 + +delayed_autostart - The delayed auto-start setting of an auto-start service + 0 - The service will be started during system boot. + 1 - The service will be started after other auto-start services are started plus a short delay + +error_code - Error code of a function + +service_description - The description as shown in the service control manager applet in system control + +wait_for_file_release - Wait for file release after the service is stopped. This is useful if the binary file will be overwritten after stopping the service. + 0 - NO_WAIT - No wait for file release + 1 - WAIT - Wait for file release + Note: If SERVICE_WIN32_OWN_PROCESS is used this option should be set to WAIT. + If SERVICE_WIN32_SHARE_PROCESS is used this option should only be set to WAIT if the last service + in the process is stopped. + + + + +== The Sample Script == + + +; Install a service - ServiceType own process - StartType automatic - NoDependencies - Logon as System Account + SimpleSC::InstallService "MyService" "My Service Display Name" "16" "2" "C:\MyPath\MyService.exe" "" "" "" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Install a service - ServiceType interact with desktop - StartType automatic - Dependencies on "Windows Time Service" (w32time) and "WWW Publishing Service" (w3svc) - Logon as System Account + SimpleSC::InstallService "MyService" "My Service Display Name" "272" "2" "C:\MyPath\MyService.exe" "w32time/w3svc" "" "" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Remove a service + SimpleSC::RemoveService "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Start a service + SimpleSC::StartService "MyService" "" 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Start a service with two arguments "/param1=true" "/param2=1" + SimpleSC::StartService "MyService" "/param1=true /param2=1" 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Start a service with two arguments "-p param1" "-param2" + SimpleSC::StartService "MyService" '"-p param1" -param2' 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Stop a service and waits for file release + SimpleSC::StopService "MyService" 1 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Stops two services and waits for file release after the last service is stopped + SimpleSC::StopService "MyService1" 0 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + SimpleSC::StopService "MyService2" 1 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Pause a service + SimpleSC::PauseService "MyService" 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Continue a service + SimpleSC::ContinueService "MyService" 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Restart a service + SimpleSC::RestartService "MyService" "" 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Restart a service with two arguments "/param1=true" "/param2=1" + SimpleSC::RestartService "MyService" "/param1=true /param2=1" 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Start a service with two arguments "-p param1" "-param2" + SimpleSC::RestartService "MyService" '"-p param1" -param2' 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Check if the service exists + SimpleSC::ExistsService "MyService" + Pop $0 ; returns an errorcode if the service doesn´t exists (<>0)/service exists (0) + +; Get the displayname of a service + SimpleSC::GetServiceDisplayName "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the displayname of the service + +; Get the servicename of a service by the displayname + SimpleSC::GetServiceName "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the servicename of the service + +; Get the current status of a service + SimpleSC::GetServiceStatus "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; return the status of the service (See "service_status" in the parameters) + +; Get the description of a service + SimpleSC::GetServiceDescription "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the description of the service + +; Get the start type of the service + SimpleSC::GetServiceStartType "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the start type of the service (see "start_type" in the parameters) + +; Get the binary path of a service + SimpleSC::GetServiceBinaryPath "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the binary path of the service + +; Get the logon user of the service + SimpleSC::GetServiceLogon "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the logon username of the service + +; Get the failure configuration of a service + SimpleSC::GetServiceFailure "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the reset period + Pop $2 ; returns the reboot message + Pop $3 ; returns the command + Pop $4 ; returns the first action (See "action_type_x" in the parameters) + Pop $5 ; returns the first action delay + Pop $6 ; returns the second action (See "action_type_x" in the parameters) + Pop $7 ; returns the second action delay + Pop $8 ; returns the third action (See "action_type_x" in the parameters) + Pop $9 ; returns the third action delay + +; Get the failure flag configuration of a service + SimpleSC::GetServiceFailureFlag "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the service flag + +; Get the delayed auto-start configuration of a service + SimpleSC::GetServiceDelayedAutoStartInfo "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns the delayed auto-start configuration + +; Set the description of a service + SimpleSC::SetServiceDescription "MyService" "Sample Description" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Set the starttype to automatic of a service + SimpleSC::SetServiceStartType "MyService" "2" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Sets the service binary path + SimpleSC::SetServiceBinaryPath "MyService" "C:\MySoftware\MyService.exe" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Sets the service logon to a user and grant the user the "SeServiceLogonPrivilege" + SimpleSC::SetServiceLogon "MyService" "MyServiceUser" "MyServiceUserPassword" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + IntCmp $0 0 +1 Done Done ; If successful grant the service logon privilege to "MyServiceUser" + ; Note: Every serviceuser must have the ServiceLogonPrivilege to start the service + SimpleSC::GrantServiceLogonPrivilege "MyServiceUser" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Done: + +; Sets the service failure configuration - First action: Restart the service after one minute - Second action: Reboot the computer after five minutes + SimpleSC::SetServiceFailure "MyService" "0" "" "" "1" "60000" "2" "300000" "0" "0" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Sets the failure flag configuration of a service + SimpleSC::SetServiceFailureFlag "MyService" "1" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Sets the delayed auto-start configuration of a service + SimpleSC::SetServiceDelayedAutoStartInfo "MyService" "1" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Remove the "SeServiceLogonPrivilege" from a user + SimpleSC::RemoveServiceLogonPrivilege "MyServiceUser" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + +; Check if the service is paused + SimpleSC::ServiceIsPaused "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns 1 (service is paused) - returns 0 (service is not paused) + +; Check if the service is running + SimpleSC::ServiceIsRunning "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns 1 (service is running) - returns 0 (service is not running) + +; Check if the service is stopped + SimpleSC::ServiceIsStopped "MyService" + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + Pop $1 ; returns 1 (service is stopped) - returns 0 (service is not stopped) + +; Show the error message if a function fails + SimpleSC::StopService "MyService" 1 30 + Pop $0 ; returns an errorcode (<>0) otherwise success (0) + IntCmp $0 0 Done +1 +1 + Push $0 + SimpleSC::GetErrorMessage + Pop $0 + MessageBox MB_OK|MB_ICONSTOP "Stopping fails - Reason: $0" + Done: + + + + +== Important Notes == +- The function "SetServiceLogon" only works if the servicetype is + "SERVICE_WIN32_OWN_PROCESS". +- The functions "GetServiceDescription", "SetServiceDescription", "GetServiceFailure" and + "SetServiceFailure" are only available on systems higher than Windows NT. +- The function "GetServiceFailureFlag", "SetServiceFailureFlag", "GetServiceDelayedAutoStartInfo" and + "SetServiceDelayedAutoStartInfo" are only available on systems higher than Windows 2003. +- If you change the logon of an service to a new user you have to grant him + the Service Logon Privilege. Otherwise the service cannot be started by + the user you have assigned. +- The functions StartService, StopService, PauseService and ContinueService uses + a timeout of 30 seconds. This means the function must be executed within 30 seconds, + otherwise the functions will return an error. \ No newline at end of file diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/SimpleSC.dll b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/SimpleSC.dll new file mode 100644 index 0000000000000000000000000000000000000000..edf0291a3869334d968100b1fabacbb0715614ca GIT binary patch literal 1110016 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

^(Z6AaB^m9n8BLsNGTJm2 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�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 BRj~j7 literal 0 HcmV?d00001 diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/LSASecurityControl.pas b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/LSASecurityControl.pas new file mode 100644 index 00000000..f005d878 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/LSASecurityControl.pas @@ -0,0 +1,259 @@ +{ +License Agreement + +This content is subject to the Mozilla Public License Version 1.1 (the "License"); +You may not use this plugin except in compliance with the License. You may +obtain a copy of the License at http://www.mozilla.org/MPL. + +Alternatively, you may redistribute this library, use and/or modify it +under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation; either version 2.1 of the License, +or (at your option) any later version. You may obtain a copy +of the LGPL at www.gnu.org/copyleft. + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the License. + +The original code is LSASecurityControl.pas, released April 16, 2007. + +The initial developer of the original code is Rainer Döpke +(Formerly: Rainer Budde) (https://www.speed-soft.de). + +SimpleSC - NSIS Service Control Plugin is written, published and maintained by +Rainer Döpke (rainer@speed-soft.de). +} +unit LSASecurityControl; + +interface + +uses + Winapi.Windows; + + function GrantPrivilege(AccountName: String; PrivilegeName: String): Integer; + function RemovePrivilege(AccountName: String; PrivilegeName: String): Integer; + function EnablePrivilege(PrivilegeName: String): Integer; + function DisablePrivilege(PrivilegeName: String): Integer; + +implementation + +type + LSA_HANDLE = Pointer; + TLSAHandle = LSA_HANDLE; + + LSA_UNICODE_STRING = record + Length: Word; + MaximumLength: Word; + Buffer: PWideChar; + end; + TLSAUnicodeString = LSA_UNICODE_STRING; + PLSAUnicodeString = ^TLSAUnicodeString; + + LSA_OBJECT_ATTRIBUTES = record + Length: ULONG; + RootDirectory: THandle; + ObjectName: PLSAUnicodeString; + Attributes: ULONG; + SecurityDescriptor: Pointer; + SecurityQualityOfService: Pointer; + end; + TLsaObjectAttributes = LSA_OBJECT_ATTRIBUTES; + PLsaObjectAttributes = ^TLsaObjectAttributes; + + function LsaOpenPolicy(SystemName: PLSAUnicodeString; var ObjectAttributes: TLsaObjectAttributes; DesiredAccess: ACCESS_MASK; var PolicyHandle: LSA_HANDLE): DWORD; stdcall; external 'advapi32.dll'; + function LsaAddAccountRights(PolicyHandle: LSA_HANDLE; AccountSid: PSID; UserRights: PLSAUnicodeString; CountOfRights: ULONG): DWORD; stdcall; external 'advapi32.dll'; + function LsaRemoveAccountRights(PolicyHandle: LSA_HANDLE; AccountSid: PSID; AllRights: Boolean; UserRights: PLSAUnicodeString; CountOfRights: ULONG): DWORD; stdcall; external 'advapi32.dll'; + function LsaClose(ObjectHandle: LSA_HANDLE): DWORD; stdcall; external 'advapi32.dll'; + + +function GetAccountSid(const AccountName: String; var Sid: PSID): Integer; +var + DomainSize: LongWord; + SidSize: LongWord; + Domain: String; + Use: SID_NAME_USE; +begin + Result := 0; + + SidSize := 0; + DomainSize := 0; + + if not LookupAccountName(nil, PChar(AccountName), nil, SidSize, nil, DomainSize, Use) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + SetLength(Domain, DomainSize); + Sid := AllocMem(SidSize); + + if not LookupAccountName(nil, PChar(AccountName), Sid, SidSize, PChar(Domain), DomainSize, Use) then + begin + Result := GetLastError; + FreeMem(Sid); + Sid := nil; + end; + end + else + Result := GetLastError; +end; + +function GrantPrivilege(AccountName: String; PrivilegeName: String): Integer; +const + UNICODE_NULL = WCHAR(0); + POLICY_CREATE_ACCOUNT = $00000010; + POLICY_LOOKUP_NAMES = $00000800; +var + SID: PSID; + PolicyHandle: TLSAHandle; + LSAPrivilegeName: TLSAUnicodeString; + LSAObjectAttributes: TLsaObjectAttributes; + pwszPrivilegeName: PWideChar; + PrivilegeNameLength: Cardinal; + Status: DWORD; +begin + Result := 0; + + GetMem(pwszPrivilegeName, Length(PrivilegeName) * SizeOf(WideChar) + 1); + StringToWideChar(PrivilegeName, pwszPrivilegeName, Length(PrivilegeName) * SizeOf(WideChar) + 1); + ZeroMemory(@LSAObjectAttributes, SizeOf(TLsaObjectAttributes)); + PrivilegeNameLength := Length(pwszPrivilegeName); + + if PrivilegeNameLength > 0 then + begin + Result := GetAccountSid(AccountName, SID); + + if Result = 0 then + begin + LSAPrivilegeName.Length := PrivilegeNameLength * SizeOf(WideChar); + LSAPrivilegeName.MaximumLength := LSAPrivilegeName.Length + SizeOf(UNICODE_NULL); + LSAPrivilegeName.Buffer := pwszPrivilegeName; + + Status := LsaOpenPolicy(nil, LSAObjectAttributes, POLICY_LOOKUP_NAMES or POLICY_CREATE_ACCOUNT, PolicyHandle); + try + if Status = 0 then + Result := LsaAddAccountRights(PolicyHandle, Sid, @LSAPrivilegeName, 1) + else + Result := Status; + finally + LsaClose(PolicyHandle); + end; + end; + + end; + + FreeMem(pwszPrivilegeName); +end; + +function RemovePrivilege(AccountName: String; PrivilegeName: String): Integer; +const + UNICODE_NULL = WCHAR(0); + POLICY_CREATE_ACCOUNT = $00000010; + POLICY_LOOKUP_NAMES = $00000800; +var + SID: PSID; + PolicyHandle: TLSAHandle; + LSAPrivilegeName: TLSAUnicodeString; + LSAObjectAttributes: TLsaObjectAttributes; + pwszPrivilegeName: PWideChar; + PrivilegeNameLength: Cardinal; + Status: DWORD; +begin + Result := 0; + + GetMem(pwszPrivilegeName, Length(PrivilegeName) * SizeOf(WideChar) + 1); + StringToWideChar(PrivilegeName, pwszPrivilegeName, Length(PrivilegeName) * SizeOf(WideChar) + 1); + ZeroMemory(@LSAObjectAttributes, SizeOf(TLsaObjectAttributes)); + PrivilegeNameLength := Length(pwszPrivilegeName); + + if PrivilegeNameLength > 0 then + begin + Result := GetAccountSid(AccountName, SID); + + if Result = 0 then + begin + LSAPrivilegeName.Length := PrivilegeNameLength * SizeOf(WideChar); + LSAPrivilegeName.MaximumLength := LSAPrivilegeName.Length + SizeOf(UNICODE_NULL); + LSAPrivilegeName.Buffer := pwszPrivilegeName; + + Status := LsaOpenPolicy(nil, LSAObjectAttributes, POLICY_LOOKUP_NAMES or POLICY_CREATE_ACCOUNT, PolicyHandle); + + try + if Status = 0 then + Result := LsaRemoveAccountRights(PolicyHandle, Sid, False, @LSAPrivilegeName, 1) + else + Result := Status; + finally + LsaClose(PolicyHandle); + end; + end; + + end; + + FreeMem(pwszPrivilegeName); +end; + +function EnablePrivilege(PrivilegeName: String): Integer; +var + TokenHandle: THandle; + TokenPrivileges: TOKEN_PRIVILEGES; + PreviousState: TOKEN_PRIVILEGES; + ReturnLength: Cardinal; +begin + Result := 0; + + if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TokenHandle) then + begin + try + + if LookupPrivilegeValue(nil, PWideChar(PrivilegeName), TokenPrivileges.Privileges[0].Luid) then + begin + TokenPrivileges.PrivilegeCount := 1; + TokenPrivileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; + + if not AdjustTokenPrivileges(TokenHandle, False, TokenPrivileges, SizeOf(TokenPrivileges), PreviousState, ReturnLength) then + Result := System.GetLastError; + end + else + Result := System.GetLastError; + + finally + CloseHandle(TokenHandle); + end; + end + else + Result := System.GetLastError; + +end; + +function DisablePrivilege(PrivilegeName: String): Integer; +var + TokenHandle: THandle; + TokenPrivileges: TOKEN_PRIVILEGES; + PreviousState: TOKEN_PRIVILEGES; + ReturnLength: Cardinal; +begin + + Result := 0; + + if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TokenHandle) then + begin + try + + if LookupPrivilegeValue(nil, PWideChar(PrivilegeName), TokenPrivileges.Privileges[0].Luid) then + begin + TokenPrivileges.PrivilegeCount := 1; + TokenPrivileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; + + if not AdjustTokenPrivileges(TokenHandle, False, TokenPrivileges, SizeOf(TokenPrivileges), PreviousState, ReturnLength) then + Result := System.GetLastError; + end + else + Result := System.GetLastError; + + finally + CloseHandle(TokenHandle); + end; + end + else + Result := System.GetLastError; + +end; + +end. diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS Plugins.groupproj b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS Plugins.groupproj new file mode 100644 index 00000000..7cc69ccb --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS Plugins.groupproj @@ -0,0 +1,36 @@ + + + {0AF40426-B62C-4F43-8B49-19A70AEA0832} + + + + + + + + Default.Personality.12 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS.pas b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS.pas new file mode 100644 index 00000000..91629df9 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/NSIS.pas @@ -0,0 +1,209 @@ +{ + Original Code from + (C) 2001 - Peter Windridge + + Code in separate unit and some changes + 2003 by Bernhard Mayer + + Fixed and formatted by Brett Dever + http://editor.nfscheats.com/ + + simply include this unit in your plugin project and export + functions as needed +} + +unit nsis; + +interface + +uses + Winapi.Windows, Winapi.CommCtrl, System.SysUtils; + +type + VarConstants = ( + INST_0, // $0 + INST_1, // $1 + INST_2, // $2 + INST_3, // $3 + INST_4, // $4 + INST_5, // $5 + INST_6, // $6 + INST_7, // $7 + INST_8, // $8 + INST_9, // $9 + INST_R0, // $R0 + INST_R1, // $R1 + INST_R2, // $R2 + INST_R3, // $R3 + INST_R4, // $R4 + INST_R5, // $R5 + INST_R6, // $R6 + INST_R7, // $R7 + INST_R8, // $R8 + INST_R9, // $R9 + INST_CMDLINE, // $CMDLINE + INST_INSTDIR, // $INSTDIR + INST_OUTDIR, // $OUTDIR + INST_EXEDIR, // $EXEDIR + INST_LANG, // $LANGUAGE + __INST_LAST + ); + TVariableList = INST_0..__INST_LAST; + +type + PluginCallbackMessages = ( + NSPIM_UNLOAD, // This is the last message a plugin gets, do final cleanup + NSPIM_GUIUNLOAD // Called after .onGUIEnd + ); + TNSPIM = NSPIM_UNLOAD..NSPIM_GUIUNLOAD; + + //TPluginCallback = function (const NSPIM: Integer): Pointer; cdecl; + + TExecuteCodeSegment = function (const funct_id: Integer; const parent: HWND): Integer; stdcall; + Tvalidate_filename = procedure (const filename: PChar); stdcall; + TRegisterPluginCallback = function (const DllInstance: HMODULE; const CallbackFunction: Pointer): Integer; stdcall; + + pexec_flags_t = ^exec_flags_t; + exec_flags_t = record + autoclose: Integer; + all_user_var: Integer; + exec_error: Integer; + abort: Integer; + exec_reboot: Integer; + reboot_called: Integer; + XXX_cur_insttype: Integer; + plugin_api_version: Integer; + silent: Integer; + instdir_error: Integer; + rtl: Integer; + errlvl: Integer; + alter_reg_view: Integer; + status_update: Integer; + end; + + pextrap_t = ^extrap_t; + extrap_t = record + exec_flags: Pointer; // exec_flags_t; + exec_code_segment: TExecuteCodeSegment; // TFarProc; + validate_filename: Pointer; // Tvalidate_filename; + RegisterPluginCallback: Pointer; //TRegisterPluginCallback; + end; + + pstack_t = ^stack_t; + stack_t = record + next: pstack_t; + text: PChar; + end; + +var + g_stringsize: integer; + g_stacktop: ^pstack_t; + g_variables: PChar; + g_hwndParent: HWND; + g_hwndList: HWND; + g_hwndLogList: HWND; + g_extraparameters: pextrap_t; + +procedure Init(const hwndParent: HWND; const string_size: integer; const variables: PChar; const stacktop: pointer; const extraparameters: pointer = nil); + +function LogMessage(Msg : String): BOOL; +function Call(NSIS_func : String) : Integer; +function PopString(): string; +procedure PushString(const str: string=''); +function GetUserVariable(const varnum: TVariableList): string; +procedure SetUserVariable(const varnum: TVariableList; const value: string); +procedure NSISDialog(const text, caption: string; const buttons: integer); + +implementation + +procedure Init(const hwndParent: HWND; const string_size: integer; const variables: PChar; const stacktop: pointer; const extraparameters: pointer = nil); +begin + g_stringsize := string_size; + g_hwndParent := hwndParent; + g_stacktop := stacktop; + g_variables := variables; + g_hwndList := FindWindowEx(FindWindowEx(g_hwndParent, 0, '#32770', nil), 0,'SysListView32', nil); + g_extraparameters := extraparameters; +end; + + +function Call(NSIS_func : String) : Integer; +var + codeoffset: Integer; //The ID of nsis function +begin + Result := 0; + codeoffset := StrToIntDef(NSIS_func, 0); + if (codeoffset <> 0) and (g_extraparameters <> nil) then + begin + codeoffset := codeoffset - 1; + Result := g_extraparameters.exec_code_segment(codeoffset, g_hwndParent); + end; +end; + +function LogMessage(Msg : String): BOOL; +var + ItemCount : Integer; + item: TLVItem; +begin + Result := FAlse; + if g_hwndList = 0 then exit; + FillChar( item, sizeof(item), 0 ); + ItemCount := SendMessage(g_hwndList, LVM_GETITEMCOUNT, 0, 0); + item.iItem := ItemCount; + item.mask := LVIF_TEXT; + item.pszText := PChar(Msg); + ListView_InsertItem(g_hwndList, item); + ListView_EnsureVisible(g_hwndList, ItemCount, TRUE); +end; + +function PopString(): string; +var + th: pstack_t; +begin + if integer(g_stacktop^) <> 0 then begin + th := g_stacktop^; + Result := PChar(@th.text); + g_stacktop^ := th.next; + GlobalFree(HGLOBAL(th)); + end; +end; + +procedure PushString(const str: string=''); +var + th: pstack_t; +begin + if integer(g_stacktop) <> 0 then begin + th := pstack_t(GlobalAlloc(GPTR, SizeOf(stack_t) + g_stringsize)); + lstrcpyn(@th.text, PChar(str), g_stringsize); + th.next := g_stacktop^; + g_stacktop^ := th; + end; +end; + +function GetUserVariable(const varnum: TVariableList): string; +begin + if (integer(varnum) >= 0) and (integer(varnum) < integer(__INST_LAST)) then + Result := g_variables + integer(varnum) * g_stringsize + else + Result := ''; +end; + +procedure SetUserVariable(const varnum: TVariableList; const value: string); +begin + if (value <> '') and (integer(varnum) >= 0) and (integer(varnum) < integer(__INST_LAST)) then + lstrcpy(g_variables + integer(varnum) * g_stringsize, PChar(value)) +end; + +procedure NSISDialog(const text, caption: string; const buttons: integer); +var + hwndOwner: HWND; +begin + hwndOwner := g_hwndParent; + if not IsWindow(g_hwndParent) then hwndOwner := 0; // g_hwndParent is not valid in NSPIM_[GUI]UNLOAD + MessageBox(hwndOwner, PChar(text), PChar(caption), buttons); +end; + +begin + +end. + diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/ServiceControl.pas b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/ServiceControl.pas new file mode 100644 index 00000000..f36ccf3a --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/ServiceControl.pas @@ -0,0 +1,1382 @@ +{ +License Agreement + +This content is subject to the Mozilla Public License Version 1.1 (the "License"); +You may not use this plugin except in compliance with the License. You may +obtain a copy of the License at http://www.mozilla.org/MPL. + +Alternatively, you may redistribute this library, use and/or modify it +under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation; either version 2.1 of the License, +or (at your option) any later version. You may obtain a copy +of the LGPL at www.gnu.org/copyleft. + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the License. + +The original code is ServiceControl.pas, released April 16, 2007. + +The initial developer of the original code is Rainer Döpke +(Formerly: Rainer Budde) (https://www.speed-soft.de). + +SimpleSC - NSIS Service Control Plugin is written, published and maintained by +Rainer Döpke (rainer@speed-soft.de). +} +unit ServiceControl; + +interface + +uses + Winapi.Windows, Winapi.WinSvc, System.SysUtils, System.DateUtils; + + function InstallService(ServiceName, DisplayName: String; ServiceType: DWORD; StartType: DWORD; BinaryPathName: String; Dependencies: String; Username: String; Password: String): Integer; + function RemoveService(ServiceName: String): Integer; + function GetServiceName(DisplayName: String; var Name: String): Integer; + function GetServiceDisplayName(ServiceName: String; var Name: String): Integer; + function GetServiceStatus(ServiceName: String; var Status: DWORD): Integer; + function GetServiceBinaryPath(ServiceName: String; var BinaryPath: String): Integer; + function GetServiceStartType(ServiceName: String; var StartType: DWORD): Integer; + function GetServiceDescription(ServiceName: String; var Description: String): Integer; + function GetServiceLogon(ServiceName: String; var Username: String): Integer; + function GetServiceFailure(ServiceName: String; var ResetPeriod: DWORD; var RebootMessage: String; var Command: String; var Action1: Integer; var ActionDelay1: DWORD; var Action2: Integer; var ActionDelay2: DWORD; var Action3: Integer; var ActionDelay3: DWORD): Integer; + function GetServiceFailureFlag(ServiceName: String; var FailureActionsOnNonCrashFailures: Boolean): Integer; + function GetServiceDelayedAutoStartInfo(ServiceName: String; var DelayedAutostart: Boolean): Integer; + function SetServiceStartType(ServiceName: String; StartType: DWORD): Integer; + function SetServiceDescription(ServiceName: String; Description: String): Integer; + function SetServiceLogon(ServiceName: String; Username: String; Password: String): Integer; + function SetServiceBinaryPath(ServiceName: String; BinaryPath: String): Integer; + function SetServiceFailure(ServiceName: String; ResetPeriod: DWORD; RebootMessage: String; Command: String; Action1: Integer; ActionDelay1: DWORD; Action2: Integer; ActionDelay2: DWORD; Action3: Integer; ActionDelay3: DWORD): Integer; + function SetServiceFailureFlag(ServiceName: String; FailureActionsOnNonCrashFailures: Boolean): Integer; + function SetServiceDelayedAutoStartInfo(ServiceName: String; DelayedAutostart: Boolean): Integer; + function ServiceIsRunning(ServiceName: String; var IsRunning: Boolean): Integer; + function ServiceIsStopped(ServiceName: String; var IsStopped: Boolean): Integer; + function ServiceIsPaused(ServiceName: String; var IsPaused: Boolean): Integer; + function StartService(ServiceName: String; ServiceArguments: String; Timeout: Integer): Integer; + function StopService(ServiceName: String; WaitForFileRelease: Boolean; Timeout: Integer): Integer; + function PauseService(ServiceName: String; Timeout: Integer): Integer; + function ContinueService(ServiceName: String; Timeout: Integer): Integer; + function RestartService(ServiceName: String; ServiceArguments: String; Timeout: Integer): Integer; + function ExistsService(ServiceName: String): Integer; + function GetErrorMessage(ErrorCode: Integer): String; + function WaitForFileRelease(ServiceName: String; Timeout: Integer): Integer; + function WaitForStatus(ServiceName: String; Status: DWORD; Timeout: Integer): Integer; + +implementation + +function WaitForFileRelease(ServiceName: String; Timeout: Integer): Integer; + + function GetFilename(ServiceFileName: String): String; + var + FilePath: String; + FileName: String; + const + ParameterDelimiter = ' '; + begin + FilePath := ExtractFilePath(ServiceFileName); + + FileName := Copy(ServiceFileName, Length(FilePath) + 1, Length(ServiceFileName) - Length(FilePath)); + + if Pos(ParameterDelimiter, Filename) <> 0 then + FileName := Copy(FileName, 0, Pos(ParameterDelimiter, Filename) - Length(ParameterDelimiter)); + + Result := FilePath + FileName; + end; + +var + StatusReached: Boolean; + TimeOutReached: Boolean; + TimeoutDate: TDateTime; + ServiceResult: Integer; + ServiceFileName: String; + FileName: String; + FileHandle: Cardinal; +const + WAIT_TIMEOUT = 250; +begin + Result := 0; + + StatusReached := False; + TimeOutReached := False; + + ServiceResult := GetServiceBinaryPath(ServiceName, ServiceFileName); + + if ServiceResult = 0 then + begin + + Filename := GetFilename(ServiceFileName); + + if FileExists(FileName) then + begin + TimeoutDate := IncSecond(Now, Timeout); + + while not StatusReached and not TimeOutReached do + begin + FileHandle := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, + nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + + if FileHandle <> INVALID_HANDLE_VALUE then + begin + CloseHandle(FileHandle); + StatusReached := True; + end; + + if not StatusReached and (TimeoutDate < Now) then + begin + TimeOutReached := True; + Result := WAIT_TIMEOUT; + end; + end; + + end; + + end + else + Result := ServiceResult; + +end; + +function WaitForStatus(ServiceName: String; Status: DWORD; Timeout: Integer): Integer; +var + CurrentStatus: DWORD; + StatusResult: Integer; + StatusReached: Boolean; + TimeOutReached: Boolean; + ErrorOccured: Boolean; + TimeoutDate: TDateTime; +const + WAIT_TIMEOUT = 250; +begin + Result := 0; + + StatusReached := False; + TimeOutReached := False; + ErrorOccured := False; + + TimeoutDate := IncSecond(Now, Timeout); + + while not StatusReached and not ErrorOccured and not TimeOutReached do + begin + StatusResult := GetServiceStatus(ServiceName, CurrentStatus); + + if StatusResult = 0 then + begin + if Status = CurrentStatus then + StatusReached := True + else + Sleep(WAIT_TIMEOUT); + end + else + begin + ErrorOccured := True; + Result := StatusResult; + end; + + if not StatusReached and not ErrorOccured and (TimeoutDate < Now) then + begin + TimeOutReached := True; + Result := ERROR_SERVICE_REQUEST_TIMEOUT; + end; + end; + +end; + +function ExistsService(ServiceName: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + CloseServiceHandle(ServiceHandle) + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function StartService(ServiceName: String; ServiceArguments: String; Timeout: Integer): Integer; +type + TArguments = Array of PChar; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + ServiceArgVectors: TArguments; + NumServiceArgs: DWORD; +const + ArgDelimitterQuote: String = '"'; + ArgDelimitterWhiteSpace: String = ' '; + + procedure GetServiceArguments(ServiceArguments: String; var NumServiceArgs: DWORD; var ServiceArgVectors: TArguments); + var + Param: String; + Split: Boolean; + Quoted: Boolean; + CharIsDelimitter: Boolean; + begin + ServiceArgVectors := nil; + NumServiceArgs := 0; + + Quoted := False; + + while Length(ServiceArguments) > 0 do + begin + Split := False; + CharIsDelimitter := False; + + if ServiceArguments[1] = ' ' then + if not Quoted then + begin + CharIsDelimitter := True; + Split := True; + end; + + if ServiceArguments[1] = '"' then + begin + Quoted := not Quoted; + CharIsDelimitter := True; + + if not Quoted then + Split := True; + end; + + if not CharIsDelimitter then + Param := Param + ServiceArguments[1]; + + if Split or (Length(ServiceArguments) = 1) then + begin + SetLength(ServiceArgVectors, Length(ServiceArgVectors) + 1); + GetMem(ServiceArgVectors[Length(ServiceArgVectors) -1], Length(Param) * SizeOf(Char) + 1); + StrPCopy(ServiceArgVectors[Length(ServiceArgVectors) -1], Param); + + Param := ''; + + Delete(ServiceArguments, 1, 1); + ServiceArguments := Trim(ServiceArguments); + end + else + Delete(ServiceArguments, 1, 1); + + end; + + if Length(ServiceArgVectors) > 0 then + NumServiceArgs := Length(ServiceArgVectors); + end; + + procedure FreeServiceArguments(ServiceArgVectors: TArguments); + var + i: Integer; + begin + if Length(ServiceArgVectors) > 0 then + for i := 0 to Length(ServiceArgVectors) -1 do + FreeMem(ServiceArgVectors[i]); + end; + +begin + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_START); + + if ServiceHandle > 0 then + begin + GetServiceArguments(ServiceArguments, NumServiceArgs, ServiceArgVectors); + + if Winapi.WinSvc.StartService(ServiceHandle, NumServiceArgs, ServiceArgVectors[0]) then + Result := WaitForStatus(ServiceName, SERVICE_RUNNING, Timeout) + else + Result := System.GetLastError; + + FreeServiceArguments(ServiceArgVectors); + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function StopService(ServiceName: String; WaitForFileRelease: Boolean; Timeout: Integer): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + ServiceStatus: TServiceStatus; + Dependencies: PEnumServiceStatus; + BytesNeeded: Cardinal; + ServicesReturned: Cardinal; + ServicesEnumerated: Boolean; + EnumerationSuccess: Boolean; + i: Cardinal; +begin + Result := 0; + + BytesNeeded := 0; + ServicesReturned := 0; + + Dependencies := nil; + ServicesEnumerated := False; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT or SC_MANAGER_ENUMERATE_SERVICE); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_STOP or SERVICE_ENUMERATE_DEPENDENTS); + + if ServiceHandle > 0 then + begin + if not EnumDependentServices(ServiceHandle, SERVICE_ACTIVE, Dependencies^, 0, BytesNeeded, ServicesReturned) then + begin + ServicesEnumerated := True; + GetMem(Dependencies, BytesNeeded); + + EnumerationSuccess := EnumDependentServices(ServiceHandle, SERVICE_ACTIVE, Dependencies^, BytesNeeded, BytesNeeded, ServicesReturned); + + if EnumerationSuccess and (ServicesReturned > 0) then + begin + for i := 1 to ServicesReturned do + begin + Result := StopService(Dependencies.lpServiceName, False, Timeout); + + if Result <> 0 then + Break; + + Inc(Dependencies); + end; + end + else + Result := System.GetLastError; + end; + + if (ServicesEnumerated and (Result = 0)) or not ServicesEnumerated then + begin + if ControlService(ServiceHandle, SERVICE_CONTROL_STOP, ServiceStatus) then + Result := WaitForStatus(ServiceName, SERVICE_STOPPED, Timeout) + else + Result := System.GetLastError + end; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; + + if (Result = 0) and WaitForFileRelease then + Result := ServiceControl.WaitForFileRelease(ServiceName, Timeout); +end; + +function PauseService(ServiceName: String; Timeout: Integer): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + ServiceStatus: TServiceStatus; +begin + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_PAUSE_CONTINUE); + + if ServiceHandle > 0 then + begin + + if ControlService(ServiceHandle, SERVICE_CONTROL_PAUSE, ServiceStatus) then + Result := WaitForStatus(ServiceName, SERVICE_PAUSED, Timeout) + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function ContinueService(ServiceName: String; Timeout: Integer): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + ServiceStatus: TServiceStatus; +begin + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_PAUSE_CONTINUE); + + if ServiceHandle > 0 then + begin + + if ControlService(ServiceHandle, SERVICE_CONTROL_CONTINUE, ServiceStatus) then + Result := WaitForStatus(ServiceName, SERVICE_RUNNING, Timeout) + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceName(DisplayName: String; var Name: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceName: PChar; + ServiceBuffer: Cardinal; +begin + Result := 0; + + ServiceBuffer := 255; + ServiceName := StrAlloc(ServiceBuffer+1); + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + if Winapi.WinSvc.GetServiceKeyName(ManagerHandle, PChar(DisplayName), ServiceName, ServiceBuffer) then + Name := ServiceName + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceDisplayName(ServiceName: String; var Name: String): Integer; +var + ManagerHandle: SC_HANDLE; + DisplayName: PChar; + ServiceBuffer: Cardinal; +begin + Result := 0; + + ServiceBuffer := 255; + DisplayName := StrAlloc(ServiceBuffer+1); + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + if Winapi.WinSvc.GetServiceDisplayName(ManagerHandle, PChar(ServiceName), DisplayName, ServiceBuffer) then + Name := DisplayName + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceStatus(ServiceName: String; var Status: DWORD): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + ServiceStatus: TServiceStatus; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_STATUS); + + if ServiceHandle > 0 then + begin + if QueryServiceStatus(ServiceHandle, ServiceStatus) then + Status := ServiceStatus.dwCurrentState + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceBinaryPath(ServiceName: String; var BinaryPath: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + BytesNeeded: DWORD; + ServiceConfig: LPQUERY_SERVICE_CONFIG; +begin + Result := 0; + ServiceConfig := nil; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + begin + + if not QueryServiceConfig(ServiceHandle, ServiceConfig, 0, BytesNeeded) and (System.GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + GetMem(ServiceConfig, BytesNeeded); + + if QueryServiceConfig(ServiceHandle, ServiceConfig, BytesNeeded, BytesNeeded) then + BinaryPath := ServiceConfig^.lpBinaryPathName + else + Result := System.GetLastError; + + FreeMem(ServiceConfig); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceStartType(ServiceName: String; var StartType: DWORD): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + BytesNeeded: DWORD; + ServiceConfig: LPQUERY_SERVICE_CONFIG; +begin + Result := 0; + ServiceConfig := nil; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + begin + + if not QueryServiceConfig(ServiceHandle, ServiceConfig, 0, BytesNeeded) and (System.GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + GetMem(ServiceConfig, BytesNeeded); + + if QueryServiceConfig(ServiceHandle, ServiceConfig, BytesNeeded, BytesNeeded) then + StartType := ServiceConfig^.dwStartType + else + Result := System.GetLastError; + + FreeMem(ServiceConfig); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceDescription(ServiceName: String; var Description: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + BytesNeeded: DWORD; + ServiceDescription: LPSERVICE_DESCRIPTION; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + + if not QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_DESCRIPTION, nil, 0, @BytesNeeded) and (System.GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + GetMem(ServiceDescription, BytesNeeded); + + if QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_DESCRIPTION, PByte(ServiceDescription), BytesNeeded, @BytesNeeded) then + Description := ServiceDescription.lpDescription + else + Result := System.GetLastError; + + FreeMem(ServiceDescription); + end + else + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceLogon(ServiceName: String; var Username: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + BytesNeeded: DWORD; + ServiceConfig: LPQUERY_SERVICE_CONFIG; +begin + Result := 0; + ServiceConfig := nil; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_CONNECT); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + begin + + if not QueryServiceConfig(ServiceHandle, ServiceConfig, 0, BytesNeeded) and (System.GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + GetMem(ServiceConfig, BytesNeeded); + + if QueryServiceConfig(ServiceHandle, ServiceConfig, BytesNeeded, BytesNeeded) then + Username := ServiceConfig^.lpServiceStartName + else + Result := System.GetLastError; + + FreeMem(ServiceConfig); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetServiceFailure(ServiceName: String; var ResetPeriod: DWORD; + var RebootMessage: String; var Command: String; var Action1: Integer; var ActionDelay1: DWORD; + var Action2: Integer; var ActionDelay2: DWORD; var Action3: Integer; var ActionDelay3: DWORD): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + BytesNeeded: DWORD; + ServiceFailureAction: LPSERVICE_FAILURE_ACTIONS; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + + if not QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_FAILURE_ACTIONS, nil, 0, @BytesNeeded) and (System.GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + GetMem(ServiceFailureAction, BytesNeeded); + + if QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_FAILURE_ACTIONS, PByte(ServiceFailureAction), BytesNeeded, @BytesNeeded) then + begin + ResetPeriod := ServiceFailureAction.dwResetPeriod; + RebootMessage := ServiceFailureAction.lpRebootMsg; + Command := ServiceFailureAction.lpCommand; + + if ServiceFailureAction.cActions >= 1 then + begin + Action1 := Integer(ServiceFailureAction.lpsaActions.&Type); + ActionDelay1 := ServiceFailureAction.lpsaActions.Delay; + end; + + if ServiceFailureAction.cActions >= 2 then + begin + Inc(ServiceFailureAction.lpsaActions); + Action2 := Integer(ServiceFailureAction.lpsaActions.&Type); + ActionDelay2 := ServiceFailureAction.lpsaActions.Delay; + end; + + if ServiceFailureAction.cActions >= 3 then + begin + Inc(ServiceFailureAction.lpsaActions); + Action3 := Integer(ServiceFailureAction.lpsaActions.&Type); + ActionDelay3 := ServiceFailureAction.lpsaActions.Delay; + end; + end + else + Result := System.GetLastError; + + FreeMem(ServiceFailureAction); + end + else + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; + +end; + +function GetServiceFailureFlag(ServiceName: String; var FailureActionsOnNonCrashFailures: Boolean): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + BytesNeeded: DWORD; + ServiceFailureActionsFlag: LPSERVICE_FAILURE_ACTIONS_FLAG; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + + if not QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_FAILURE_ACTIONS_FLAG, nil, 0, @BytesNeeded) and (System.GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + GetMem(ServiceFailureActionsFlag, BytesNeeded); + + if QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_FAILURE_ACTIONS_FLAG, PByte(ServiceFailureActionsFlag), BytesNeeded, @BytesNeeded) then + FailureActionsOnNonCrashFailures := ServiceFailureActionsFlag.fFailureActionsOnNonCrashFailures + else + Result := System.GetLastError; + + FreeMem(ServiceFailureActionsFlag); + end + else + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; + +end; + +function GetServiceDelayedAutoStartInfo(ServiceName: String; var DelayedAutostart: Boolean): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + BytesNeeded: DWORD; + ServiceDelayedAutoStartInfo: LPSERVICE_DELAYED_AUTO_START_INFO; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_QUERY_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + + if not QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_DELAYED_AUTO_START_INFO, nil, 0, @BytesNeeded) and (System.GetLastError = ERROR_INSUFFICIENT_BUFFER) then + begin + GetMem(ServiceDelayedAutoStartInfo, BytesNeeded); + + if QueryServiceConfig2(ServiceHandle, SERVICE_CONFIG_DELAYED_AUTO_START_INFO, PByte(ServiceDelayedAutoStartInfo), BytesNeeded, @BytesNeeded) then + DelayedAutostart := Boolean(ServiceDelayedAutoStartInfo.fDelayedAutostart) + else + Result := System.GetLastError; + + FreeMem(ServiceDelayedAutoStartInfo); + end + else + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; + +end; + +function SetServiceDescription(ServiceName: String; Description: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_CHANGE_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + if not ChangeServiceConfig2(ServiceHandle, SERVICE_CONFIG_DESCRIPTION, @Description) then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function SetServiceStartType(ServiceName: String; StartType: DWORD): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_CHANGE_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + if not ChangeServiceConfig(ServiceHandle, SERVICE_NO_CHANGE, StartType, SERVICE_NO_CHANGE, nil, nil, nil, nil, nil, nil, nil) then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function SetServiceLogon(ServiceName: String; Username: String; Password: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if Pos('\', Username) = 0 then + Username := '.\' + Username; + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_CHANGE_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + if not ChangeServiceConfig(ServiceHandle, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, nil, nil, nil, nil, PChar(Username), PChar(Password), nil) then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function SetServiceBinaryPath(ServiceName: String; BinaryPath: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_CHANGE_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + if not ChangeServiceConfig(ServiceHandle, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, PChar(BinaryPath), nil, nil, nil, nil, nil, nil) then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function SetServiceFailure(ServiceName: String; ResetPeriod: DWORD; + RebootMessage: String; Command: String; Action1: Integer; ActionDelay1: DWORD; + Action2: Integer; ActionDelay2: DWORD; Action3: Integer; ActionDelay3: DWORD): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + ServiceFailureAction: SERVICE_FAILURE_ACTIONS; + ServiceActions: array[0..2] of SC_ACTION; + ServiceAccessType: Integer; +begin + Result := 0; + + if (SC_ACTION_TYPE(Action1) = SC_ACTION_RESTART) or (SC_ACTION_TYPE(Action2) = SC_ACTION_RESTART) or (SC_ACTION_TYPE(Action3) = SC_ACTION_RESTART) then + ServiceAccessType := SERVICE_CHANGE_CONFIG or SERVICE_START + else + ServiceAccessType := SERVICE_ALL_ACCESS; + + ServiceActions[0].&Type := SC_ACTION_TYPE(Action1); + ServiceActions[0].Delay := ActionDelay1; + ServiceActions[1].&Type := SC_ACTION_TYPE(Action2); + ServiceActions[1].Delay := ActionDelay2; + ServiceActions[2].&Type := SC_ACTION_TYPE(Action3); + ServiceActions[2].Delay := ActionDelay3; + + ServiceFailureAction.dwResetPeriod := ResetPeriod; + ServiceFailureAction.lpRebootMsg := PChar(RebootMessage); + ServiceFailureAction.lpCommand := PChar(Command); + ServiceFailureAction.cActions := Length(ServiceActions); + ServiceFailureAction.lpsaActions := @ServiceActions; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), ServiceAccessType); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + if not ChangeServiceConfig2W(ServiceHandle, SERVICE_CONFIG_FAILURE_ACTIONS, @ServiceFailureAction) then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; + +end; + +function SetServiceFailureFlag(ServiceName: String; FailureActionsOnNonCrashFailures: Boolean): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + ServiceFailureActionsFlag: SERVICE_FAILURE_ACTIONS_FLAG; +begin + Result := 0; + + DWORD(ServiceFailureActionsFlag.fFailureActionsOnNonCrashFailures) := DWORD(FailureActionsOnNonCrashFailures); + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_CHANGE_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + if not ChangeServiceConfig2(ServiceHandle, SERVICE_CONFIG_FAILURE_ACTIONS_FLAG, @ServiceFailureActionsFlag) then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; + +end; + +function SetServiceDelayedAutoStartInfo(ServiceName: String; DelayedAutostart: Boolean): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + ServiceDelayedAutoStartInfo: SERVICE_DELAYED_AUTO_START_INFO; +begin + Result := 0; + + DWORD(ServiceDelayedAutoStartInfo.fDelayedAutostart) := DWORD(DelayedAutostart); + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_LOCK); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_CHANGE_CONFIG); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + if not ChangeServiceConfig2(ServiceHandle, SERVICE_CONFIG_DELAYED_AUTO_START_INFO, @ServiceDelayedAutoStartInfo) then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; + +end; + +function ServiceIsRunning(ServiceName: String; var IsRunning: Boolean): Integer; +var + Status: DWORD; +begin + Result := GetServiceStatus(ServiceName, Status); + + if Result = 0 then + IsRunning := Status = SERVICE_RUNNING + else + IsRunning := False; +end; + +function ServiceIsStopped(ServiceName: String; var IsStopped: Boolean): Integer; +var + Status: DWORD; +begin + Result := GetServiceStatus(ServiceName, Status); + + if Result = 0 then + IsStopped := Status = SERVICE_STOPPED + else + IsStopped := False; +end; + +function ServiceIsPaused(ServiceName: String; var IsPaused: Boolean): Integer; +var + Status: DWORD; +begin + Result := GetServiceStatus(ServiceName, Status); + + if Result = 0 then + IsPaused := Status = SERVICE_PAUSED + else + IsPaused := False; +end; + +function RestartService(ServiceName: String; ServiceArguments: String; Timeout: Integer): Integer; +begin + Result := StopService(ServiceName, False, Timeout); + + if Result = 0 then + Result := StartService(ServiceName, ServiceArguments, Timeout); +end; + +function InstallService(ServiceName, DisplayName: String; ServiceType: DWORD; + StartType: DWORD; BinaryPathName: String; Dependencies: String; + Username: String; Password: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + PDependencies: PChar; + PUsername: PChar; + PPassword: PChar; +const + ReplaceDelimitter: String = '/'; + + function Replace(Value: String): String; + begin + while Pos(ReplaceDelimitter, Value) <> 0 do + begin + Result := Result + Copy(Value, 1, Pos(ReplaceDelimitter, Value) -1) + Chr(0); + Delete(Value, 1, Pos(ReplaceDelimitter, Value)); + end; + + Result := Result + Value + Chr(0) + Chr(0); + + end; + +begin + Result := 0; + + if Dependencies = '' then + PDependencies := nil + else + PDependencies := PChar(Replace(Dependencies)); + + if UserName = '' then + PUsername := nil + else + begin + if Pos('\', Username) = 0 then + Username := '.\' + Username; + + PUsername := PChar(Username); + end; + + if Password = '' then + PPassword := nil + else + PPassword := PChar(Password); + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_ALL_ACCESS); + + if ManagerHandle > 0 then + begin + ServiceHandle := CreateService(ManagerHandle, + PChar(ServiceName), + PChar(DisplayName), + SERVICE_START or SERVICE_QUERY_STATUS or _DELETE, + ServiceType, + StartType, + SERVICE_ERROR_NORMAL, + PChar(BinaryPathName), + nil, + nil, + PDependencies, + PUsername, + PPassword); + + if ServiceHandle <> 0 then + CloseServiceHandle(ServiceHandle) + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function RemoveService(ServiceName: String): Integer; +var + ManagerHandle: SC_HANDLE; + ServiceHandle: SC_HANDLE; + LockHandle: SC_LOCK; + Deleted: Boolean; +begin + Result := 0; + + ManagerHandle := OpenSCManager('', nil, SC_MANAGER_ALL_ACCESS); + + if ManagerHandle > 0 then + begin + ServiceHandle := OpenService(ManagerHandle, PChar(ServiceName), SERVICE_ALL_ACCESS); + + if ServiceHandle > 0 then + begin + LockHandle := LockServiceDatabase(ManagerHandle); + + if LockHandle <> nil then + begin + Deleted := DeleteService(ServiceHandle); + + if not Deleted then + Result := System.GetLastError; + + UnlockServiceDatabase(LockHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ServiceHandle); + end + else + Result := System.GetLastError; + + CloseServiceHandle(ManagerHandle); + end + else + Result := System.GetLastError; +end; + +function GetErrorMessage(ErrorCode: Integer): String; +begin + Result := SysErrorMessage(ErrorCode); +end; + +end. diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dpr b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dpr new file mode 100644 index 00000000..079111a4 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dpr @@ -0,0 +1,609 @@ +library SimpleSC; + +uses + Winapi.Windows, + System.SysUtils, + NSIS in 'NSIS.pas', + ServiceControl in 'ServiceControl.pas', + LSASecurityControl in 'LSASecurityControl.pas'; + +function BoolToStr(Value: Boolean): String; +begin + if Value then + Result := '1' + else + Result := '0'; +end; + +function StrToBool(Value: String): Boolean; +begin + Result := Value = '1'; +end; + +procedure InstallService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + DisplayName: String; + ServiceType: Cardinal; + StartType: Cardinal; + BinaryPath: String; + Dependencies: String; + Username: String; + Password: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + DisplayName := PopString; + ServiceType := StrToInt(PopString); + StartType := StrToInt(PopString); + BinaryPath := PopString; + Dependencies := PopString; + Username := PopString; + Password := PopString; + + ServiceResult := IntToStr(ServiceControl.InstallService(ServiceName, DisplayName, ServiceType, StartType, BinaryPath, Dependencies, Username, Password)); + PushString(ServiceResult); +end; + +procedure RemoveService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + + ServiceResult := IntToStr(ServiceControl.RemoveService(ServiceName)); + PushString(ServiceResult); +end; + +procedure StartService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + ServiceArguments: String; + Timeout: Integer; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceArguments := PopString; + Timeout := StrToInt(PopString); + + ServiceResult := IntToStr(ServiceControl.StartService(ServiceName, ServiceArguments, Timeout)); + + PushString(ServiceResult); +end; + +procedure StopService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + WaitForFileRelease: Boolean; + Timeout: Integer; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + + WaitForFileRelease := StrToBool(PopString); + Timeout := StrToInt(PopString); + + ServiceResult := IntToStr(ServiceControl.StopService(ServiceName, WaitForFileRelease, Timeout)); + PushString(ServiceResult); +end; + +procedure PauseService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + Timeout: Integer; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + Timeout := StrToInt(PopString); + ServiceResult := IntToStr(ServiceControl.PauseService(ServiceName, Timeout)); + PushString(ServiceResult) +end; + +procedure ContinueService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + Timeout: Integer; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + Timeout := StrToInt(PopString); + ServiceResult := IntToStr(ServiceControl.ContinueService(ServiceName, Timeout)); + PushString(ServiceResult) +end; + +procedure GetServiceName(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +Var + DisplayName: String; + ServiceResult: String; + ServiceName: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + DisplayName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceName(DisplayName, ServiceName)); + PushString(ServiceName); + PushString(ServiceResult); +end; + +procedure GetServiceDisplayName(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +Var + ServiceName: String; + DisplayName: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceDisplayName(ServiceName, DisplayName)); + PushString(DisplayName); + PushString(ServiceResult); +end; + +procedure GetServiceStatus(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + Status: DWORD; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceStatus(ServiceName, Status)); + PushString(IntToStr(Status)); + PushString(ServiceResult); +end; + +procedure GetServiceBinaryPath(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + BinaryPath: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceBinaryPath(ServiceName, BinaryPath)); + PushString(BinaryPath); + PushString(ServiceResult); +end; + +procedure GetServiceDescription(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + Description: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceDescription(ServiceName, Description)); + PushString(Description); + PushString(ServiceResult); +end; + +procedure GetServiceStartType(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + StartType: DWORD; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceStartType(ServiceName, StartType)); + PushString(IntToStr(StartType)); + PushString(ServiceResult); +end; + +procedure GetServiceLogon(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + Username: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceLogon(ServiceName, Username)); + PushString(Username); + PushString(ServiceResult); +end; + +procedure GetServiceFailure(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + ResetPeriod: DWORD; + RebootMessage: String; + Command: String; + Action1: Integer; + ActionDelay1: DWORD; + Action2: Integer; + ActionDelay2: DWORD; + Action3: Integer; + ActionDelay3: DWORD; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceFailure(ServiceName, ResetPeriod, RebootMessage, Command, Action1, ActionDelay1, Action2, ActionDelay2, Action3, ActionDelay3)); + PushString(IntToStr(ActionDelay3)); + PushString(IntToStr(Action3)); + PushString(IntToStr(ActionDelay2)); + PushString(IntToStr(Action2)); + PushString(IntToStr(ActionDelay1)); + PushString(IntToStr(Action1)); + PushString(Command); + PushString(RebootMessage); + PushString(IntToStr(ResetPeriod)); + PushString(ServiceResult); +end; + +procedure GetServiceFailureFlag(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + FailureActionsOnNonCrashFailures: Boolean; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceFailureFlag(ServiceName, FailureActionsOnNonCrashFailures)); + PushString(BoolToStr(FailureActionsOnNonCrashFailures)); + PushString(ServiceResult); +end; + +procedure GetServiceDelayedAutoStartInfo(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + DelayedAutostart: Boolean; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.GetServiceDelayedAutoStartInfo(ServiceName, DelayedAutostart)); + PushString(BoolToStr(DelayedAutostart)); + PushString(ServiceResult); +end; + +procedure SetServiceDescription(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + Description: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + Description := PopString; + ServiceResult := IntToStr(ServiceControl.SetServiceDescription(ServiceName, Description)); + PushString(ServiceResult); +end; + +procedure SetServiceStartType(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + ServiceStartType: DWORD; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceStartType := StrToInt(PopString); + ServiceResult := IntToStr(ServiceControl.SetServiceStartType(ServiceName, ServiceStartType)); + PushString(ServiceResult); +end; + +procedure SetServiceLogon(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + Username: String; + Password: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + Username := PopString; + Password := PopString; + + ServiceResult := IntToStr(ServiceControl.SetServiceLogon(ServiceName, Username, Password)); + PushString(ServiceResult); +end; + +procedure SetServiceBinaryPath(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + BinaryPath: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + BinaryPath := PopString; + + ServiceResult := IntToStr(ServiceControl.SetServiceBinaryPath(ServiceName, BinaryPath)); + PushString(ServiceResult); +end; + +procedure SetServiceFailure(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + ResetPeriod: DWORD; + RebootMessage: String; + Command: String; + Action1: Integer; + ActionDelay1: DWORD; + Action2: Integer; + ActionDelay2: DWORD; + Action3: Integer; + ActionDelay3: DWORD; + ServiceResult: Integer; + PrivilegeResult: Integer; +const + SE_SHUTDOWN_PRIVILEGE = 'SeShutdownPrivilege'; + SC_ACTION_REBOOT = 2; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ResetPeriod := StrToInt(PopString); + RebootMessage := PopString; + Command := PopString; + Action1 := StrToInt(PopString); + ActionDelay1 := StrToInt(PopString); + Action2 := StrToInt(PopString); + ActionDelay2 := StrToInt(PopString); + Action3 := StrToInt(PopString); + ActionDelay3 := StrToInt(PopString); + + if (Action1 = SC_ACTION_REBOOT) or (Action2 = SC_ACTION_REBOOT) or (Action3 = SC_ACTION_REBOOT) then + begin + PrivilegeResult := LSASecurityControl.EnablePrivilege(SE_SHUTDOWN_PRIVILEGE); + + if not PrivilegeResult = 0 then + begin + PushString(IntToStr(PrivilegeResult)); + Exit; + end; + end; + + ServiceResult := ServiceControl.SetServiceFailure(ServiceName, ResetPeriod, RebootMessage, Command, Action1, ActionDelay1, + Action2, ActionDelay2, Action3, ActionDelay3); + + + if (Action1 = SC_ACTION_REBOOT) or (Action2 = SC_ACTION_REBOOT) or (Action3 = SC_ACTION_REBOOT) then + begin + PrivilegeResult := LSASecurityControl.DisablePrivilege(SE_SHUTDOWN_PRIVILEGE); + + if not PrivilegeResult = 0 then + begin + PushString(IntToStr(PrivilegeResult)); + Exit; + end; + end; + + PushString(IntToStr(ServiceResult)); + +end; + +procedure SetServiceFailureFlag(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + FailureActionsOnNonCrashFailures: Boolean; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + FailureActionsOnNonCrashFailures := StrToBool(PopString); + ServiceResult := IntToStr(ServiceControl.SetServiceFailureFlag(ServiceName, FailureActionsOnNonCrashFailures)); + PushString(ServiceResult) +end; + +procedure SetServiceDelayedAutoStartInfo(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + DelayedAutostart: Boolean; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + DelayedAutostart := StrToBool(PopString); + ServiceResult := IntToStr(ServiceControl.SetServiceDelayedAutoStartInfo(ServiceName, DelayedAutostart)); + PushString(ServiceResult) +end; + +procedure ServiceIsRunning(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + IsRunning: Boolean; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.ServiceIsRunning(ServiceName, IsRunning)); + PushString(BoolToStr(IsRunning)); + PushString(ServiceResult); +end; + +procedure ServiceIsStopped(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + IsStopped: Boolean; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.ServiceIsStopped(ServiceName, IsStopped)); + PushString(BoolToStr(IsStopped)); + PushString(ServiceResult); +end; + +procedure ServiceIsPaused(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + IsPaused: Boolean; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceResult := IntToStr(ServiceControl.ServiceIsPaused(ServiceName, IsPaused)); + PushString(BoolToStr(IsPaused)); + PushString(ServiceResult); +end; + +procedure RestartService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + ServiceArguments: String; + Timeout: Integer; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + ServiceArguments := PopString; + Timeout := StrToInt(PopString); + ServiceResult := IntToStr(ServiceControl.RestartService(ServiceName, ServiceArguments, Timeout)); + PushString(ServiceResult); +end; + +procedure ExistsService(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ServiceName: String; + ServiceResult: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ServiceName := PopString; + + ServiceResult := IntToStr(ServiceControl.ExistsService(ServiceName)); + PushString(ServiceResult); +end; + +procedure GrantServiceLogonPrivilege(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + AccountName: String; + LSAResult: String; +const + SE_SERVICE_LOGON_RIGHT = 'SeServiceLogonRight'; +begin + Init(hwndParent, string_size, variables, stacktop); + + AccountName := PopString; + + LSAResult := IntToStr(LSASecurityControl.GrantPrivilege(AccountName, SE_SERVICE_LOGON_RIGHT)); + PushString(LSAResult); +end; + +procedure RemoveServiceLogonPrivilege(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + AccountName: String; + LSAResult: String; +const + SE_SERVICE_LOGON_RIGHT = 'SeServiceLogonRight'; +begin + Init(hwndParent, string_size, variables, stacktop); + + AccountName := PopString; + + LSAResult := IntToStr(LSASecurityControl.RemovePrivilege(AccountName, SE_SERVICE_LOGON_RIGHT)); + PushString(LSAResult); +end; + +procedure GetErrorMessage(const hwndParent: HWND; const string_size: integer; + const variables: PChar; const stacktop: pointer); cdecl; +var + ErrorCode: Integer; + ErrorMessage: String; +begin + Init(hwndParent, string_size, variables, stacktop); + + ErrorCode := StrToInt(PopString); + + ErrorMessage := ServiceControl.GetErrorMessage(ErrorCode); + PushString(ErrorMessage); +end; + +exports InstallService; +exports ExistsService; +exports RemoveService; +exports StartService; +exports StopService; +exports PauseService; +exports ContinueService; +exports GetServiceName; +exports GetServiceDisplayName; +exports GetServiceStatus; +exports GetServiceBinaryPath; +exports GetServiceDescription; +exports GetServiceStartType; +exports GetServiceLogon; +exports GetServiceFailure; +exports GetServiceFailureFlag; +exports GetServiceDelayedAutoStartInfo; +exports SetServiceDescription; +exports SetServiceStartType; +exports SetServiceLogon; +exports SetServiceBinaryPath; +exports SetServiceFailure; +exports SetServiceFailureFlag; +exports SetServiceDelayedAutoStartInfo; +exports ServiceIsRunning; +exports ServiceIsStopped; +exports ServiceIsPaused; +exports RestartService; +exports GrantServiceLogonPrivilege; +exports RemoveServiceLogonPrivilege; +exports GetErrorMessage; + +end. diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dproj b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dproj new file mode 100644 index 00000000..e657efa9 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.dproj @@ -0,0 +1,910 @@ + + + {9A1C1FE1-FB44-40C4-9E22-99CAE6325532} + 18.8 + None + SimpleSC.dpr + True + Release + Win32 + 1 + Library + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + bindcompfmx;fmx;rtl;dbrtl;IndySystem;DbxClientDriver;bindcomp;inetdb;DBXInterBaseDriver;DataSnapCommon;DataSnapClient;DataSnapServer;DataSnapProviderClient;xmlrtl;DbxCommonDriver;IndyProtocols;DBXMySQLDriver;dbxcds;bindengine;soaprtl;DBXOracleDriver;dsnap;DBXInformixDriver;IndyCore;fmxase;DBXFirebirdDriver;inet;fmxobj;inetdbxpress;DBXSybaseASADriver;fmxdae;dbexpress;DataSnapIndy10ServerTransport;IPIndyImpl;$(DCC_UsePackage) + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + true + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + SimpleSC + + + None + C:\Developing\NSIS Simple Service Control - Unicode\ + C:\Developing\NSIS Simple Service Control - Unicode\ + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + frx16;TeeDB;Rave100VCL;vclib;Tee;inetdbbde;DBXOdbcDriver;svnui;ibxpress;DBXSybaseASEDriver;vclimg;frxDB16;intrawebdb_120_160;fmi;fs16;TeeUI;vclactnband;FMXTee;vcldb;vcldsnap;bindcompvcl;vclie;vcltouch;Intraweb_120_160;DBXDb2Driver;websnap;vclribbon;frxe16;fsDB16;vcl;DataSnapConnectors;CloudService;DBXMSSQLDriver;FmxTeeUI;dsnapcon;vclx;webdsnap;svn;bdertl;CodeSiteExpressPkg;adortl;vcldbx;VclSmp;$(DCC_UsePackage) + 1033 + CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) + + + DBXOdbcDriver;DBXSybaseASEDriver;vclimg;vclactnband;vcldb;vcldsnap;bindcompvcl;vclie;vcltouch;DBXDb2Driver;websnap;vcl;DBXMSSQLDriver;dsnapcon;vclx;webdsnap;VclSmp;$(DCC_UsePackage) + + + None + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + false + 1031 + false + 0 + 0 + + + C:\Developing\NSIS Simple Service Control - Unicode\ + C:\Developing\NSIS Simple Service Control - Unicode\ + 1033 + (Ohne) + + + + MainSource + + + + + + Cfg_2 + Base + + + Base + + + + Delphi.Personality.12 + + + + + False + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1031 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + SimpleSC.dpr + + + Microsoft Office 2000 Beispiele für gekapselte Komponenten für Automatisierungsserver + Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server + + + + + + true + + + + + true + + + + + true + + + + + 1 + + + 0 + + + + + classes + 1 + + + classes + 1 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + 1 + + + 1 + + + 0 + + + + + 1 + .framework + + + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + + True + False + + False + + 12 + + + + + diff --git a/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.res b/desktop/tauri/src-tauri/templates/NSIS_Simple_Service_Plugin_Unicode_1.30/Source/SimpleSC.res new file mode 100644 index 0000000000000000000000000000000000000000..743599575b02e97248bade49ed2e3eabafe25a0a GIT binary patch literal 96 zcmZQzU|>)H;{X347|28cOhBFu5dZ(r#Sp;Y!{Epe!r;c>&k)4m3uHM0X?F%!AS)QE O%YcEC1!e#vkO2UW7YiT& literal 0 HcmV?d00001 diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh new file mode 100644 index 00000000..77596f57 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -0,0 +1,126 @@ +!include LogicLib.nsh + +!addplugindir "..\..\..\..\templates\NSIS_Simple_Service_Plugin_Unicode_1.30" + +var oldInstallationDir +var dataDir + +!macro NSIS_HOOK_PREINSTALL + + ; Abort if old service is running + SimpleSC::ServiceIsStopped "PortmasterCore" + Pop $0 + Pop $1 + ${If} $0 == 0 + ${If} $1 == 0 + MessageBox MB_OK "Portmaster service is running. Stop it and run the installer again." + Abort + ${EndIf} + ${EndIf} + + File "..\..\..\..\binary\index.json" + File "..\..\..\..\binary\portmaster-core.exe" + File "..\..\..\..\binary\portmaster-kext.sys" + File "..\..\..\..\binary\portmaster-core.dll" + File "..\..\..\..\binary\WebView2Loader.dll" + File "..\..\..\..\binary\portmaster.zip" + File "..\..\..\..\binary\assets.zip" + + SetOutPath "$COMMONPROGRAMDATA\Portmaster\intel" + + File "..\..\..\..\intel\index.json" + File "..\..\..\..\intel\base.dsdl" + File "..\..\..\..\intel\geoipv4.mmdb" + File "..\..\..\..\intel\geoipv6.mmdb" + File "..\..\..\..\intel\index.dsd" + File "..\..\..\..\intel\intermediate.dsdl" + File "..\..\..\..\intel\urgent.dsdl" + + ; restire previous state + SetOutPath "$INSTDIR" + +!macroend + +;-------------------------------------------------- +; Post-install hook: +; - Remove old service +; - Installs the service +!macro NSIS_HOOK_POSTINSTALL + DetailPrint "Installing service" + ; Remove old service + SimpleSC::RemoveService "PortmasterCore" + Pop $0 + ${If} $0 != 0 + DetailPrint "Failed to remove PortmasterCore service. Error: $0" + ${EndIf} + + ; Install the service: + ; Parameters: + ; 1. Service Name: "PortmasterCore" + ; 2. Display Name: "Portmaster Core" + ; 3. Service Type: "16" for SERVICE_WIN32_OWN_PROCESS + ; 4. Start Type: "2" for SERVICE_AUTO_START + ; 5. Binary Path: Executable with arguments. + ; 6 & 7. Dependencies and account info (empty uses defaults). + SimpleSC::InstallService "PortmasterCore" "Portmaster Core" "16" "2" "$INSTDIR\portmaster-core.exe --log-dir=%PROGRAMDATA%\Portmaster\logs" "" "" "" + Pop $0 ; returns error code (0 on success) + ${If} $0 != 0 + SimpleSC::GetErrorMessage $installErr + Pop $0 + MessageBox MB_OK "Service creation failed. Error: $errorMsg" + Abort + ${EndIf} + + StrCpy $oldInstallationDir "$COMMONPROGRAMDATA\Safing\Portmaster" + StrCpy $dataDir "$COMMONPROGRAMDATA\Portmaster" + + ; Check if the folder exists + IfFileExists "$oldInstallationDir\*.*" 0 Finish + + ; Stop if the migration flag(file) already exists. + IfFileExists "$oldInstallationDir\migrated.txt" Finish 0 + + ; Copy files + DetailPrint "Migrating config from old installation: $oldInstallationDir" + + CreateDirectory "$dataDir" + CreateDirectory "$dataDir\databases" + CopyFiles "$oldInstallationDir\config.json" "$dataDir" + CopyFiles "$oldInstallationDir\databases\*.*" "$dataDir\databases" + + ; Create empty file to indicate that the data has already been migrated. + FileOpen $0 "$oldInstallationDir\migrated.txt" w + FileClose $0 + + ; Delete v1 shortcuts + RMDir /r "$SMPROGRAMS\Portmaster" + Delete "$SMSTARTUP\Portmaster Notifier.lnk" + + Finish: + +!macroend + +;-------------------------------------------------- +; Pre-uninstall hook: +; - Stops and removes the service. +!macro NSIS_HOOK_PREUNINSTALL + + DetailPrint "Stopping service" + SimpleSC::StopService "PortmasterCore" "1" "30" + Pop $0 + ${If} $0 != 0 + DetailPrint "Failed to stop PortmasterCore service. Error: $0" + ${Else} + DetailPrint "Service PortmasterCore stopped successfully." + ${EndIf} + + DetailPrint "Removing service" + SimpleSC::RemoveService "PortmasterCore" + Pop $0 + ${If} $0 != 0 + DetailPrint "Failed to remove PortmasterCore service. Error: $0" + ${Else} + DetailPrint "Service PortmasterCore removed successfully." + ${EndIf} +!macroend + diff --git a/desktop/tauri/src-tauri/templates/nsis_install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis_install_hooks.nsh deleted file mode 100644 index cc6ea2f2..00000000 --- a/desktop/tauri/src-tauri/templates/nsis_install_hooks.nsh +++ /dev/null @@ -1,37 +0,0 @@ -!macro NSIS_HOOK_PREINSTALL - ; Current working directory is \desktop\tauri\src-tauri\target\release\nsis\x64 - - SetOutPath "$INSTDIR" - - File "..\..\..\..\binary\index.json" - File "..\..\..\..\binary\portmaster-core.exe" - File "..\..\..\..\binary\portmaster-kext.sys" - File "..\..\..\..\binary\portmaster-core.dll" - File "..\..\..\..\binary\WebView2Loader.dll" - File "..\..\..\..\binary\portmaster.zip" - File "..\..\..\..\binary\assets.zip" - - SetOutPath "$COMMONPROGRAMDATA\Portmaster\intel" - - File "..\..\..\..\intel\index.json" - File "..\..\..\..\intel\base.dsdl" - File "..\..\..\..\intel\geoipv4.mmdb" - File "..\..\..\..\intel\geoipv6.mmdb" - File "..\..\..\..\intel\index.dsd" - File "..\..\..\..\intel\intermediate.dsdl" - File "..\..\..\..\intel\urgent.dsdl" - - ; restire previous state - SetOutPath "$INSTDIR" - -!macroend - -!macro NSIS_HOOK_POSTINSTALL - ExecWait 'sc.exe create PortmasterCore binPath= "$INSTDIR\portmaster-core.exe --log-dir=%PROGRAMDATA%\Portmaster\logs"' -!macroend - -!macro NSIS_HOOK_PREUNINSTALL - ExecWait 'sc.exe stop PortmasterCore' - ExecWait 'sc.exe delete PortmasterCore' -!macroend - diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index 6fec1212..905ea617 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -20,11 +20,13 @@ if (-not (Test-Path -Path $binaryDir)) { } Write-Output "Copying binary files" -Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-core.exe" -Destination "$binaryDir/portmaster-core.exe" Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-kext.sys" -Destination "$binaryDir/portmaster-kext.sys" -Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-kext.dll" -Destination "$binaryDir/portmaster-kext.dll" +Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-core.dll" -Destination "$binaryDir/portmaster-kext.dll" +Copy-Item -Force -Path "dist/binary/windows_amd64/portmaster-core.exe" -Destination "$binaryDir/portmaster-core.exe" +Copy-Item -Force -Path "dist/binary/windows_amd64/WebView2Loader.dll" -Destination "$binaryDir/WebView2Loader.dll" Copy-Item -Force -Path "dist/binary/all/portmaster.zip" -Destination "$binaryDir/portmaster.zip" Copy-Item -Force -Path "dist/binary/all/assets.zip" -Destination "$binaryDir/assets.zip" +Copy-Item -Force -Path "dist/binary/index.json" -Destination "$binaryDir/index.json" # Make sure target folder exists. if (-not (Test-Path -Path $targetDir)) { @@ -52,8 +54,7 @@ if (-not (Get-Command cargo -ErrorAction SilentlyContinue)) { } Write-Output "Downloading tauri-cli" - -Invoke-WebRequest -Uri https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.1.0/cargo-tauri-x86_64-pc-windows-msvc.zip -OutFile tauri-cli.zip +Invoke-WebRequest -Uri https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.2.7/cargo-tauri-x86_64-pc-windows-msvc.zip -OutFile tauri-cli.zip Expand-Archive -Force tauri-cli.zip ./tauri-cli/cargo-tauri.exe bundle From 22f8333eadf481757371c60f25bed5d05bf1e9d6 Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Thu, 27 Feb 2025 16:47:46 +0200 Subject: [PATCH 04/34] [packaging] Add Windows installer build doc --- packaging/README.md | 101 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 packaging/README.md diff --git a/packaging/README.md b/packaging/README.md new file mode 100644 index 00000000..2aa67044 --- /dev/null +++ b/packaging/README.md @@ -0,0 +1,101 @@ +# Generate Windows installer + +## Prerequisites + +Earthly release prep step must be executed and the output `dist` folder should be present in the root directory of the repository. (Probably needs to be done on separate machine running linux or downloaded from the CI) +``` + earthly +release-prep +``` + +## Building the installers + +In the root directory of the repository, run the PowerShell script to generate the installers: +``` +./packaging\windows\generate_windows_installers.ps1 +``` + +This will output both .exe (NSIS) and .msi (WIX) installers inside the dist folder: +``` +...\Portmaster\dist\windows_amd64\Portmaster_0.1.0_x64-setup.exe +...\Portmaster\dist\windows_amd64\Portmaster_0.1.0_x64_en-US.msi +``` + +## Manual build + +### Prerequisites + +Ensure you have Rust and Cargo installed. +Install Tauri CLI by running: +``` +cargo install tauri-cli --version "^2.0.0" --locked +``` + +### Folder structure + +Create binary and intel folder inside the tauri project folder and place all the necessary files inside. +The folder structure should look like this: +``` +...\Portmaster\desktop\tauri\src-tauri\binary + assets.zip + index.json + portmaster-core.dll + portmaster-core.exe + portmaster-kext.dll + portmaster-kext.sys + portmaster.zip + WebView2Loader.dll + +...\Portmaster\desktop\tauri\src-tauri\intel + base.dsdl + geoipv4.mmdb + geoipv6.mmdb + index.dsd + index.json + intermediate.dsdl + main-intel.yaml + news.yaml + notifications.yaml + urgent.dsdl +``` + +### Building the Installer + +Navigate to the `src-tauri` directory: +``` +cd desktop/tauri/src-tauri +``` + +Run the following commands to build the installers: + +For both NSIS and WIX installers: +``` +cargo tauri bundle +``` + +For NSIS installer only: +``` +cargo tauri bundle --bundles nsis +``` + +For WIX installer only: +``` +cargo tauri bundle --bundles wix +``` + +The produced files will be in: +``` +target\release\bundle\msi\ +target\release\bundle\nsis\ +``` + +## Debug MSI Installer + +To see error messages during the build of the installer, run the bundler with the verbose flag: +``` +cargo tauri bundle --bundles msi --verbose +``` + +To examine the logs during installation, run the installer with the following command: +``` +msiexec /i "target\release\bundle\msi\Portmaster_0.1.0_x64_en-US.msi" /lv install.log +``` \ No newline at end of file From c3f6eec7d63b06abd3f46444a5a5a70a00a7deeb Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Sat, 1 Mar 2025 01:13:51 +0200 Subject: [PATCH 05/34] Fix Earthly build --- Earthfile | 8 ++++---- desktop/angular/package-lock.json | 10 ++++++++++ desktop/angular/package.json | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Earthfile b/Earthfile index dae6aa93..d1de17eb 100644 --- a/Earthfile +++ b/Earthfile @@ -2,8 +2,8 @@ VERSION --arg-scope-and-set --global-cache 0.8 ARG --global go_version = 1.22 ARG --global node_version = 18 -ARG --global rust_version = 1.79 -ARG --global tauri_version = "2.0.1" +ARG --global rust_version = 1.81 +ARG --global tauri_version = "2.2.5" ARG --global golangci_lint_version = 1.57.1 ARG --global go_builder_image = "golang:${go_version}-alpine" @@ -426,7 +426,7 @@ rust-base: DO rust+INIT --keep_fingerprints=true # For now we need tauri-cli 2.0.0 for bulding - DO rust+CARGO --args="install tauri-cli --version 2.1.0 --locked" + DO rust+CARGO --args="install tauri-cli --version 2.2.7 --locked" # Explicitly cache here. SAVE IMAGE --cache-hint @@ -542,7 +542,7 @@ release-prep: # Copy required artifacts RUN cp ./output/download/windows_amd64/portmaster-kext.sys ./output/binary/windows_amd64/portmaster-kext.sys RUN cp ./output/download/windows_amd64/portmaster-kext.pdb ./output/binary/windows_amd64/portmaster-kext.pdb - RUN cp ./output/download/windows_amd64/portmaster-core.dll ./output/binary/windows_amd64/portmaster-core.dll + # RUN cp ./output/download/windows_amd64/portmaster-core.dll ./output/binary/windows_amd64/portmaster-core.dll # Create new binary index from artifacts RUN ./updatemgr scan --dir "./output/binary" > ./output/binary/index.json diff --git a/desktop/angular/package-lock.json b/desktop/angular/package-lock.json index 08606cf0..9d6d9e76 100644 --- a/desktop/angular/package-lock.json +++ b/desktop/angular/package-lock.json @@ -18,6 +18,7 @@ "@angular/platform-browser": "^16.0.1", "@angular/platform-browser-dynamic": "^16.0.1", "@angular/router": "^16.0.1", + "@ctrl/tinycolor": "^4.1.0", "@fortawesome/angular-fontawesome": "^0.13.0", "@fortawesome/fontawesome-svg-core": "^6.4.0", "@fortawesome/free-brands-svg-icons": "^6.4.0", @@ -3165,6 +3166,15 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@ctrl/tinycolor": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.1.0.tgz", + "integrity": "sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", diff --git a/desktop/angular/package.json b/desktop/angular/package.json index 18158086..1e1b8d9e 100644 --- a/desktop/angular/package.json +++ b/desktop/angular/package.json @@ -32,6 +32,7 @@ "@angular/platform-browser": "^16.0.1", "@angular/platform-browser-dynamic": "^16.0.1", "@angular/router": "^16.0.1", + "@ctrl/tinycolor": "^4.1.0", "@fortawesome/angular-fontawesome": "^0.13.0", "@fortawesome/fontawesome-svg-core": "^6.4.0", "@fortawesome/free-brands-svg-icons": "^6.4.0", From b6c3fba6917d87ce3471e7f912b9230290b4ef2c Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Mon, 3 Mar 2025 15:51:39 +0000 Subject: [PATCH 06/34] [fix] Installer: fixed locations to portmaster-kext.sys and portmaster-core.dll --- Earthfile | 6 +----- packaging/windows/generate_windows_installers.ps1 | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Earthfile b/Earthfile index d1de17eb..ab7c09a8 100644 --- a/Earthfile +++ b/Earthfile @@ -539,11 +539,6 @@ release-prep: # Get binary artifacts from current release RUN mkdir -p ./output/download/windows_amd64 && ./updatemgr download https://updates.safing.io/stable.v3.json --platform windows_amd64 ./output/download/windows_amd64 - # Copy required artifacts - RUN cp ./output/download/windows_amd64/portmaster-kext.sys ./output/binary/windows_amd64/portmaster-kext.sys - RUN cp ./output/download/windows_amd64/portmaster-kext.pdb ./output/binary/windows_amd64/portmaster-kext.pdb - # RUN cp ./output/download/windows_amd64/portmaster-core.dll ./output/binary/windows_amd64/portmaster-core.dll - # Create new binary index from artifacts RUN ./updatemgr scan --dir "./output/binary" > ./output/binary/index.json @@ -556,6 +551,7 @@ release-prep: SAVE ARTIFACT --if-exists --keep-ts "output/binary/linux_amd64/*" AS LOCAL "${outputDir}/binary/linux_amd64/" SAVE ARTIFACT --if-exists --keep-ts "output/binary/windows_amd64/*" AS LOCAL "${outputDir}/binary/windows_amd64/" SAVE ARTIFACT --if-exists --keep-ts "output/intel/*" AS LOCAL "${outputDir}/intel/" + SAVE ARTIFACT --if-exists --keep-ts "output/download/windows_amd64/portmaster-kext.*" AS LOCAL "${outputDir}/download/windows_amd64/" # precompiled (downloaded) KEXT binary # Save all artifacts to the container output folder so other containers can access it. SAVE ARTIFACT --if-exists --keep-ts "output/binary/index.json" "output/binary/index.json" diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index 905ea617..5907c415 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -21,7 +21,7 @@ if (-not (Test-Path -Path $binaryDir)) { Write-Output "Copying binary files" Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-kext.sys" -Destination "$binaryDir/portmaster-kext.sys" -Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-core.dll" -Destination "$binaryDir/portmaster-kext.dll" +Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-core.dll" -Destination "$binaryDir/portmaster-core.dll" Copy-Item -Force -Path "dist/binary/windows_amd64/portmaster-core.exe" -Destination "$binaryDir/portmaster-core.exe" Copy-Item -Force -Path "dist/binary/windows_amd64/WebView2Loader.dll" -Destination "$binaryDir/WebView2Loader.dll" Copy-Item -Force -Path "dist/binary/all/portmaster.zip" -Destination "$binaryDir/portmaster.zip" From 0200404eacb6ba15eb696ee108ef5d64a3afffba Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Tue, 4 Mar 2025 18:07:56 +0200 Subject: [PATCH 07/34] [desktop] Add migration and improve msi installer --- desktop/tauri/src-tauri/tauri.conf.json5 | 7 +- desktop/tauri/src-tauri/templates/service.wxs | 37 --------- .../templates/wix/CheckServiceStatus.vbs | 44 +++++++++++ .../src-tauri/templates/wix/Migration.vbs | 78 +++++++++++++++++++ .../src-tauri/templates/{ => wix}/files.wxs | 26 ++++++- .../src-tauri/templates/{ => wix}/main.wxs | 17 ++-- .../templates/{ => wix}/main_original.wxs | 7 +- .../src-tauri/templates/wix/migration.wxs | 28 +++++++ .../templates/wix/old_service_check.wxs | 20 +++++ 9 files changed, 216 insertions(+), 48 deletions(-) delete mode 100644 desktop/tauri/src-tauri/templates/service.wxs create mode 100644 desktop/tauri/src-tauri/templates/wix/CheckServiceStatus.vbs create mode 100644 desktop/tauri/src-tauri/templates/wix/Migration.vbs rename desktop/tauri/src-tauri/templates/{ => wix}/files.wxs (70%) rename desktop/tauri/src-tauri/templates/{ => wix}/main.wxs (94%) rename desktop/tauri/src-tauri/templates/{ => wix}/main_original.wxs (97%) create mode 100644 desktop/tauri/src-tauri/templates/wix/migration.wxs create mode 100644 desktop/tauri/src-tauri/templates/wix/old_service_check.wxs diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index 52b2f25a..c95b4684 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -123,11 +123,12 @@ }, "wix": { "fragmentPaths": [ - "templates/service.wxs", - "templates/files.wxs" + "templates/wix/files.wxs", + "templates/wix/old_service_check.wxs", + "templates/wix/migration.wxs", ], "componentGroupRefs": ["BinaryAndIntelFiles"], - "template": "templates/main.wxs" + "template": "templates/wix/main.wxs" } }, "targets": [ diff --git a/desktop/tauri/src-tauri/templates/service.wxs b/desktop/tauri/src-tauri/templates/service.wxs deleted file mode 100644 index 3e829bd7..00000000 --- a/desktop/tauri/src-tauri/templates/service.wxs +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - REMOVE - - - REMOVE - - - - diff --git a/desktop/tauri/src-tauri/templates/wix/CheckServiceStatus.vbs b/desktop/tauri/src-tauri/templates/wix/CheckServiceStatus.vbs new file mode 100644 index 00000000..b1801ac3 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/wix/CheckServiceStatus.vbs @@ -0,0 +1,44 @@ +Option Explicit + +Dim objShell, objExec, strOutput, arrLines, i, arrStatus + +' Create an instance of the WScript.Shell object +Set objShell = CreateObject("WScript.Shell") + +' Run the sc.exe command to query the service +Set objExec = objShell.Exec("cmd /c sc.exe query PortmasterCore") + +' Initialize an empty string to store the output +strOutput = "" + +' Read all output from the command line +Do While Not objExec.StdOut.AtEndOfStream + strOutput = strOutput & objExec.StdOut.ReadLine() & vbCrLf +Loop + +' Split the output into lines +arrLines = Split(strOutput, vbCrLf) + +' Example Output +' SERVICE_NAME: PortmasterCore +' TYPE : 10 WIN32_OWN_PROCESS +' STATE : 1 STOPPED +' WIN32_EXIT_CODE : 1077 (0x435) +' SERVICE_EXIT_CODE : 0 (0x0) +' CHECKPOINT : 0x0 +' WAIT_HINT : 0x0 + +For i = LBound(arrLines) To UBound(arrLines) + ' Example line: STATE : 1 STOPPED + If InStr(arrLines(i), "STATE") > 0 Then + ' Extract and display the service state + ' Example string: "1 STOPPED" + arrStatus = Split(Trim(Mid(arrLines(i), InStr(arrLines(i), ":") + 1)), " ") + ' Anything other the STOPPED consider as running + If Not arrStatus(2) = "STOPPED" Then + MsgBox("Portmaster service is running. Stop it and run the installer again.") + ' Notify the installer that it should fail. + WScript.Quit 1 + End If + End If +Next \ No newline at end of file diff --git a/desktop/tauri/src-tauri/templates/wix/Migration.vbs b/desktop/tauri/src-tauri/templates/wix/Migration.vbs new file mode 100644 index 00000000..26b96d93 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/wix/Migration.vbs @@ -0,0 +1,78 @@ +Dim FSO +Set FSO = CreateObject("Scripting.FileSystemObject") + +Dim customData, args, oldInstallationDir, migrationFlagFile, newDataDir, doMigration +customData = Session.Property("CustomActionData") + +' Split the string by commas +args = Split(customData, ",") + +' Access individual arguments +Dim commonAppDataFolder, programMenuFolder, startupFolder, appDataFolder +commonAppDataFolder = Trim(args(0)) +programMenuFolder = Trim(args(1)) +startupFolder = Trim(args(2)) +appDataFolder = Trim(args(3)) + +' Read variables from the session object +oldInstallationDir = commonAppDataFolder & "Safing\Portmaster\" +newDataDir = commonAppDataFolder & "Portmaster" +migrationFlagFile = oldInstallationDir & "migrated.txt" +doMigration = true + +' Check for existing installtion +If Not fso.FolderExists(oldInstallationDir) Then + doMigration = false +End If + +' Check if migration was already done +If fso.FileExists(migrationFlagFile) Then + doMigration = false +End If + +If doMigration Then + ' Copy the config file + dim configFile + configFile = "config.json" + If fso.FileExists(oldInstallationDir & configFile) Then + fso.CopyFile oldInstallationDir & configFile, newDataDir & configFile + End If + + ' Copy the database folder + dim databaseFolder + databaseFolder = "databases" + If fso.FolderExists(oldInstallationDir & databaseFolder) Then + fso.CopyFolder oldInstallationDir & databaseFolder, newDataDir & databaseFolder + End If + + ' Delete shortcuts + dim shortcutsFolder + notifierShortcut = programMenuFolder & "Portmaster/Portmaster Notifier.lnk" + If fso.FileExists(notifierShortcut) Then + fso.DeleteFile notifierShortcut, True + End If + + ' Delete startup shortcut + dim srartupFile + srartupFile = startupFolder & "Portmaster Notifier.lnk" + If fso.FileExists(srartupFile) Then + fso.DeleteFile srartupFile, True + End If + + ' Delete shortuct in user folder + dim userShortcut + userShortcut = appDataFolder & "Microsoft\Windows\Start Menu\Programs\Portmaster.lnk" + If fso.FileExists(userShortcut) Then + fso.DeleteFile userShortcut, True + End If + + ' Delete the old installer + dim oldUninstaller + oldUninstaller = oldInstallationDir & "portmaster-uninstaller.exe" + If fso.FileExists(oldUninstaller) Then + fso.DeleteFile oldUninstaller, True + End If + + ' Set the migration flag file + fso.CreateTextFile(migrationFlagFile).Close +End If \ No newline at end of file diff --git a/desktop/tauri/src-tauri/templates/files.wxs b/desktop/tauri/src-tauri/templates/wix/files.wxs similarity index 70% rename from desktop/tauri/src-tauri/templates/files.wxs rename to desktop/tauri/src-tauri/templates/wix/files.wxs index 14159aa8..0fd5a801 100644 --- a/desktop/tauri/src-tauri/templates/files.wxs +++ b/desktop/tauri/src-tauri/templates/wix/files.wxs @@ -13,7 +13,6 @@ - @@ -30,12 +29,37 @@ + + + + + + + + \ No newline at end of file diff --git a/desktop/tauri/src-tauri/templates/main.wxs b/desktop/tauri/src-tauri/templates/wix/main.wxs similarity index 94% rename from desktop/tauri/src-tauri/templates/main.wxs rename to desktop/tauri/src-tauri/templates/wix/main.wxs index f62f27a3..f0d261ce 100644 --- a/desktop/tauri/src-tauri/templates/main.wxs +++ b/desktop/tauri/src-tauri/templates/wix/main.wxs @@ -70,9 +70,12 @@ {{/if}} - - + + + + + @@ -161,6 +164,7 @@ + @@ -323,6 +327,7 @@ Execute="commit" Impersonate="yes" ExeCommand="powershell.exe -WindowStyle hidden .\install-task.ps1" /> + NOT(REMOVE) @@ -348,9 +353,11 @@ - - - + + + + + \ No newline at end of file diff --git a/desktop/tauri/src-tauri/templates/main_original.wxs b/desktop/tauri/src-tauri/templates/wix/main_original.wxs similarity index 97% rename from desktop/tauri/src-tauri/templates/main_original.wxs rename to desktop/tauri/src-tauri/templates/wix/main_original.wxs index b1d2672a..136c89ad 100644 --- a/desktop/tauri/src-tauri/templates/main_original.wxs +++ b/desktop/tauri/src-tauri/templates/wix/main_original.wxs @@ -70,9 +70,12 @@ {{/if}} - - + + + + + diff --git a/desktop/tauri/src-tauri/templates/wix/migration.wxs b/desktop/tauri/src-tauri/templates/wix/migration.wxs new file mode 100644 index 00000000..dd713e5a --- /dev/null +++ b/desktop/tauri/src-tauri/templates/wix/migration.wxs @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + NOT(REMOVE) + NOT(REMOVE) + + + + diff --git a/desktop/tauri/src-tauri/templates/wix/old_service_check.wxs b/desktop/tauri/src-tauri/templates/wix/old_service_check.wxs new file mode 100644 index 00000000..78e24c25 --- /dev/null +++ b/desktop/tauri/src-tauri/templates/wix/old_service_check.wxs @@ -0,0 +1,20 @@ + + + + + + + + + + + + NOT(REMOVE) + + + + From 161b75e39e0b81de2f0b40084bebb98fc53418eb Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Tue, 4 Mar 2025 18:08:17 +0200 Subject: [PATCH 08/34] [desktop] Improve NSIS migration installer --- .../src-tauri/templates/nsis/install_hooks.nsh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index 77596f57..f3778313 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -6,7 +6,6 @@ var oldInstallationDir var dataDir !macro NSIS_HOOK_PREINSTALL - ; Abort if old service is running SimpleSC::ServiceIsStopped "PortmasterCore" Pop $0 @@ -65,12 +64,14 @@ var dataDir SimpleSC::InstallService "PortmasterCore" "Portmaster Core" "16" "2" "$INSTDIR\portmaster-core.exe --log-dir=%PROGRAMDATA%\Portmaster\logs" "" "" "" Pop $0 ; returns error code (0 on success) ${If} $0 != 0 - SimpleSC::GetErrorMessage $installErr + SimpleSC::GetErrorMessage $0 Pop $0 - MessageBox MB_OK "Service creation failed. Error: $errorMsg" + MessageBox MB_OK "Service creation failed. Error: $0" Abort ${EndIf} + SimpleSC::SetServiceDescription "PortmasterCore" "Portmaster Application Firewall - Core Service" + StrCpy $oldInstallationDir "$COMMONPROGRAMDATA\Safing\Portmaster" StrCpy $dataDir "$COMMONPROGRAMDATA\Portmaster" @@ -96,6 +97,14 @@ var dataDir RMDir /r "$SMPROGRAMS\Portmaster" Delete "$SMSTARTUP\Portmaster Notifier.lnk" + ; Delete v1 uninstaller + Delete "$oldInstallationDir\portmaster-uninstaller.exe" + + ; Delete v1 user shortuct if there. + SetShellVarContext current + Delete "$AppData\Microsoft\Windows\Start Menu\Programs\Portmaster.lnk" + SetShellVarContext all + Finish: !macroend From d74083ced856a260c028ba05aa503222b1bd2167 Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Tue, 4 Mar 2025 18:09:10 +0200 Subject: [PATCH 09/34] [desktop] Improve tauri update doc --- desktop/tauri/src-tauri/README.md | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/desktop/tauri/src-tauri/README.md b/desktop/tauri/src-tauri/README.md index a057e285..790af3fa 100644 --- a/desktop/tauri/src-tauri/README.md +++ b/desktop/tauri/src-tauri/README.md @@ -1,6 +1,7 @@ # Update Tauri guide -Check latest versions of tauri packages and update them accordingly: +Check latest versions of tauri packages and update them accordingly (https://crates.io/) +Cargo.toml: ```toml [build-dependencies] tauri-build = { version = "2.0.0-beta.19", features = [] } # Update to latest @@ -21,21 +22,25 @@ tauri-plugin-window-state = "2.0.0-beta" tauri-cli = "2.0.0-beta.21" # Update to latest ``` -> The plugins will be auto updated based on tauri version. - Run: ```sh cargo update ``` -Update WIX installer template: -1. Get the latests [main.wxs](https://github.com/tauri-apps/tauri/blob/dev/tooling/bundler/src/bundle/windows/templates/main.wxs) template from the repository. -2. Replace the contents of `templates/main_original.wxs` with the repository version. -3. Replace the contents of `templates/main.wsx` and add the fallowing lines at the end of the file, inside the `Product` tag. +> Make sure to update the npm tauri plugin dependencies to have the same version as the rust plugins. (desktop/angular) + +## Update WIX installer template + +> If the migration functionality is not needed anymore remove the template, this will cause tauri to use its default template and not call the migration script. + +1. Get the latest [main.wxs](https://github.com/tauri-apps/tauri/blob/dev/tooling/bundler/src/bundle/windows/templates/main.wxs) template from the repository. +2. Replace the contents of `templates/wix/main_original.wxs` with the repository version. (The file is kept only for reference) +3. Replace the contents of `templates/wix/main.wsx` and add the fallowing lines at the end of the file, inside the `Product` tag. ```xml - - - + + + + ``` From df6e95dcd7517ccee1038bb30d51bfc18aa2d61e Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Wed, 5 Mar 2025 16:13:00 +0200 Subject: [PATCH 10/34] [packaging] Add migration for linux installers --- .../src-tauri/gen/schemas/linux-schema.json | 50 +++++++++++++++++++ packaging/linux/portmaster.service | 2 +- packaging/linux/postinst | 25 +++++++++- service/config.go | 2 +- 4 files changed, 76 insertions(+), 3 deletions(-) diff --git a/desktop/tauri/src-tauri/gen/schemas/linux-schema.json b/desktop/tauri/src-tauri/gen/schemas/linux-schema.json index 905008b7..5bd064ed 100644 --- a/desktop/tauri/src-tauri/gen/schemas/linux-schema.json +++ b/desktop/tauri/src-tauri/gen/schemas/linux-schema.json @@ -1100,6 +1100,11 @@ "type": "string", "const": "core:webview:allow-reparent" }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color" + }, { "description": "Enables the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -1180,6 +1185,11 @@ "type": "string", "const": "core:webview:deny-reparent" }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color" + }, { "description": "Denies the set_webview_focus command without any pre-configured scope.", "type": "string", @@ -1395,6 +1405,21 @@ "type": "string", "const": "core:window:allow-set-always-on-top" }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color" + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count" + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label" + }, { "description": "Enables the set_closable command without any pre-configured scope.", "type": "string", @@ -1480,6 +1505,11 @@ "type": "string", "const": "core:window:allow-set-minimizable" }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon" + }, { "description": "Enables the set_position command without any pre-configured scope.", "type": "string", @@ -1740,6 +1770,21 @@ "type": "string", "const": "core:window:deny-set-always-on-top" }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color" + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count" + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label" + }, { "description": "Denies the set_closable command without any pre-configured scope.", "type": "string", @@ -1825,6 +1870,11 @@ "type": "string", "const": "core:window:deny-set-minimizable" }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon" + }, { "description": "Denies the set_position command without any pre-configured scope.", "type": "string", diff --git a/packaging/linux/portmaster.service b/packaging/linux/portmaster.service index 6de86eb7..5a56ceb3 100644 --- a/packaging/linux/portmaster.service +++ b/packaging/linux/portmaster.service @@ -34,7 +34,7 @@ AmbientCapabilities=cap_chown cap_kill cap_net_admin cap_net_bind_service cap_ne CapabilityBoundingSet=cap_chown cap_kill cap_net_admin cap_net_bind_service cap_net_broadcast cap_net_raw cap_sys_module cap_sys_ptrace cap_dac_override cap_fowner cap_fsetid cap_sys_resource cap_bpf cap_perfmon StateDirectory=portmaster # TODO(ppacher): add --disable-software-updates once it's merged and the release process changed. -WorkingDirectory=/var/lib/portmaster/data +WorkingDirectory=/var/lib/portmaster ExecStart=/usr/lib/portmaster/portmaster-core --log-dir=/var/lib/portmaster/log -- $PORTMASTER_ARGS ExecStopPost=-/usr/lib/portmaster/portmaster-core -recover-iptables diff --git a/packaging/linux/postinst b/packaging/linux/postinst index 60e3d97e..094fdcbf 100644 --- a/packaging/linux/postinst +++ b/packaging/linux/postinst @@ -11,10 +11,33 @@ if command -V semanage >/dev/null 2>&1; then restorecon -R /usr/lib/portmaster/portmaster-core 2>/dev/null >&2 || : fi +# Migration from v1 +OLD_INSTALLATION_DIR="/opt/safing/portmaster" +MIGRATED_FILE_FLAG="$OLD_INSTALLATION_DIR/migrated.txt" + +if [ ! -e "$MIGRATED_FILE_FLAG" ]; then + echo "Starting migration form v1" + + # Becoause the service file need to change path, first the links to the old service needs to be removed. + systemctl stop portmaster.service + systemctl disable portmaster.service + + # Migrate config + cp -r $OLD_INSTALLATION_DIR/databases /var/lib/portmaster + cp -r $OLD_INSTALLATION_DIR/config.json /var/lib/portmaster/config.json + + # Remove shortcut + rm /etc/xdg/autostart/portmaster_notifier.desktop + rm /usr/share/applications/portmaster_notifier.desktop + + touch $MIGRATED_FILE_FLAG + echo "Migration complete" +fi + mv /usr/bin/portmaster /usr/lib/portmaster/portmaster ln -s /usr/lib/portmaster/portmaster /usr/bin/portmaster systemctl daemon-reload systemctl enable portmaster.service -echo "Please reboot your system" \ No newline at end of file +echo "Please reboot your system" diff --git a/service/config.go b/service/config.go index f7b1f12c..39ad2d03 100644 --- a/service/config.go +++ b/service/config.go @@ -35,7 +35,7 @@ func (sc *ServiceConfig) Init() error { if sc.BinDir == "" { exeDir, err := getCurrentBinaryFolder() // Default: C:/Program Files/Portmaster if err != nil { - return fmt.Errorf("derive bin dir from runnning exe: %w", err) + return fmt.Errorf("derive bin dir from running exe: %w", err) } sc.BinDir = exeDir } From 93b9130a6933ebd1423111d0e578c08ceaf4d271 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Wed, 5 Mar 2025 17:36:18 +0200 Subject: [PATCH 11/34] [Packaging] Improved script for creating Windows installers --- .../windows/generate_windows_installers.ps1 | 215 +++++++++++++----- 1 file changed, 157 insertions(+), 58 deletions(-) diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index 5907c415..96ab6528 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -1,75 +1,174 @@ # Tested with docker image 'abrarov/msvc-2022:latest' # sha256:f49435d194108cd56f173ad5bc6a27c70eed98b7e8cd54488f5acd85efbd51c9 -# Run: -# Start powershell and cd to the root of the project. Then run: -# $path = Convert-Path . # Get the absolute path of the current directory -# docker run -it --rm -v "${path}:C:/app" -w "C:/app" abrarov/msvc-2022 powershell -NoProfile -File C:/app/packaging/windows/generate_windows_installer.ps1 +# Running inside Docker container +# +# Note! Ensure you switched Docker Desktop to use Windows containers. +# Start powershell and cd to the root of the project. +# Then run: +# $path = Convert-Path . # Get the absolute path of the current directory +# docker run -it --rm -v "${path}:C:/app" -w "C:/app" abrarov/msvc-2022 powershell -NoProfile -File C:/app/packaging/windows/generate_windows_installers.ps1 + +# Optional arguments: +# -i, --interactive: Can prompt for user input (e.g. when a file is not found in the primary folder but found in the alternate folder) +param ( + [Alias('i')] + [switch]$interactive +) # Save the current directory $originalDirectory = Get-Location +# <<<<<<<<<<<<<<<<<<<<<<< Functions <<<<<<<<<<<<<<<<<<<<<<< + +# Function to copy a file, with fallback to an alternative location and detailed logging +# Parameters: +# $SourceDir - Primary directory to search for the file +# $File - Name of the file to copy +# $DestinationDir - Directory where the file will be copied to +# $AlternateSourceDir - Fallback directory if file is not found in $SourceDir +# +# Behavior: +# - Checks if the file exists in the primary source directory +# - If not found and an alternate directory is provided, checks there +# - In interactive mode, asks for confirmation before using the alternate source +# - Logs details about the copied file (path, size, timestamp, version) +# - Returns error and exits if file cannot be found or copied +function Find-And-Copy-File { + param ( + [string]$SourceDir, + [string]$File, + [string]$DestinationDir, + [string]$AlternateSourceDir + ) + $destinationPath = "$DestinationDir/$File" + $fullSourcePath = if ($SourceDir) { "$SourceDir/$File" } else { "" } + + if ($AlternateSourceDir -and (-not $fullSourcePath -or -not (Test-Path -Path $fullSourcePath))) { + # File doesn't exist, check in alternate folder + $fallbackSourcePath = "$AlternateSourceDir/$File" + if (Test-Path -Path $fallbackSourcePath) { + if ($interactive -and $fullSourcePath) { # Do not prompt if the sourceDir is empty or "interactive" mode is not set + $response = Read-Host " [?] The file '$File' found only in fallback '$AlternateSourceDir' folder.`n Do you want to use it? (y/n)" + if ($response -ne 'y' -and $response -ne 'Y') { + Write-Error "Cancelled. Required file not found: $fullSourcePath" + exit 1 + } + } + $fullSourcePath = $fallbackSourcePath + } else { + Write-Error "Required file '$File' not found in: '$SourceDir', '$AlternateSourceDir'" + exit 1 + } + } + + try { + # Print details about the file + $fileInfo = Get-Item -Path $fullSourcePath + $output = "{0,-22}: {1,-28} -> {2,-38} [{3,-20} {4,18}{5}]" -f + $File, + $(Split-Path -Path $fullSourcePath -Parent), + $(Split-Path -Path $destinationPath -Parent), + "$($fileInfo.LastAccessTime.ToString("yyyy-MM-dd HH:mm:ss"));", + "$($fileInfo.Length) bytes", + $(if ($fileInfo.VersionInfo.FileVersion) { "; v$($fileInfo.VersionInfo.FileVersion)" } else { "" }) + Write-Output "$output" + + # Create destination directory if not exists + if (-not (Test-Path -Path $DestinationDir)) { + New-Item -ItemType Directory -Path $DestinationDir -ErrorAction Stop > $null + } + # Copy the file + Copy-Item -Force -Path "${fullSourcePath}" -Destination "${destinationPath}" -ErrorAction Stop + } catch { + Write-Error "Failed to copy file from '$fullSourcePath' to '$destinationPath'.`nError: $_" + exit 1 + } +} +# >>>>>>>>>>>>>>>>>>>>>>> End Functions >>>>>>>>>>>>>>>>>>>>>>>> + +# CONSTANTS $destinationDir = "desktop/tauri/src-tauri" -$binaryDir = "$destinationDir/binary" -$intelDir = "$destinationDir/intel" -$targetDir = "$destinationDir/target/release" +$binaryDir = "$destinationDir/binary" #portmaster\desktop\tauri\src-tauri\binary +$intelDir = "$destinationDir/intel" #portmaster\desktop\tauri\src-tauri\intel +$targetDir = "$destinationDir/target/release" #portmaster\desktop\tauri\src-tauri\target\release -# Make sure binary folder exists. -if (-not (Test-Path -Path $binaryDir)) { - New-Item -ItemType Directory -Path $binaryDir > $null +# Copying BINARY FILES +Write-Output "`n[+] Copying binary files:" +$filesToCopy = @( + @{Folder=""; File="portmaster-kext.sys"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-core.dll"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-core.exe"; Destination=$binaryDir}, + @{Folder="dist/binary/windows_amd64"; File="WebView2Loader.dll"; Destination=$binaryDir}, + @{Folder="dist/binary/all"; File="portmaster.zip"; Destination=$binaryDir}, + @{Folder="dist/binary/all"; File="assets.zip"; Destination=$binaryDir}, + @{Folder="dist/binary"; File="index.json"; Destination=$binaryDir}, + @{Folder="dist/binary/windows_amd64"; File="portmaster.exe"; Destination=$targetDir} +) +foreach ($file in $filesToCopy) { + Find-And-Copy-File -SourceDir $file.Folder -File $file.File -DestinationDir $file.Destination -AlternateSourceDir $file.AlternateFolder } -Write-Output "Copying binary files" -Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-kext.sys" -Destination "$binaryDir/portmaster-kext.sys" -Copy-Item -Force -Path "dist/download/windows_amd64/portmaster-core.dll" -Destination "$binaryDir/portmaster-core.dll" -Copy-Item -Force -Path "dist/binary/windows_amd64/portmaster-core.exe" -Destination "$binaryDir/portmaster-core.exe" -Copy-Item -Force -Path "dist/binary/windows_amd64/WebView2Loader.dll" -Destination "$binaryDir/WebView2Loader.dll" -Copy-Item -Force -Path "dist/binary/all/portmaster.zip" -Destination "$binaryDir/portmaster.zip" -Copy-Item -Force -Path "dist/binary/all/assets.zip" -Destination "$binaryDir/assets.zip" -Copy-Item -Force -Path "dist/binary/index.json" -Destination "$binaryDir/index.json" - -# Make sure target folder exists. -if (-not (Test-Path -Path $targetDir)) { - New-Item -ItemType Directory -Path $targetDir > $null -} -Copy-Item -Force -Path "dist/binary/windows_amd64/portmaster.exe" -Destination "$targetDir/portmaster.exe" - -# Make sure intel folder exists. +# Copying INTEL FILES +Write-Output "`n[+] Copying intel files" if (-not (Test-Path -Path $intelDir)) { - New-Item -ItemType Directory -Path $intelDir > $null + New-Item -ItemType Directory -Path $intelDir -ErrorAction Stop > $null } - -Write-Output "Copying intel files" -Copy-Item -Force -Path "dist/intel/*" -Destination "$intelDir/" +Copy-Item -Force -Path "dist/intel/*" -Destination "$intelDir/" -ErrorAction Stop Set-Location $destinationDir +try { + # Ensure Rust toolchain is installed + if (-not (Get-Command cargo -ErrorAction SilentlyContinue)) { + Write-Output "[+] Installing rust toolchain..." + Start-BitsTransfer -Source "https://win.rustup.rs/x86_64" -Destination "rustup.exe" + ./rustup.exe install --no-self-update stable + $env:PATH += ";C:\Users\ContainerAdministrator\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\" + } -if (-not (Get-Command cargo -ErrorAction SilentlyContinue)) { - Write-Output "Installing rust toolchain..." - Invoke-WebRequest -Uri https://win.rustup.rs/x86_64 -OutFile rustup.exe - ./rustup.exe install stable - $env:PATH += ";C:\Users\ContainerAdministrator\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\" -} else { - Write-Output "'cargo' command is already available" + # Ensure Tauri CLI is available + $cargoTauriCommand = "cargo-tauri.exe" + if (-not (Get-Command $cargoTauriCommand -ErrorAction SilentlyContinue)) { + if (-not (Test-Path "./tauri-cli/cargo-tauri.exe")) { + Write-Output "[+] Tauri CLI not found. Downloading tauri-cli" + Start-BitsTransfer -Source "https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.2.7/cargo-tauri-x86_64-pc-windows-msvc.zip" -Destination "tauri-cli.zip" + Expand-Archive -Force tauri-cli.zip + } + if (-not (Test-Path "./tauri-cli/cargo-tauri.exe")) { + Write-Error "Tauri CLI not found. Download failed." + exit 1 + } + $cargoTauriCommand = "./tauri-cli/cargo-tauri.exe" + } + + Write-Output "[i] VERSIONS INFO:" + Write-Output " Tauri CLI: $((& $cargoTauriCommand -V | Out-String).Trim().Replace("`r`n", " "))" + Write-Output " Rust : $((rustc -V | Out-String).Trim().Replace("`r`n", " ")); $((cargo -V | Out-String).Trim().Replace("`r`n", " "))" + Write-Output "" + + # Building Tauri app bundle + Write-Output "[+] Building Tauri app bundle" + & $cargoTauriCommand bundle + if ($LASTEXITCODE -ne 0) { + Write-Error "Tauri bundle command failed with exit code $LASTEXITCODE" + exit 1 + } + + Write-Output "[+] Copying generated bundles" + $installerDist = "..\..\..\dist\windows_amd64\" + if (-not (Test-Path -Path $installerDist)) { + New-Item -ItemType Directory -Path $installerDist -ErrorAction Stop > $null + } + Copy-Item -Path ".\target\release\bundle\msi\*" -Destination $installerDist -ErrorAction Stop + Copy-Item -Path ".\target\release\bundle\nsis\*" -Destination $installerDist -ErrorAction Stop + + Write-Output "[i] Done." + Write-Output " Installer files are available in: $(Resolve-Path $installerDist)" +} catch { + Write-Error "[!] Failed! Error: $_" + exit 1 } - -Write-Output "Downloading tauri-cli" -Invoke-WebRequest -Uri https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v2.2.7/cargo-tauri-x86_64-pc-windows-msvc.zip -OutFile tauri-cli.zip -Expand-Archive -Force tauri-cli.zip -./tauri-cli/cargo-tauri.exe bundle - - -Write-Output "Copying generated bundles" -$installerDist = "..\..\..\dist\windows_amd64\" -# Make sure distination folder exists. -if (-not (Test-Path -Path $installerDist)) { - New-Item -ItemType Directory -Path $installerDist > $null -} - -Copy-Item -Path ".\target\release\bundle\msi\*" -Destination $installerDist -Copy-Item -Path ".\target\release\bundle\nsis\*" -Destination $installerDist - - -# Restore the original directory -Set-Location $originalDirectory - +finally { + # Restore the original directory if not already done + Set-Location $originalDirectory +} \ No newline at end of file From 9324c59f7b2d4f66b8a19ea3580adcf77c722cfe Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Wed, 5 Mar 2025 21:06:54 +0200 Subject: [PATCH 12/34] [packaging] Add check if old install folder exists --- packaging/linux/postinst | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/packaging/linux/postinst b/packaging/linux/postinst index 094fdcbf..a0f90d0e 100644 --- a/packaging/linux/postinst +++ b/packaging/linux/postinst @@ -15,23 +15,25 @@ fi OLD_INSTALLATION_DIR="/opt/safing/portmaster" MIGRATED_FILE_FLAG="$OLD_INSTALLATION_DIR/migrated.txt" -if [ ! -e "$MIGRATED_FILE_FLAG" ]; then - echo "Starting migration form v1" +if [ -d "$OLD_INSTALLATION_DIR" ]; then + if [ ! -e "$MIGRATED_FILE_FLAG" ]; then + echo "Starting migration form v1" - # Becoause the service file need to change path, first the links to the old service needs to be removed. - systemctl stop portmaster.service - systemctl disable portmaster.service + # Becoause the service file need to change path, first the links to the old service needs to be removed. + systemctl stop portmaster.service + systemctl disable portmaster.service - # Migrate config - cp -r $OLD_INSTALLATION_DIR/databases /var/lib/portmaster - cp -r $OLD_INSTALLATION_DIR/config.json /var/lib/portmaster/config.json + # Migrate config + cp -r $OLD_INSTALLATION_DIR/databases /var/lib/portmaster + cp -r $OLD_INSTALLATION_DIR/config.json /var/lib/portmaster/config.json - # Remove shortcut - rm /etc/xdg/autostart/portmaster_notifier.desktop - rm /usr/share/applications/portmaster_notifier.desktop + # Remove shortcut + rm /etc/xdg/autostart/portmaster_notifier.desktop + rm /usr/share/applications/portmaster_notifier.desktop - touch $MIGRATED_FILE_FLAG - echo "Migration complete" + touch $MIGRATED_FILE_FLAG + echo "Migration complete" + fi fi mv /usr/bin/portmaster /usr/lib/portmaster/portmaster From 911255e1d2254d6619ea3d1642b4d6085e10a545 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 6 Mar 2025 14:50:00 +0200 Subject: [PATCH 13/34] [packaging] (Windows) Added script to sign binaries --- .../windows/generate_windows_installers.ps1 | 49 ++++- packaging/windows/sign_binaries_in_dist.ps1 | 179 ++++++++++++++++++ 2 files changed, 224 insertions(+), 4 deletions(-) create mode 100644 packaging/windows/sign_binaries_in_dist.ps1 diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index 96ab6528..a2185573 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -1,16 +1,57 @@ -# Tested with docker image 'abrarov/msvc-2022:latest' -# sha256:f49435d194108cd56f173ad5bc6a27c70eed98b7e8cd54488f5acd85efbd51c9 - +#------------------------------------------------------------------------------ +# Portmaster Windows Installer Generator +#------------------------------------------------------------------------------ +# This script creates Windows installers (MSI and NSIS) for Portmaster application +# by combining pre-compiled binaries and packaging them with Tauri. +# +# ## Workflow for creating Portmaster Windows installers: +# +# 1. Compile Core Binaries (Linux environment) +# ``` +# earthly +release-prep +# ``` +# This compiles and places files into the 'dist' folder with the required structure. +# Note: Latest KEXT binaries and Intel data will be downloaded from https://updates.safing.io +# +# 2. Compile Windows-Specific Binaries (Windows environment) +# Some files cannot be compiled by Earthly and require Windows. +# - Compile 'portmaster-core.dll' from the /windows_core_dll folder +# - Copy the compiled DLL to /dist/download/windows_amd64 +# +# 3. Sign All Binaries (Windows environment) +# ``` +# .\sign_binaries_in_dist.ps1 -certSha1 +# ``` +# This signs all binary files in the dist directory +# +# 4. Create Installers (Windows environment) +# Note! You can run it from docker container (see example bellow). +# ``` +# .\generate_windows_installers.ps1 +# ``` +# Installers will be placed in /dist/windows_amd64 +# +# 5. Sign Installers (Windows environment) +# ``` +# .\sign_binaries_in_dist.ps1 -certSha1 +# ``` +# This signs the newly created installer files +# +#------------------------------------------------------------------------------ # Running inside Docker container +# Tested with docker image 'abrarov/msvc-2022:latest' +# sha256:f49435d194108cd56f173ad5bc6a27c70eed98b7e8cd54488f5acd85efbd51c9 # # Note! Ensure you switched Docker Desktop to use Windows containers. # Start powershell and cd to the root of the project. # Then run: # $path = Convert-Path . # Get the absolute path of the current directory # docker run -it --rm -v "${path}:C:/app" -w "C:/app" abrarov/msvc-2022 powershell -NoProfile -File C:/app/packaging/windows/generate_windows_installers.ps1 - +#------------------------------------------------------------------------------ +# # Optional arguments: # -i, --interactive: Can prompt for user input (e.g. when a file is not found in the primary folder but found in the alternate folder) +#------------------------------------------------------------------------------ param ( [Alias('i')] [switch]$interactive diff --git a/packaging/windows/sign_binaries_in_dist.ps1 b/packaging/windows/sign_binaries_in_dist.ps1 new file mode 100644 index 00000000..2a8e8d4a --- /dev/null +++ b/packaging/windows/sign_binaries_in_dist.ps1 @@ -0,0 +1,179 @@ +param ( + [Parameter(Mandatory=$false)] + [string]$certSha1, + + [Parameter(Mandatory=$false)] + [string]$timestampServer = "http://timestamp.digicert.com" +) + +function Show-Help { + Write-Host "Usage: sign_binaries_in_dist.ps1 -certSha1 [-timestampServer ]" + Write-Host "" + Write-Host "This script signs all binary files located under the '\dist\' directory recursively." + Write-Host "Which should be done before creating the Portmaster installer." + Write-Host "" + Write-Host "Arguments:" + Write-Host " -certSha1 The SHA1 hash of the certificate to use for signing (code signing certificate)." + Write-Host " -timestampServer The timestamp server URL to use (optional). Default is http://timestamp.digicert.com." + Write-Host "" + Write-Host "Example:" + Write-Host " .\sign_binaries_in_dist.ps1 -certSha1 ABCDEF1234567890ABCDEF1234567890ABCDEF12" +} + +# Show help if no certificate SHA1 provided or help flag used +if (-not $certSha1 -or ($args -contains "-h") -or ($args -contains "-help") -or ($args -contains "/h")) { + Show-Help + exit 0 +} + +# Find signtool.exe - simplified approach +function Find-SignTool { + # First try the PATH + $signtool = Get-Command signtool.exe -ErrorAction SilentlyContinue + if ($signtool) { return $signtool } + + Write-Host "[+] signtool.exe not found in PATH. Searching in common locations..." + + # Common locations for signtool + $commonLocations = @( + # Windows SDK paths + "${env:ProgramFiles(x86)}\Windows Kits\10\bin\*\x64\signtool.exe", + "${env:ProgramFiles(x86)}\Windows Kits\10\bin\*\x86\signtool.exe", + + # Visual Studio paths via vswhere + (& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -find "**/signtool.exe" -ErrorAction SilentlyContinue) + ) + + foreach ($location in $commonLocations) { + $tools = Get-ChildItem -Path $location -ErrorAction SilentlyContinue | + Sort-Object -Property FullName -Descending + if ($tools -and $tools.Count -gt 0) { + return $tools[0] # Return the first match + } + } + + return $null +} + +function Get-SignatureInfo { + param( + [string]$filePath + ) + # Get the raw output from signtool + $rawOutput = & $signtool verify /pa /v $filePath 2>&1 + + # Filter output to exclude everything after the timestamp line + $filteredOutput = @() + foreach ($line in $rawOutput) { + if ($line -match "The signature is timestamped:") { + break + } + $filteredOutput += $line + } + # Extract last subject in the signing chain - it's typically the last "Issued to:" entry + $lastSubject = ($filteredOutput | Select-String -Pattern "Issued to: (.*)$" | Select-Object -Last 1 | ForEach-Object { $_.Matches.Groups[1].Value }) + # Create signature info object + $signInfo = @{ + "IsSigned" = $LASTEXITCODE -eq 0 + "Subject" = ($filteredOutput | Select-String -Pattern "Issued to: (.*)$" | ForEach-Object { $_.Matches.Groups[1].Value }) -join ", " + "Issuer" = ($filteredOutput | Select-String -Pattern "Issued by: (.*)$" | ForEach-Object { $_.Matches.Groups[1].Value }) -join ", " + "ExpirationDate" = ($filteredOutput | Select-String -Pattern "Expires: (.*)$" | ForEach-Object { $_.Matches.Groups[1].Value }) -join ", " + "SubjectLast" = $lastSubject + "SignedBySameCert" = $false + } + + # Check if signed by our certificate + $null = & $signtool verify /pa /sha1 $certSha1 $filePath 2>&1 + $signInfo.SignedBySameCert = $LASTEXITCODE -eq 0 + + return $signInfo +} + +# Find dist directory relative to script location +$distDir = Join-Path $PSScriptRoot "../../dist" +if (-not (Test-Path -Path $distDir)) { + Write-Host "The directory '$distDir' does not exist." -ForegroundColor Red + exit 1 +} +$distDir = Resolve-Path (Join-Path $PSScriptRoot "../../dist") # normalize path + +# Find signtool.exe +$signtool = Find-SignTool +if (-not $signtool) { + Write-Host "signtool.exe not found in any standard location." -ForegroundColor Red + Write-Host "Please install one of the following:" -ForegroundColor Yellow + Write-Host "- Windows SDK" -ForegroundColor Yellow + Write-Host "- Visual Studio with the 'Desktop development with C++' workload" -ForegroundColor Yellow + Write-Host "- Visual Studio Build Tools with the 'Desktop development with C++' workload" -ForegroundColor Yellow + exit 1 +} + +Write-Host "[i] Using signtool: $($signtool)" + +# Sign all binary files in the dist directory +try { + # Define extensions for files that should be signed + $binaryExtensions = @('.exe', '.dll', '.sys', '.msi') + + # Get all files with binary extensions + $files = Get-ChildItem -Path $distDir -Recurse -File | Where-Object { + $extension = [System.IO.Path]::GetExtension($_.Name).ToLower() + $binaryExtensions -contains $extension + } + + $totalFiles = $files.Count + $signedFiles = 0 + $alreadySignedFiles = 0 + $wrongCertFiles = 0 + $filesToSign = @() + + Write-Host "[+] Found $totalFiles binary files to process" -ForegroundColor Green + foreach ($file in $files) { + $relativeFileName = $file.FullName.Replace("$distDir\", "") + # Get signature information + $signInfo = Get-SignatureInfo -filePath $file.FullName + + if ($signInfo.IsSigned) { + if ($signInfo.SignedBySameCert) { + Write-Host -NoNewline " [signed OK ]" -ForegroundColor Green + Write-Host -NoNewline " $($relativeFileName)" -ForegroundColor Blue + Write-Host "`t: signed by our certificate" + $alreadySignedFiles++ + } else { + Write-Host -NoNewline " [different ]" -ForegroundColor Yellow + Write-Host -NoNewline " $($relativeFileName)" -ForegroundColor Blue + Write-Host "`t: signed by different certificate [$($signInfo.SubjectLast)]" + $wrongCertFiles++ + } + } else { + Write-Host -NoNewline " [NOT signed]" -ForegroundColor Red + Write-Host -NoNewline " $($relativeFileName)" -ForegroundColor Blue + Write-Host "`t: not signed" + $filesToSign += $file.FullName + } + } + + # Batch sign files + if ($filesToSign.Count -gt 0) { + Write-Host "`n[+] Signing $($filesToSign.Count) files in batch..." -ForegroundColor Green + + & $signtool sign /tr $timestampServer /td sha256 /fd sha256 /sha1 $certSha1 /v $filesToSign + if ($LASTEXITCODE -ne 0) { + Write-Host "Failed to sign files!" -ForegroundColor Red + exit 1 + } + + $signedFiles = $filesToSign.Count + } else { + Write-Host "`n[+] No files need signing." -ForegroundColor Green + } + + Write-Host "`n[+] Summary:" -ForegroundColor Green + Write-Host " - Total binary files found: $totalFiles" + Write-Host " - Files already signed with our certificate: $alreadySignedFiles" + Write-Host " - Files signed with different certificate: $wrongCertFiles" + Write-Host " - Files newly signed: $signedFiles" +} catch { + Write-Host "An error occurred: $_" -ForegroundColor Red + exit 1 +} \ No newline at end of file From 260449e59b9a2ceb338d53578cb25af946afa3c1 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 6 Mar 2025 15:21:38 +0200 Subject: [PATCH 14/34] [packaging] (Windows) Ability to run "generate_windows_installers.ps1" from any location. --- desktop/tauri/src-tauri/tauri.conf.json5 | 2 +- .../windows/generate_windows_installers.ps1 | 60 +++++++++++-------- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index c95b4684..e33b1867 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -39,7 +39,7 @@ } }, "productName": "Portmaster", - "version": "0.1.0", + "version": "0.1.0", // If removed the version number from Cargo.toml is used. "identifier": "io.safing.portmaster", // this is added as a property to the shortcut on windows (ApplicationUserModelID). Used for notifications. "app": { "withGlobalTauri": true, diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index a2185573..ec57bfae 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -128,34 +128,42 @@ function Find-And-Copy-File { } # >>>>>>>>>>>>>>>>>>>>>>> End Functions >>>>>>>>>>>>>>>>>>>>>>>> -# CONSTANTS -$destinationDir = "desktop/tauri/src-tauri" -$binaryDir = "$destinationDir/binary" #portmaster\desktop\tauri\src-tauri\binary -$intelDir = "$destinationDir/intel" #portmaster\desktop\tauri\src-tauri\intel -$targetDir = "$destinationDir/target/release" #portmaster\desktop\tauri\src-tauri\target\release +# Set-Location relative to the script location "../.." (root of the project). So that the script can be run from any location. +Set-Location -Path (Join-Path -Path $PSScriptRoot -ChildPath "../..") +try { + # CONSTANTS + $destinationDir = "desktop/tauri/src-tauri" + $binaryDir = "$destinationDir/binary" #portmaster\desktop\tauri\src-tauri\binary + $intelDir = "$destinationDir/intel" #portmaster\desktop\tauri\src-tauri\intel + $targetDir = "$destinationDir/target/release" #portmaster\desktop\tauri\src-tauri\target\release -# Copying BINARY FILES -Write-Output "`n[+] Copying binary files:" -$filesToCopy = @( - @{Folder=""; File="portmaster-kext.sys"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, - @{Folder="dist/binary/windows_amd64"; File="portmaster-core.dll"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, - @{Folder="dist/binary/windows_amd64"; File="portmaster-core.exe"; Destination=$binaryDir}, - @{Folder="dist/binary/windows_amd64"; File="WebView2Loader.dll"; Destination=$binaryDir}, - @{Folder="dist/binary/all"; File="portmaster.zip"; Destination=$binaryDir}, - @{Folder="dist/binary/all"; File="assets.zip"; Destination=$binaryDir}, - @{Folder="dist/binary"; File="index.json"; Destination=$binaryDir}, - @{Folder="dist/binary/windows_amd64"; File="portmaster.exe"; Destination=$targetDir} -) -foreach ($file in $filesToCopy) { - Find-And-Copy-File -SourceDir $file.Folder -File $file.File -DestinationDir $file.Destination -AlternateSourceDir $file.AlternateFolder -} + # Copying BINARY FILES + Write-Output "`n[+] Copying binary files:" + $filesToCopy = @( + @{Folder=""; File="portmaster-kext.sys"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-core.dll"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-core.exe"; Destination=$binaryDir}, + @{Folder="dist/binary/windows_amd64"; File="WebView2Loader.dll"; Destination=$binaryDir}, + @{Folder="dist/binary/all"; File="portmaster.zip"; Destination=$binaryDir}, + @{Folder="dist/binary/all"; File="assets.zip"; Destination=$binaryDir}, + @{Folder="dist/binary"; File="index.json"; Destination=$binaryDir}, + @{Folder="dist/binary/windows_amd64"; File="portmaster.exe"; Destination=$targetDir} + ) + foreach ($file in $filesToCopy) { + Find-And-Copy-File -SourceDir $file.Folder -File $file.File -DestinationDir $file.Destination -AlternateSourceDir $file.AlternateFolder + } -# Copying INTEL FILES -Write-Output "`n[+] Copying intel files" -if (-not (Test-Path -Path $intelDir)) { - New-Item -ItemType Directory -Path $intelDir -ErrorAction Stop > $null + # Copying INTEL FILES + Write-Output "`n[+] Copying intel files" + if (-not (Test-Path -Path $intelDir)) { + New-Item -ItemType Directory -Path $intelDir -ErrorAction Stop > $null + } + Copy-Item -Force -Path "dist/intel/*" -Destination "$intelDir/" -ErrorAction Stop +} catch { + Set-Location $originalDirectory + Write-Error "[!] Failed! Error: $_" + exit 1 } -Copy-Item -Force -Path "dist/intel/*" -Destination "$intelDir/" -ErrorAction Stop Set-Location $destinationDir try { @@ -188,7 +196,7 @@ try { Write-Output "" # Building Tauri app bundle - Write-Output "[+] Building Tauri app bundle" + Write-Output "[+] Building Tauri app bundle" & $cargoTauriCommand bundle if ($LASTEXITCODE -ne 0) { Write-Error "Tauri bundle command failed with exit code $LASTEXITCODE" From 3b5556b7bbd3e139af12dd4a77b19d019f7514cd Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Wed, 12 Mar 2025 15:07:54 +0200 Subject: [PATCH 15/34] [cmds] Trigger instance shutdown on external events --- cmds/cmdbase/service_windows.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmds/cmdbase/service_windows.go b/cmds/cmdbase/service_windows.go index fdb6df74..26468a69 100644 --- a/cmds/cmdbase/service_windows.go +++ b/cmds/cmdbase/service_windows.go @@ -123,9 +123,13 @@ waitSignal: } } - // Wait for shutdown to finish. + // Trigger shutdown. + s.instance.Shutdown() + + // Notify the service host that service is in shutting down state. changes <- svc.Status{State: svc.StopPending} + // Wait for shutdown to finish. // Catch signals during shutdown. // Force exit after 5 interrupts. forceCnt := 5 From 009ad6b2f1e313331512f933b5a397ff6bb470b2 Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Wed, 12 Mar 2025 16:22:33 +0200 Subject: [PATCH 16/34] [desktop] Delete files after uninstall from NSIS --- .../templates/nsis/install_hooks.nsh | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index f3778313..e7e528f7 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -48,10 +48,6 @@ var dataDir DetailPrint "Installing service" ; Remove old service SimpleSC::RemoveService "PortmasterCore" - Pop $0 - ${If} $0 != 0 - DetailPrint "Failed to remove PortmasterCore service. Error: $0" - ${EndIf} ; Install the service: ; Parameters: @@ -61,7 +57,7 @@ var dataDir ; 4. Start Type: "2" for SERVICE_AUTO_START ; 5. Binary Path: Executable with arguments. ; 6 & 7. Dependencies and account info (empty uses defaults). - SimpleSC::InstallService "PortmasterCore" "Portmaster Core" "16" "2" "$INSTDIR\portmaster-core.exe --log-dir=%PROGRAMDATA%\Portmaster\logs" "" "" "" + SimpleSC::InstallService "PortmasterCore" "Portmaster Core" 16 2 "$INSTDIR\portmaster-core.exe --log-dir=%PROGRAMDATA%\Portmaster\logs" "" "" "" Pop $0 ; returns error code (0 on success) ${If} $0 != 0 SimpleSC::GetErrorMessage $0 @@ -113,9 +109,9 @@ var dataDir ; Pre-uninstall hook: ; - Stops and removes the service. !macro NSIS_HOOK_PREUNINSTALL - DetailPrint "Stopping service" - SimpleSC::StopService "PortmasterCore" "1" "30" + ; Trigger service stop. In the worst case the service should stop in ~60 seconds. + SimpleSC::StopService "PortmasterCore" 1 90 Pop $0 ${If} $0 != 0 DetailPrint "Failed to stop PortmasterCore service. Error: $0" @@ -133,3 +129,32 @@ var dataDir ${EndIf} !macroend +;-------------------------------------------------- +; Post-uninstall hook: +; - Delete files +!macro NSIS_HOOK_POSTUNINSTALL + ; Delete binarys + Delete /REBOOTOK "$INSTDIR\index.json" + Delete /REBOOTOK "$INSTDIR\portmaster-core.exe" + Delete /REBOOTOK "$INSTDIR\portmaster-kext.sys" + Delete /REBOOTOK "$INSTDIR\portmaster-core.dll" + Delete /REBOOTOK "$INSTDIR\WebView2Loader.dll" + Delete /REBOOTOK "$INSTDIR\portmaster.zip" + Delete /REBOOTOK "$INSTDIR\assets.zip" + + ; Delete intel data + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\index.json" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\base.dsdl" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\geoipv4.mmdb" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\geoipv6.mmdb" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\index.dsd" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\intermediate.dsdl" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\urgent.dsdl" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel" + + ${If} $DeleteAppDataCheckboxState = 1 + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Safing" + ${EndIf} + +!macroend \ No newline at end of file From 8a0aacd4460de65e9c18c077d24d98a5aa21e0e8 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Fri, 14 Mar 2025 00:07:26 +0200 Subject: [PATCH 17/34] [packaging] Excluded binary index from installers --- .gitignore | 5 ++ Earthfile | 58 +++++++++++-------- desktop/tauri/src-tauri/tauri.conf.json5 | 4 +- .../templates/nsis/install_hooks.nsh | 1 - .../tauri/src-tauri/templates/wix/files.wxs | 1 - .../windows/generate_windows_installers.ps1 | 9 ++- 6 files changed, 45 insertions(+), 33 deletions(-) diff --git a/.gitignore b/.gitignore index 0b8e5e9b..72dadd2e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ dist/ # Dist dir dist +packaging/_precompiled/ # Custom dev deops go.mod.* @@ -52,3 +53,7 @@ go.work.sum # Kext releases windows_kext/release/kext_release_*.zip windows_core_dll/.vs/windows_core_dll + +#windows_core_dll +windows_core_dll/x64/ +windows_core_dll/portmaster-core/x64/ diff --git a/Earthfile b/Earthfile index ab7c09a8..d029fac3 100644 --- a/Earthfile +++ b/Earthfile @@ -535,31 +535,44 @@ release-prep: # Build update manager COPY (+go-build/output/updatemgr --GOARCH=amd64 --GOOS=linux --CMDS=updatemgr) ./updatemgr - - # Get binary artifacts from current release - RUN mkdir -p ./output/download/windows_amd64 && ./updatemgr download https://updates.safing.io/stable.v3.json --platform windows_amd64 ./output/download/windows_amd64 - - # Create new binary index from artifacts - RUN ./updatemgr scan --dir "./output/binary" > ./output/binary/index.json - - # Get intel index and assets + # Get "portmaster-kext.sys" and "portmaster-core.dll" from current stable release + RUN mkdir -p ./output/downloaded/windows_amd64 && ./updatemgr download https://updates.safing.io/stable.v3.json --platform windows_amd64 ./output/downloaded/windows_amd64 + RUN find ./output/downloaded/windows_amd64 -type f ! -name "portmaster-kext.sys" ! -name "portmaster-core.dll" -delete # We are only interested in the KEXT and core DLL. Remove the rest. + # Get intel artifacts RUN mkdir -p ./output/intel && ./updatemgr download https://updates.safing.io/intel.v3.json ./output/intel - - # Save all artifacts to output folder - SAVE ARTIFACT --if-exists --keep-ts "output/binary/index.json" AS LOCAL "${outputDir}/binary/index.json" - SAVE ARTIFACT --if-exists --keep-ts "output/binary/all/*" AS LOCAL "${outputDir}/binary/all/" - SAVE ARTIFACT --if-exists --keep-ts "output/binary/linux_amd64/*" AS LOCAL "${outputDir}/binary/linux_amd64/" - SAVE ARTIFACT --if-exists --keep-ts "output/binary/windows_amd64/*" AS LOCAL "${outputDir}/binary/windows_amd64/" - SAVE ARTIFACT --if-exists --keep-ts "output/intel/*" AS LOCAL "${outputDir}/intel/" - SAVE ARTIFACT --if-exists --keep-ts "output/download/windows_amd64/portmaster-kext.*" AS LOCAL "${outputDir}/download/windows_amd64/" # precompiled (downloaded) KEXT binary + + # Save all artifacts to output folder (on host) + SAVE ARTIFACT --keep-ts "output/binary/all/*" AS LOCAL "${outputDir}/binary/all/" + SAVE ARTIFACT --keep-ts "output/binary/linux_amd64/*" AS LOCAL "${outputDir}/binary/linux_amd64/" + SAVE ARTIFACT --keep-ts "output/binary/windows_amd64/*" AS LOCAL "${outputDir}/binary/windows_amd64/" + SAVE ARTIFACT --keep-ts "output/intel/*" AS LOCAL "${outputDir}/intel/" + SAVE ARTIFACT --keep-ts "output/downloaded/*" AS LOCAL "${outputDir}/downloaded/" # KEXT and core DLL: artifacts from the current stable release # Save all artifacts to the container output folder so other containers can access it. - SAVE ARTIFACT --if-exists --keep-ts "output/binary/index.json" "output/binary/index.json" - SAVE ARTIFACT --if-exists --keep-ts "output/binary/all/*" "output/binary/all/" - SAVE ARTIFACT --if-exists --keep-ts "output/binary/linux_amd64/*" "output/binary/linux_amd64/" - SAVE ARTIFACT --if-exists --keep-ts "output/binary/windows_amd64/*" "output/binary/windows_amd64/" - SAVE ARTIFACT --if-exists --keep-ts "output/intel/*" "output/intel/" - SAVE ARTIFACT --if-exists --keep-ts "output/download/*" "output/download/" + SAVE ARTIFACT --keep-ts "output/binary/all/*" "output/binary/all/" + SAVE ARTIFACT --keep-ts "output/binary/linux_amd64/*" "output/binary/linux_amd64/" + SAVE ARTIFACT --keep-ts "output/binary/windows_amd64/*" "output/binary/windows_amd64/" + SAVE ARTIFACT --keep-ts "output/intel/*" "output/intel/" + SAVE ARTIFACT --keep-ts "output/downloaded/*" "output/downloaded/" + + # IMPORTANT: COPYING PRECOMPILED LOCAL FILES! + # If "packaging/_precompiled" foledr exists, it's contents has priority to be used; it's files will overwrite the ones from the build! + # Expected structure: + # - packaging/_precompiled/binary/... + # - packaging/_precompiled/intel + # Careful! If there are any files in the '_precompiled/intel' folder, the final 'intel/index.json' may be broken due to incorrect hash values! + COPY --if-exists --keep-ts ./packaging/_precompiled/binary ./packaging/precompiled/binary + COPY --if-exists --keep-ts ./packaging/_precompiled/intel ./packaging/precompiled/intel + IF --no-cache [ -d ./packaging/precompiled ] + RUN --no-cache echo "[ !!! ATTENTION !!! ] PRECOMPILED FILES IN USE:" && find ./packaging/precompiled -type f; + IF --no-cache [ -d ./packaging/precompiled/intel ] + RUN --no-cache echo "[!!! ATTENTION !!!] ENSURE THAT 'intel/index.json' CONTAINS THE CORRECT HASHES!" + END + SAVE ARTIFACT --if-exists --keep-ts "packaging/precompiled/intel/*" AS LOCAL "${outputDir}/intel/" # save to host + SAVE ARTIFACT --if-exists --keep-ts "packaging/precompiled/binary/*" AS LOCAL "${outputDir}/binary/" # save to host + SAVE ARTIFACT --if-exists --keep-ts "packaging/precompiled/intel/*" "output/intel/" # save to container (so other containers can access it) + SAVE ARTIFACT --if-exists --keep-ts "packaging/precompiled/binary/*" "output/binary/" # save to container (so other containers can access it) + END installer-linux: FROM +rust-base @@ -582,7 +595,6 @@ installer-linux: COPY (+release-prep/output/binary/linux_amd64/portmaster) ./target/${target}/release/portmaster RUN mkdir -p binary - COPY (+release-prep/output/binary/index.json) ./binary/index.json COPY (+release-prep/output/binary/linux_amd64/portmaster-core) ./binary/portmaster-core COPY (+release-prep/output/binary/all/portmaster.zip) ./binary/portmaster.zip COPY (+release-prep/output/binary/all/assets.zip) ./binary/assets.zip diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index e33b1867..28b9f772 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -39,7 +39,7 @@ } }, "productName": "Portmaster", - "version": "0.1.0", // If removed the version number from Cargo.toml is used. + "version": "0.1.3", // If removed the version number from Cargo.toml is used. "identifier": "io.safing.portmaster", // this is added as a property to the shortcut on windows (ApplicationUserModelID). Used for notifications. "app": { "withGlobalTauri": true, @@ -63,7 +63,6 @@ "/usr/lib/systemd/system/portmaster.service": "../../../packaging/linux/portmaster.service", // Binary files - "/usr/lib/portmaster/index.json": "binary/index.json", "/usr/lib/portmaster/portmaster-core": "binary/portmaster-core", "/usr/lib/portmaster/portmaster.zip": "binary/portmaster.zip", "/usr/lib/portmaster/assets.zip": "binary/assets.zip", @@ -94,7 +93,6 @@ "/usr/lib/systemd/system/portmaster.service": "../../../packaging/linux/portmaster.service", // Binary files - "/usr/lib/portmaster/index.json": "binary/index.json", "/usr/lib/portmaster/portmaster-core": "binary/portmaster-core", "/usr/lib/portmaster/portmaster.zip": "binary/portmaster.zip", "/usr/lib/portmaster/assets.zip": "binary/assets.zip", diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index e7e528f7..24a543c9 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -17,7 +17,6 @@ var dataDir ${EndIf} ${EndIf} - File "..\..\..\..\binary\index.json" File "..\..\..\..\binary\portmaster-core.exe" File "..\..\..\..\binary\portmaster-kext.sys" File "..\..\..\..\binary\portmaster-core.dll" diff --git a/desktop/tauri/src-tauri/templates/wix/files.wxs b/desktop/tauri/src-tauri/templates/wix/files.wxs index 0fd5a801..70000ee4 100644 --- a/desktop/tauri/src-tauri/templates/wix/files.wxs +++ b/desktop/tauri/src-tauri/templates/wix/files.wxs @@ -12,7 +12,6 @@ - diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index ec57bfae..7e3acacd 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -20,7 +20,7 @@ # # 3. Sign All Binaries (Windows environment) # ``` -# .\sign_binaries_in_dist.ps1 -certSha1 +# .\packaging\windows\sign_binaries_in_dist.ps1 -certSha1 # ``` # This signs all binary files in the dist directory # @@ -33,7 +33,7 @@ # # 5. Sign Installers (Windows environment) # ``` -# .\sign_binaries_in_dist.ps1 -certSha1 +# .\packaging\windows\sign_binaries_in_dist.ps1 -certSha1 # ``` # This signs the newly created installer files # @@ -140,13 +140,12 @@ try { # Copying BINARY FILES Write-Output "`n[+] Copying binary files:" $filesToCopy = @( - @{Folder=""; File="portmaster-kext.sys"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, - @{Folder="dist/binary/windows_amd64"; File="portmaster-core.dll"; Destination=$binaryDir; AlternateFolder="dist/download/windows_amd64"}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-kext.sys"; Destination=$binaryDir; AlternateFolder="dist/downloaded/windows_amd64"}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-core.dll"; Destination=$binaryDir; AlternateFolder="dist/downloaded/windows_amd64"}, @{Folder="dist/binary/windows_amd64"; File="portmaster-core.exe"; Destination=$binaryDir}, @{Folder="dist/binary/windows_amd64"; File="WebView2Loader.dll"; Destination=$binaryDir}, @{Folder="dist/binary/all"; File="portmaster.zip"; Destination=$binaryDir}, @{Folder="dist/binary/all"; File="assets.zip"; Destination=$binaryDir}, - @{Folder="dist/binary"; File="index.json"; Destination=$binaryDir}, @{Folder="dist/binary/windows_amd64"; File="portmaster.exe"; Destination=$targetDir} ) foreach ($file in $filesToCopy) { From ef080cc3fbcd7bd6a30eee860245d384b7d6cc2c Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Fri, 14 Mar 2025 00:08:51 +0200 Subject: [PATCH 18/34] [packaging] Added missing intel artifacts to installers --- desktop/tauri/src-tauri/tauri.conf.json5 | 8 ++++++++ desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh | 6 ++++++ desktop/tauri/src-tauri/templates/wix/files.wxs | 3 +++ 3 files changed, 17 insertions(+) diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index 28b9f772..3be680df 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -76,6 +76,10 @@ "/var/lib/portmaster/intel/intermediate.dsdl": "intel/intermediate.dsdl", "/var/lib/portmaster/intel/urgent.dsdl": "intel/urgent.dsdl", + "/var/lib/portmaster/intel/main-intel.yaml" : "intel/main-intel.yaml", + "/var/lib/portmaster/intel/notifications.yaml": "intel/notifications.yaml", + "/var/lib/portmaster/intel/news.yaml" : "intel/news.yaml", + // Shortcut "/etc/xdg/autostart/portmaster.desktop": "../../../packaging/linux/portmaster-autostart.desktop" }, @@ -106,6 +110,10 @@ "/var/lib/portmaster/intel/intermediate.dsdl": "intel/intermediate.dsdl", "/var/lib/portmaster/intel/urgent.dsdl": "intel/urgent.dsdl", + "/var/lib/portmaster/intel/main-intel.yaml" : "intel/main-intel.yaml", + "/var/lib/portmaster/intel/notifications.yaml": "intel/notifications.yaml", + "/var/lib/portmaster/intel/news.yaml" : "intel/news.yaml", + // Shortcut "/etc/xdg/autostart/portmaster.desktop": "../../../packaging/linux/portmaster-autostart.desktop" }, diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index 24a543c9..00023049 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -33,6 +33,9 @@ var dataDir File "..\..\..\..\intel\index.dsd" File "..\..\..\..\intel\intermediate.dsdl" File "..\..\..\..\intel\urgent.dsdl" + File "..\..\..\..\intel\main-intel.yaml" + File "..\..\..\..\intel\notifications.yaml" + File "..\..\..\..\intel\news.yaml" ; restire previous state SetOutPath "$INSTDIR" @@ -149,6 +152,9 @@ var dataDir Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\index.dsd" Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\intermediate.dsdl" Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\urgent.dsdl" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\main-intel.yaml" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\notifications.yaml" + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\news.yaml" RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel" ${If} $DeleteAppDataCheckboxState = 1 diff --git a/desktop/tauri/src-tauri/templates/wix/files.wxs b/desktop/tauri/src-tauri/templates/wix/files.wxs index 70000ee4..1e5bb49c 100644 --- a/desktop/tauri/src-tauri/templates/wix/files.wxs +++ b/desktop/tauri/src-tauri/templates/wix/files.wxs @@ -27,6 +27,9 @@ + + + From 1ed666e863e27d638c6abb95c3442e00d807a599 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Fri, 14 Mar 2025 00:10:05 +0200 Subject: [PATCH 19/34] [packaging] fix: incorrect dependency in DEB package --- desktop/tauri/src-tauri/tauri.conf.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index 3be680df..4c8acc40 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -55,7 +55,7 @@ "linux": { "deb": { "depends": [ - "libayatana-appindicator3" + "libayatana-appindicator3-1" ], "desktopTemplate": "../../../packaging/linux/portmaster.desktop", "files": { From 5ffb6373219ae7d818e07452727ea7f248b0a08c Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 17 Mar 2025 16:10:38 +0100 Subject: [PATCH 20/34] Remove geoip db loading fallback with binary index --- service/intel/geoip/database.go | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/service/intel/geoip/database.go b/service/intel/geoip/database.go index 711fafdf..85ddadde 100644 --- a/service/intel/geoip/database.go +++ b/service/intel/geoip/database.go @@ -56,15 +56,8 @@ func (ub *updateBroadcaster) AvailableUpdate() *updates.Artifact { // Get artifact. artifact, err := module.instance.IntelUpdates().GetFile(ub.dbName) if err != nil { - // Check if the geoip database is included in the binary index instead. - // TODO: Remove when intelhub builds the geoip database. - if artifact2, err2 := module.instance.BinaryUpdates().GetFile(ub.dbName); err2 == nil { - artifact = artifact2 - err = nil - } else { - log.Warningf("geoip: failed to get geoip update: %s", err) - return nil - } + log.Warningf("geoip: failed to get geoip update: %s", err) + return nil } // Return artifact if not yet initialized. From a2b44d73cabb09b556b1a6e521a93da885203eb7 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 17 Mar 2025 16:13:33 +0100 Subject: [PATCH 21/34] Make sure main directory exists when starting updater module --- service/updates/module.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/service/updates/module.go b/service/updates/module.go index fa6dc3ab..315c3657 100644 --- a/service/updates/module.go +++ b/service/updates/module.go @@ -16,6 +16,7 @@ import ( "github.com/safing/jess" "github.com/safing/portmaster/base/log" "github.com/safing/portmaster/base/notifications" + "github.com/safing/portmaster/base/utils" "github.com/safing/portmaster/service/mgr" ) @@ -170,6 +171,12 @@ func New(instance instance, name string, cfg Config) (*Updater, error) { return nil, fmt.Errorf("config is invalid: %w", err) } + // Make sure main dir exists. + err := utils.EnsureDirectory(module.cfg.Directory, utils.PublicReadExecPermission) + if err != nil { + return nil, fmt.Errorf("create update target directory: %s", module.cfg.DownloadDirectory) + } + // Create Workers. module.updateCheckWorkerMgr = m.NewWorkerMgr("update checker", module.updateCheckWorker, nil) module.upgradeWorkerMgr = m.NewWorkerMgr("upgrader", module.upgradeWorker, nil) From 69a3d03a4f370f55d7fd0c23cff33469296d5173 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 20 Mar 2025 09:50:52 +0000 Subject: [PATCH 22/34] [packaging] Set the correct versions for compiled binaries and installers based on the Git tag --- Earthfile | 102 ++++++++++++++---- desktop/tauri/src-tauri/tauri.conf.json5 | 5 +- .../windows/generate_windows_installers.ps1 | 88 +++++++++++++-- 3 files changed, 163 insertions(+), 32 deletions(-) diff --git a/Earthfile b/Earthfile index d029fac3..653281a8 100644 --- a/Earthfile +++ b/Earthfile @@ -1,4 +1,8 @@ -VERSION --arg-scope-and-set --global-cache 0.8 +VERSION 0.8 + +# Custom argument: "custom_version" to manually set the version of the build (and ignore Git Tag value) +# Usage example: earthly --build-arg custom_version="1.2.3" + +ARG --global custom_version = "" ARG --global go_version = 1.22 ARG --global node_version = 18 @@ -131,27 +135,9 @@ go-base: # Copy the full repo, as Go embeds whether the state is clean. COPY . . - - LET version = "$(git tag --points-at || true)" - IF [ -z "${version}" ] - LET dev_version = "$(git describe --tags --first-parent --abbrev=0 || true)" - IF [ -n "${dev_version}" ] - SET version = "${dev_version}_dev_build" - END - END - IF [ -z "${version}" ] - SET version = "dev_build" - END - ENV VERSION="${version}" - RUN echo "Version: $VERSION" - - LET source = $( ( git remote -v | cut -f2 | cut -d" " -f1 | head -n 1 ) || echo "unknown" ) - ENV SOURCE="${source}" - RUN echo "Source: $SOURCE" - - LET build_time = $(date -u "+%Y-%m-%dT%H:%M:%SZ" || echo "unknown") - ENV BUILD_TIME = "${build_time}" - RUN echo "Build Time: $BUILD_TIME" + + # Set version information: VERSION, SOURCE, BUILD_TIME and VERSION_SemVer + DO +SET_VERSION_INFO # Explicitly cache here. SAVE IMAGE --cache-hint @@ -450,7 +436,7 @@ tauri-src: tauri-build: FROM +tauri-src - + ARG --required target ARG output=".*/release/([^\./]+|([^\./]+\.(dll|exe)))" @@ -459,6 +445,12 @@ tauri-build: DO rust+SET_CACHE_MOUNTS_ENV RUN rustup target add "${target}" + + # Init version information: VERSION, SOURCE, BUILD_TIME and VERSION_SemVer + DO +SET_VERSION_INFO + # Set version in Cargo.toml if it's a valid SemVer (required to set correct version of the output binary) + RUN if [ -n "$VERSION_SemVer" ]; then sed -i 's/^version = ".*"/version = "'"$VERSION_SemVer"'"/g' Cargo.toml; fi + # Build RUN --mount=$EARTHLY_RUST_TARGET_CACHE cargo tauri build --ci --target="${target}" --no-bundle DO rust+COPY_OUTPUT --output="${output}" @@ -603,6 +595,11 @@ installer-linux: RUN mkdir -p intel COPY (+release-prep/output/intel/*) ./intel/ + # Init version information: VERSION, SOURCE, BUILD_TIME and VERSION_SemVer + DO +SET_VERSION_INFO + # Set version in Cargo.toml if it's a valid SemVer (required for using in the installer file names) + RUN if [ -n "$VERSION_SemVer" ]; then sed -i 's/^version = ".*"/version = "'"$VERSION_SemVer"'"/g' Cargo.toml; fi + # build the installers RUN cargo tauri bundle --ci --target="${target}" @@ -705,3 +702,62 @@ BIN_EXT: SET binext=".exe" END ENV BINEXT="${goos}" + +# Function to set the version-related environment variables (variables: VERSION, SOURCE, BUILD_TIME and VERSION_SemVer) +# Call example: +# DO +SET_VERSION_INFO +SET_VERSION_INFO: + FUNCTION + ARG gitDir="/tmp/git-info" + + # Check if already initialized and skip the rest if true + IF [ -n "$BUILD_TIME" ] + #RUN echo "Version info already initialized" + ELSE + # Make sure git is installed in the image + RUN which git || apk add --no-cache git + # Create a temporary directory for git information only + RUN mkdir -p ${gitDir} + # Copy only the .git directory to the temporary location + COPY --dir .git ${gitDir}/.git + + # Check if custom version was provided via command line + IF [ -n "$custom_version" ] + ENV VERSION="${custom_version}" + RUN echo "Using custom version from command line: $VERSION" + ELSE + # Get version from git tags without changing workdir + LET version = "$(git --git-dir=${gitDir}/.git tag --points-at || true)" + IF [ -z "${version}" ] + LET dev_version = "$(git --git-dir=${gitDir}/.git describe --tags --first-parent --abbrev=0 || true)" + IF [ -n "${dev_version}" ] + SET version = "${dev_version}_dev_build" + END + END + IF [ -z "${version}" ] + SET version = "dev_build" + END + ENV VERSION="${version}" + RUN echo "Version: $VERSION" + END + + # Create cleaned version without 'v' prefix and without suffix starting with '_' + # Only set VERSION_SemVer if it matches semantic versioning format + LET version_clean = "$(echo "${VERSION}" | sed -E 's/^[vV]//' | sed -E 's/_.*$//')" + IF [ $(echo "${version_clean}" | grep -E '^[0-9]+\.[0-9]+\.[0-9]+([.-].*)?$') ] + ENV VERSION_SemVer="${version_clean}" + RUN echo "VERSION_SemVer: $VERSION_SemVer" + ELSE + RUN echo "VERSION_SemVer: [Empty - not a valid SemVer in Git Tag] - !!! WARNING !!!" + END + + # Get source information without changing workdir + LET source = "$( (git --git-dir=${gitDir}/.git remote -v | cut -f2 | cut -d" " -f1 | head -n 1) || echo "unknown" )" + ENV SOURCE="${source}" + RUN echo "Source: $SOURCE" + + # Get build time + LET build_time = "$(date -u "+%Y-%m-%dT%H:%M:%SZ" || echo "unknown")" + ENV BUILD_TIME = "${build_time}" + RUN echo "Build Time: $BUILD_TIME" + END \ No newline at end of file diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index 4c8acc40..ed63d729 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -39,7 +39,7 @@ } }, "productName": "Portmaster", - "version": "0.1.3", // If removed the version number from Cargo.toml is used. + //"version": "0.1.3", // If removed - the version number from Cargo.toml is used. "identifier": "io.safing.portmaster", // this is added as a property to the shortcut on windows (ApplicationUserModelID). Used for notifications. "app": { "withGlobalTauri": true, @@ -140,8 +140,7 @@ "targets": [ "deb", "rpm", - "nsis", - "msi" + "nsis" //, "msi" ], "icon": [ "../../../assets/data/icons/pm_dark_512.png", diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index 7e3acacd..812d68fb 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -54,7 +54,10 @@ #------------------------------------------------------------------------------ param ( [Alias('i')] - [switch]$interactive + [switch]$interactive, + + [Alias('v')] + [string]$version ) # Save the current directory @@ -126,6 +129,38 @@ function Find-And-Copy-File { exit 1 } } + +# Function to set and restore Cargo.toml version +function Set-CargoVersion { + param ([string]$Version) + if (-not (Test-Path "Cargo.toml.bak")) { + Copy-Item "Cargo.toml" "Cargo.toml.bak" -Force + } + # Update the version in Cargo.toml. + # This will allow the Tauri CLI to set the correct filename for the installer. + # NOTE: This works only when the version is not explicitly defined in tauri.conf.json5. + (Get-Content "Cargo.toml" -Raw) -replace '(\[package\][^\[]*?)version\s*=\s*"[^"]+"', ('$1version = "' + $Version + '"') | Set-Content "Cargo.toml" +} +function Restore-CargoVersion { + if (Test-Path "Cargo.toml.bak") { + Copy-Item "Cargo.toml.bak" "Cargo.toml" -Force + Remove-Item "Cargo.toml.bak" -Force + } +} + +function Get-GitTagVersion { + # Try to get exact tag pointing to current commit + $version = $(git tag --points-at 2>$null) + # If no tag points to current commit, use most recent tag + if ([string]::IsNullOrEmpty($version)) { + $devVersion = $(git describe --tags --first-parent --abbrev=0 2>$null) + if (-not [string]::IsNullOrEmpty($devVersion)) { + $version = "${devVersion}" + } + } + $version = $version -replace '^v', '' + return $version +} # >>>>>>>>>>>>>>>>>>>>>>> End Functions >>>>>>>>>>>>>>>>>>>>>>>> # Set-Location relative to the script location "../.." (root of the project). So that the script can be run from any location. @@ -164,6 +199,38 @@ try { exit 1 } +$VERSION_GIT_TAG = Get-GitTagVersion + +# Check versions of UI and Core binaries +$VERSION_UI = (Get-Item "$targetDir/portmaster.exe").VersionInfo.FileVersion +$VERSION_CORE = (& "$binaryDir/portmaster-core.exe" version | Select-String -Pattern "Portmaster\s+(\d+\.\d+\.\d+)" | ForEach-Object { $_.Matches.Groups[1].Value }) +$VERSION_KEXT = (Get-Item "$binaryDir/portmaster-kext.sys").VersionInfo.FileVersion +Write-Output "`n[i] VERSIONS INFO:" +Write-Output " VERSION_GIT_TAG : $VERSION_GIT_TAG" +Write-Output " VERSION_CORE : $VERSION_CORE" +Write-Output " VERSION_UI : $VERSION_UI" +Write-Output " VERSION_KEXT : $VERSION_KEXT" +if ($VERSION_UI -ne $VERSION_CORE -or $VERSION_CORE -ne $VERSION_GIT_TAG) { + Write-Warning "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + Write-Warning "Version mismatch between UI($VERSION_UI), Core($VERSION_CORE) and GitTag($VERSION_GIT_TAG)!" + Write-Warning "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + if ($interactive) { + $response = Read-Host "[?] Continue anyway? (y/n)" + if ($response -ne 'y' -and $response -ne 'Y') { + Write-Error "Cancelled. Version mismatch between UI and Core binaries." + exit 1 + } + } +} +# Determine which version to use for building +if ($version) { + Write-Output "`n[i] Using explicitly provided version ($version) for installer file name`n" + $VERSION_TO_USE = $version +} else { + Write-Output "`n[i] Using Core version version ($VERSION_CORE) for installer file name`n" + $VERSION_TO_USE = $VERSION_CORE +} + Set-Location $destinationDir try { # Ensure Rust toolchain is installed @@ -189,18 +256,27 @@ try { $cargoTauriCommand = "./tauri-cli/cargo-tauri.exe" } - Write-Output "[i] VERSIONS INFO:" + Write-Output "[i] Tools versions info:" Write-Output " Tauri CLI: $((& $cargoTauriCommand -V | Out-String).Trim().Replace("`r`n", " "))" Write-Output " Rust : $((rustc -V | Out-String).Trim().Replace("`r`n", " ")); $((cargo -V | Out-String).Trim().Replace("`r`n", " "))" Write-Output "" # Building Tauri app bundle - Write-Output "[+] Building Tauri app bundle" - & $cargoTauriCommand bundle - if ($LASTEXITCODE -ne 0) { - Write-Error "Tauri bundle command failed with exit code $LASTEXITCODE" + try { + Write-Output "[+] Building Tauri app bundle with version $VERSION_TO_USE" + Set-CargoVersion -Version $VERSION_TO_USE + & $cargoTauriCommand bundle + if ($LASTEXITCODE -ne 0) { + throw "Tauri bundle command failed with exit code $LASTEXITCODE" + } + } + catch { + Write-Error "[!] Bundle failed: $_" exit 1 } + finally { + Restore-CargoVersion + } Write-Output "[+] Copying generated bundles" $installerDist = "..\..\..\dist\windows_amd64\" From 3defb5f0ba1cee72e19e86410a3c073dba71695e Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 20 Mar 2025 12:37:16 +0200 Subject: [PATCH 23/34] [packaging] Fix in generate_windows_installers.ps1 --- packaging/windows/generate_windows_installers.ps1 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index 812d68fb..89fb5d0e 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -16,7 +16,7 @@ # 2. Compile Windows-Specific Binaries (Windows environment) # Some files cannot be compiled by Earthly and require Windows. # - Compile 'portmaster-core.dll' from the /windows_core_dll folder -# - Copy the compiled DLL to /dist/download/windows_amd64 +# - Copy the compiled DLL to /dist/downloaded/windows_amd64 # # 3. Sign All Binaries (Windows environment) # ``` @@ -109,7 +109,7 @@ function Find-And-Copy-File { try { # Print details about the file $fileInfo = Get-Item -Path $fullSourcePath - $output = "{0,-22}: {1,-28} -> {2,-38} [{3,-20} {4,18}{5}]" -f + $output = "{0,-22}: {1,-29} -> {2,-38} [{3,-20} {4,18}{5}]" -f $File, $(Split-Path -Path $fullSourcePath -Parent), $(Split-Path -Path $destinationPath -Parent), @@ -149,6 +149,12 @@ function Restore-CargoVersion { } function Get-GitTagVersion { + # Check if running in Docker and configure Git accordingly + if ($env:ComputerName -like "*container*" -or $env:USERNAME -eq "ContainerAdministrator") { + $currentDir = (Get-Location).Path + git config --global --add safe.directory $currentDir + } + # Try to get exact tag pointing to current commit $version = $(git tag --points-at 2>$null) # If no tag points to current commit, use most recent tag @@ -283,7 +289,7 @@ try { if (-not (Test-Path -Path $installerDist)) { New-Item -ItemType Directory -Path $installerDist -ErrorAction Stop > $null } - Copy-Item -Path ".\target\release\bundle\msi\*" -Destination $installerDist -ErrorAction Stop + #Copy-Item -Path ".\target\release\bundle\msi\*" -Destination $installerDist -ErrorAction Stop Copy-Item -Path ".\target\release\bundle\nsis\*" -Destination $installerDist -ErrorAction Stop Write-Output "[i] Done." From b970a98055c35fae49f12336ac91a46bfabd2086 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Fri, 21 Mar 2025 12:16:51 +0000 Subject: [PATCH 24/34] Bump binaries versions to v2 --- Earthfile | 6 +----- desktop/angular/package.json | 2 +- desktop/tauri/src-tauri/Cargo.toml | 2 +- desktop/tauri/src-tauri/tauri.conf.json5 | 1 - 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Earthfile b/Earthfile index 653281a8..ad460c0f 100644 --- a/Earthfile +++ b/Earthfile @@ -445,11 +445,7 @@ tauri-build: DO rust+SET_CACHE_MOUNTS_ENV RUN rustup target add "${target}" - - # Init version information: VERSION, SOURCE, BUILD_TIME and VERSION_SemVer - DO +SET_VERSION_INFO - # Set version in Cargo.toml if it's a valid SemVer (required to set correct version of the output binary) - RUN if [ -n "$VERSION_SemVer" ]; then sed -i 's/^version = ".*"/version = "'"$VERSION_SemVer"'"/g' Cargo.toml; fi + # Build RUN --mount=$EARTHLY_RUST_TARGET_CACHE cargo tauri build --ci --target="${target}" --no-bundle DO rust+COPY_OUTPUT --output="${output}" diff --git a/desktop/angular/package.json b/desktop/angular/package.json index 1e1b8d9e..09f76063 100644 --- a/desktop/angular/package.json +++ b/desktop/angular/package.json @@ -1,6 +1,6 @@ { "name": "portmaster", - "version": "0.8.11", + "version": "2.0.0", "scripts": { "ng": "ng", "start": "npm install && npm run build-libs:dev && ng serve --proxy-config ./proxy.json", diff --git a/desktop/tauri/src-tauri/Cargo.toml b/desktop/tauri/src-tauri/Cargo.toml index 073cf8e1..432c1271 100644 --- a/desktop/tauri/src-tauri/Cargo.toml +++ b/desktop/tauri/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "portmaster" -version = "0.1.0" +version = "2.0.0" description = "Portmaster UI" authors = ["Safing"] license = "" diff --git a/desktop/tauri/src-tauri/tauri.conf.json5 b/desktop/tauri/src-tauri/tauri.conf.json5 index ed63d729..4d0e7e8a 100644 --- a/desktop/tauri/src-tauri/tauri.conf.json5 +++ b/desktop/tauri/src-tauri/tauri.conf.json5 @@ -39,7 +39,6 @@ } }, "productName": "Portmaster", - //"version": "0.1.3", // If removed - the version number from Cargo.toml is used. "identifier": "io.safing.portmaster", // this is added as a property to the shortcut on windows (ApplicationUserModelID). Used for notifications. "app": { "withGlobalTauri": true, From 0597bf7dc205246050b5c2e4a2a38bb2e821777e Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Fri, 21 Mar 2025 15:34:06 +0200 Subject: [PATCH 25/34] [packaging] Compatibility `generate_windows_installers.ps1` with 'updatemgr download ...' --- .../windows/generate_windows_installers.ps1 | 55 +++++++++++-------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/packaging/windows/generate_windows_installers.ps1 b/packaging/windows/generate_windows_installers.ps1 index 89fb5d0e..5e638296 100644 --- a/packaging/windows/generate_windows_installers.ps1 +++ b/packaging/windows/generate_windows_installers.ps1 @@ -51,6 +51,7 @@ # # Optional arguments: # -i, --interactive: Can prompt for user input (e.g. when a file is not found in the primary folder but found in the alternate folder) +# -v, --version: Explicitly set the version to use for the installer file name #------------------------------------------------------------------------------ param ( [Alias('i')] @@ -83,25 +84,33 @@ function Find-And-Copy-File { [string]$SourceDir, [string]$File, [string]$DestinationDir, - [string]$AlternateSourceDir + [string[]]$AlternateSourceDirs # Changed from single string to array ) $destinationPath = "$DestinationDir/$File" $fullSourcePath = if ($SourceDir) { "$SourceDir/$File" } else { "" } - if ($AlternateSourceDir -and (-not $fullSourcePath -or -not (Test-Path -Path $fullSourcePath))) { - # File doesn't exist, check in alternate folder - $fallbackSourcePath = "$AlternateSourceDir/$File" - if (Test-Path -Path $fallbackSourcePath) { - if ($interactive -and $fullSourcePath) { # Do not prompt if the sourceDir is empty or "interactive" mode is not set - $response = Read-Host " [?] The file '$File' found only in fallback '$AlternateSourceDir' folder.`n Do you want to use it? (y/n)" - if ($response -ne 'y' -and $response -ne 'Y') { - Write-Error "Cancelled. Required file not found: $fullSourcePath" - exit 1 - } - } - $fullSourcePath = $fallbackSourcePath - } else { - Write-Error "Required file '$File' not found in: '$SourceDir', '$AlternateSourceDir'" + if ($AlternateSourceDirs -and (-not $fullSourcePath -or -not (Test-Path -Path $fullSourcePath))) { + # File doesn't exist, check in alternate folders + $foundInAlternate = $false + + foreach ($altDir in $AlternateSourceDirs) { + $fallbackSourcePath = "$altDir/$File" + if (Test-Path -Path $fallbackSourcePath) { + if ($interactive -and $fullSourcePath) { # Do not prompt if the sourceDir is empty or "interactive" mode is not set + $response = Read-Host " [?] The file '$File' found in fallback '$altDir' folder.`n Do you want to use it? (y/n)" + if ($response -ne 'y' -and $response -ne 'Y') { + continue # Try next alternate directory + } + } + $fullSourcePath = $fallbackSourcePath + $foundInAlternate = $true + break # Found a usable file, stop searching + } + } + + if (-not $foundInAlternate) { + $altDirsString = $AlternateSourceDirs -join "', '" + Write-Error "Required file '$File' not found in: '$SourceDir', '$altDirsString'" exit 1 } } @@ -181,16 +190,16 @@ try { # Copying BINARY FILES Write-Output "`n[+] Copying binary files:" $filesToCopy = @( - @{Folder="dist/binary/windows_amd64"; File="portmaster-kext.sys"; Destination=$binaryDir; AlternateFolder="dist/downloaded/windows_amd64"}, - @{Folder="dist/binary/windows_amd64"; File="portmaster-core.dll"; Destination=$binaryDir; AlternateFolder="dist/downloaded/windows_amd64"}, - @{Folder="dist/binary/windows_amd64"; File="portmaster-core.exe"; Destination=$binaryDir}, - @{Folder="dist/binary/windows_amd64"; File="WebView2Loader.dll"; Destination=$binaryDir}, - @{Folder="dist/binary/all"; File="portmaster.zip"; Destination=$binaryDir}, - @{Folder="dist/binary/all"; File="assets.zip"; Destination=$binaryDir}, - @{Folder="dist/binary/windows_amd64"; File="portmaster.exe"; Destination=$targetDir} + @{Folder="dist/binary/windows_amd64"; File="portmaster-kext.sys"; Destination=$binaryDir; AlternateSourceDirs=@("dist/downloaded/windows_amd64", "dist")}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-core.dll"; Destination=$binaryDir; AlternateSourceDirs=@("dist/downloaded/windows_amd64", "dist")}, + @{Folder="dist/binary/windows_amd64"; File="portmaster-core.exe"; Destination=$binaryDir; AlternateSourceDirs=@("dist")}, + @{Folder="dist/binary/windows_amd64"; File="WebView2Loader.dll"; Destination=$binaryDir; AlternateSourceDirs=@("dist")}, + @{Folder="dist/binary/all"; File="portmaster.zip"; Destination=$binaryDir; AlternateSourceDirs=@("dist")}, + @{Folder="dist/binary/all"; File="assets.zip"; Destination=$binaryDir; AlternateSourceDirs=@("dist")}, + @{Folder="dist/binary/windows_amd64"; File="portmaster.exe"; Destination=$targetDir; AlternateSourceDirs=@("dist")} ) foreach ($file in $filesToCopy) { - Find-And-Copy-File -SourceDir $file.Folder -File $file.File -DestinationDir $file.Destination -AlternateSourceDir $file.AlternateFolder + Find-And-Copy-File -SourceDir $file.Folder -File $file.File -DestinationDir $file.Destination -AlternateSourceDirs $file.AlternateSourceDirs } # Copying INTEL FILES From 4de155fafd02b03a9ce5899b7aae4fce5a8aa183 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Fri, 21 Mar 2025 15:49:52 +0200 Subject: [PATCH 26/34] Bump UI version --- desktop/angular/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/angular/package.json b/desktop/angular/package.json index 09f76063..029672fa 100644 --- a/desktop/angular/package.json +++ b/desktop/angular/package.json @@ -1,6 +1,6 @@ { "name": "portmaster", - "version": "2.0.0", + "version": "2.0.1", "scripts": { "ng": "ng", "start": "npm install && npm run build-libs:dev && ng serve --proxy-config ./proxy.json", From 6b958fd93dc1dd63e25559e247cc117ab4a4baaf Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Mon, 24 Mar 2025 16:43:52 +0200 Subject: [PATCH 27/34] [desktop] Fix installer migration leftovers Win --- .../templates/nsis/install_hooks.nsh | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index 00023049..7e79cdd6 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -95,14 +95,26 @@ var dataDir RMDir /r "$SMPROGRAMS\Portmaster" Delete "$SMSTARTUP\Portmaster Notifier.lnk" - ; Delete v1 uninstaller + ; Delete v1 old binaries Delete "$oldInstallationDir\portmaster-uninstaller.exe" + Delete "$oldInstallationDir\portmaster-start.exe" + Delete "$oldInstallationDir\portmaster.ico" + RMDir /r "$oldInstallationDir\exec" + RMDir /r "$oldInstallationDir\updates" + RMDir /r "$oldInstallationDir\databases\cache" + RMDir /r "$oldInstallationDir\intel" - ; Delete v1 user shortuct if there. + ; Delete the link to the ProgramData folder + RMDir /r "$PROGRAMFILES\Safing" + + ; Delete v1 user shortcut if its there. SetShellVarContext current Delete "$AppData\Microsoft\Windows\Start Menu\Programs\Portmaster.lnk" SetShellVarContext all + ; Delete v1 registry values + DeleteRegKey HKLM "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Portmaster" + Finish: !macroend @@ -143,6 +155,10 @@ var dataDir Delete /REBOOTOK "$INSTDIR\WebView2Loader.dll" Delete /REBOOTOK "$INSTDIR\portmaster.zip" Delete /REBOOTOK "$INSTDIR\assets.zip" + RMDir /r /REBOOTOK "$INSTDIR" + + ; Delete Tauri leftovers + RMDir /r /REBOOTOK "$APPDATA\Portmaster" ; Delete intel data Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\index.json" From 93b1623b614d5ee09bb235cbce67adaa00de2943 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 25 Mar 2025 14:58:01 +0100 Subject: [PATCH 28/34] Use the current binary version for the generated index --- service/updates/module.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/service/updates/module.go b/service/updates/module.go index fa6dc3ab..fa115c6f 100644 --- a/service/updates/module.go +++ b/service/updates/module.go @@ -14,6 +14,7 @@ import ( "github.com/tevino/abool" "github.com/safing/jess" + "github.com/safing/portmaster/base/info" "github.com/safing/portmaster/base/log" "github.com/safing/portmaster/base/notifications" "github.com/safing/portmaster/service/mgr" @@ -192,7 +193,9 @@ func New(instance instance, name string, cfg Config) (*Updater, error) { log.Errorf("updates/%s: invalid index file, falling back to dir scan: %s", cfg.Name, err) module.corruptedInstallation = fmt.Errorf("invalid index: %w", err) } - index, err = GenerateIndexFromDir(cfg.Directory, IndexScanConfig{Version: "0.0.0"}) + index, err = GenerateIndexFromDir(cfg.Directory, IndexScanConfig{ + Version: info.VersionNumber(), + }) if err == nil && index.init(currentPlatform) == nil { module.index = index return module, nil From f08a36f5ff20d3f2b86a61a6becc25632b29298f Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Tue, 25 Mar 2025 14:30:46 +0000 Subject: [PATCH 29/34] [packaging] Fix: Linux installers (migration/update/removal) --- packaging/linux/postinst | 61 ++++++++++++++++++++++++++++----------- packaging/linux/postrm | 31 ++++++++++++++++++-- packaging/linux/readme.md | 47 ++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+), 20 deletions(-) create mode 100644 packaging/linux/readme.md diff --git a/packaging/linux/postinst b/packaging/linux/postinst index a0f90d0e..c99f8b4c 100644 --- a/packaging/linux/postinst +++ b/packaging/linux/postinst @@ -1,45 +1,72 @@ #!/bin/bash -chmod +x /usr/lib/portmaster/portmaster-core +echo "[ ] Post-Install script [arg1='$1' arg2='$2']" + +echo "[ ] Stopping old service (if exists)" +systemctl stop portmaster.service +systemctl disable portmaster.service # -# Fix selinux permissions for portmaster-core if we have semanage -# available. -# -if command -V semanage >/dev/null 2>&1; then - semanage fcontext -a -t bin_t -s system_u $(realpath /usr/lib)'/portmaster/portmaster-core' || : - restorecon -R /usr/lib/portmaster/portmaster-core 2>/dev/null >&2 || : -fi - # Migration from v1 +# OLD_INSTALLATION_DIR="/opt/safing/portmaster" MIGRATED_FILE_FLAG="$OLD_INSTALLATION_DIR/migrated.txt" - if [ -d "$OLD_INSTALLATION_DIR" ]; then if [ ! -e "$MIGRATED_FILE_FLAG" ]; then - echo "Starting migration form v1" - - # Becoause the service file need to change path, first the links to the old service needs to be removed. - systemctl stop portmaster.service - systemctl disable portmaster.service + echo "[ ] Starting migration form v1 ..." + + # Because the service file need to change path, first the links to the old service needs to be removed. + echo "[ ] V1 migration: Removing old service" + rm /etc/systemd/system/portmaster.service # new V2 service registered at "/usr/lib/systemd/system/portmaster.service" # Migrate config + echo "[ ] V1 migration: Copying V1 configuration" cp -r $OLD_INSTALLATION_DIR/databases /var/lib/portmaster cp -r $OLD_INSTALLATION_DIR/config.json /var/lib/portmaster/config.json # Remove shortcut + echo "[ ] V1 migration: Removing V1 shortcuts" rm /etc/xdg/autostart/portmaster_notifier.desktop rm /usr/share/applications/portmaster_notifier.desktop + # Remove V1 files (except configuration) + # (keeping V1 configuration for a smooth downgrade, if needed) + echo "[ ] V1 migration: Removing V1 files" + rm -fr $OLD_INSTALLATION_DIR/exec + rm -fr $OLD_INSTALLATION_DIR/logs + rm -fr $OLD_INSTALLATION_DIR/updates + rm -fr $OLD_INSTALLATION_DIR/databases/cache + rm -fr $OLD_INSTALLATION_DIR/databases/icons + rm -fr $OLD_INSTALLATION_DIR/databases/history.db + + for file in $OLD_INSTALLATION_DIR/*; do + if [ -f "$file" ] && [ "$(basename "$file")" != "config.json" ]; then + rm "$file" + fi + done + touch $MIGRATED_FILE_FLAG - echo "Migration complete" + echo "[ ] Migration complete" fi fi +# +# Fix selinux permissions for portmaster-core if we have semanage available. +# +if command -V semanage >/dev/null 2>&1; then + echo "[ ] Fixing SELinux permissions" + semanage fcontext -a -t bin_t -s system_u $(realpath /usr/lib)'/portmaster/portmaster-core' || : + restorecon -R /usr/lib/portmaster/portmaster-core 2>/dev/null >&2 || : +fi + +echo "[ ] Initializing binary files" mv /usr/bin/portmaster /usr/lib/portmaster/portmaster ln -s /usr/lib/portmaster/portmaster /usr/bin/portmaster +chmod +x /usr/lib/portmaster/portmaster-core + +echo "[ ] Enabling service" systemctl daemon-reload systemctl enable portmaster.service -echo "Please reboot your system" +echo "[ ] Done. Please reboot your system" diff --git a/packaging/linux/postrm b/packaging/linux/postrm index 9dddf8e9..06bc6309 100644 --- a/packaging/linux/postrm +++ b/packaging/linux/postrm @@ -1,10 +1,35 @@ #!/bin/bash +echo "[ ] Post-Remove script [arg1='$1' arg2='$2']" + +# DEB argument on upgrade - 'upgrade'; RPM - '1' +if [ "$1" = "upgrade" ] || [ "$1" = "1" ] ; then + echo "[ ] Post-Remove script: This is an upgrade." + exit 0 +fi + # -# Remove selinux permissions for portmaster-core if we have semanage -# available. +# Remove selinux permissions for portmaster-core if we have semanage available. # if command -V semanage >/dev/null 2>&1; then + echo "[ ] Removing SELinux permissions" semanage fcontext --delete $(realpath /usr/lib)'/portmaster/portmaster-core' || : restorecon -R /usr/lib/portmaster/portmaster-core 2>/dev/null >&2 || : -fi \ No newline at end of file +fi + +echo "[ ] Stopping and disabling service" +systemctl stop portmaster.service +systemctl disable portmaster.service + +echo "[ ] Removing files" +# Remove binaries folder +sudo rm -fr /usr/lib/portmaster +# Remove data folder +sudo rm -fr /var/lib/portmaster + +# remove V1 migration flag (if exists) +MIGRATED_FILE_FLAG="/opt/safing/portmaster/migrated.txt" +if [ -e "$MIGRATED_FILE_FLAG" ]; then + echo "[ ] Removing V1 migration flag" + rm "$MIGRATED_FILE_FLAG" +fi diff --git a/packaging/linux/readme.md b/packaging/linux/readme.md new file mode 100644 index 00000000..43fe4e05 --- /dev/null +++ b/packaging/linux/readme.md @@ -0,0 +1,47 @@ +# Installation scripts order + +Execution order of installation scripts (`preInstallScript, preRemoveScript, postInstallScript, postRemoveScript`) is different for DEB and RPM packages. +**NOTE!** 'remove' scripts is using from old version! + +## DEB scripts order + +Useful link: https://wiki.debian.org/MaintainerScripts +``` +DEB (apt) Install v2.2.2: + [*] Before install (2.2.2 : deb : install) + [*] After install (2.2.2 : deb : configure) + +DEB (apt) Upgrade v1.1.1 -> v2.2.2: + [*] Before remove (1.1.1 : deb : upgrade) + [*] Before install (2.2.2 : deb : upgrade) + [*] After remove (1.1.1 : deb : upgrade) + [*] After install (2.2.2 : deb : configure) + + DEB (apt) Remove: + [*] Before remove (1.1.1 : deb : remove) + [*] After remove (1.1.1 : deb : remove) +``` + +## RPM scripts order + +Useful link: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/ + +When scriptlets are called, they will be supplied with an argument. +This argument, accessed via $1 (for shell scripts) is the number of packages of this name +which will be left on the system when the action completes. + +``` + RPM (dnf) install: + [*] Before install (2.2.2 : rpm : 1) + [*] After install (2.2.2 : rpm : 1) + + RPM (dnf) upgrade: + [*] Before install (2.2.2 : rpm : 2) + [*] After install (2.2.2 : rpm : 2) + [*] Before remove (1.1.1 : rpm : 1) + [*] After remove (1.1.1 : rpm : 1) + + RPM (dnf) remove: + [*] Before remove (2.2.2 : rpm : 0) + [*] After remove (2.2.2 : rpm : 0) +``` \ No newline at end of file From 27235ad7b774cea519012e8252b2e115d2a972f1 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Wed, 26 Mar 2025 14:44:10 +0200 Subject: [PATCH 30/34] Revert "[desktop] Fix tray menu spn status and button" This reverts commit 8aab22a9ec333655d06bdbdb1c414d642347f5e0. --- desktop/tauri/src-tauri/src/traymenu.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/desktop/tauri/src-tauri/src/traymenu.rs b/desktop/tauri/src-tauri/src/traymenu.rs index f6901d29..777b9d23 100644 --- a/desktop/tauri/src-tauri/src/traymenu.rs +++ b/desktop/tauri/src-tauri/src/traymenu.rs @@ -251,8 +251,6 @@ pub fn setup_tray_menu( } }) .build(app)?; - - _ = app.set_menu(menu); Ok(icon) } From af4035feda8014a44b3a2b3a4e8b1a5b149531f6 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 27 Mar 2025 13:38:20 +0200 Subject: [PATCH 31/34] [desktop] Windows Installer: stop service (when running) before install --- .../templates/nsis/install_hooks.nsh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index 7e79cdd6..4d9c600b 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -6,14 +6,25 @@ var oldInstallationDir var dataDir !macro NSIS_HOOK_PREINSTALL - ; Abort if old service is running + ; Try to stop the service if it's running SimpleSC::ServiceIsStopped "PortmasterCore" Pop $0 Pop $1 ${If} $0 == 0 ${If} $1 == 0 - MessageBox MB_OK "Portmaster service is running. Stop it and run the installer again." - Abort + + DetailPrint "PortmasterCore service is running. Stopping service ..." + SimpleSC::StopService "PortmasterCore" 1 60 + Pop $0 + ${If} $0 != 0 + DetailPrint "Failed to stop PortmasterCore service. Error: $0" + MessageBox MB_OK "PortmasterCore service is running. Stop it and run the installer again." + Abort + ${EndIf} + + ; wait a little (give change for service to fully stop) + Sleep 2000 + ${EndIf} ${EndIf} @@ -125,7 +136,7 @@ var dataDir !macro NSIS_HOOK_PREUNINSTALL DetailPrint "Stopping service" ; Trigger service stop. In the worst case the service should stop in ~60 seconds. - SimpleSC::StopService "PortmasterCore" 1 90 + SimpleSC::StopService "PortmasterCore" 1 60 Pop $0 ${If} $0 != 0 DetailPrint "Failed to stop PortmasterCore service. Error: $0" From 4a8c64067dd21cb929bd7ea11e852bce1599e8b5 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 27 Mar 2025 15:13:05 +0200 Subject: [PATCH 32/34] [desktop] Windows uninstaller fixes --- .../templates/nsis/install_hooks.nsh | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index 4d9c600b..15f10fd7 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -116,7 +116,7 @@ var dataDir RMDir /r "$oldInstallationDir\intel" ; Delete the link to the ProgramData folder - RMDir /r "$PROGRAMFILES\Safing" + RMDir /r "$PROGRAMFILES64\Safing" ; Delete v1 user shortcut if its there. SetShellVarContext current @@ -158,7 +158,7 @@ var dataDir ; Post-uninstall hook: ; - Delete files !macro NSIS_HOOK_POSTUNINSTALL - ; Delete binarys + ; Delete binaries Delete /REBOOTOK "$INSTDIR\index.json" Delete /REBOOTOK "$INSTDIR\portmaster-core.exe" Delete /REBOOTOK "$INSTDIR\portmaster-kext.sys" @@ -168,25 +168,22 @@ var dataDir Delete /REBOOTOK "$INSTDIR\assets.zip" RMDir /r /REBOOTOK "$INSTDIR" - ; Delete Tauri leftovers - RMDir /r /REBOOTOK "$APPDATA\Portmaster" - - ; Delete intel data - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\index.json" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\base.dsdl" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\geoipv4.mmdb" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\geoipv6.mmdb" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\index.dsd" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\intermediate.dsdl" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\urgent.dsdl" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\main-intel.yaml" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\notifications.yaml" - Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\news.yaml" + ; delete data files + Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\databases\history.db" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\databases\cache" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\databases\icons" RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\download_intel" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\download_binaries" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\exec" + RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\logs" ${If} $DeleteAppDataCheckboxState = 1 + DetailPrint "Deleting the application data..." RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster" RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Safing" + ${Else} + DetailPrint "Application data kept as requested by the user." ${EndIf} !macroend \ No newline at end of file From 90ce30e8421d674569215cdc58ce773fdb1c35dc Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 27 Mar 2025 15:47:53 +0200 Subject: [PATCH 33/34] [desktop] Windows Installer: unregister V1 uninstaller --- desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index 15f10fd7..fb8fccda 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -124,7 +124,7 @@ var dataDir SetShellVarContext all ; Delete v1 registry values - DeleteRegKey HKLM "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Portmaster" + DeleteRegKey HKLM "SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Portmaster" Finish: From 1aa69f73a2097ffa93a5b719104f22f1d491b5e2 Mon Sep 17 00:00:00 2001 From: Alexandr Stelnykovych Date: Thu, 3 Apr 2025 17:45:11 +0300 Subject: [PATCH 34/34] [packaging] fix: remove leftover installer migration artifacts --- desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh | 3 +++ packaging/linux/postinst | 3 +++ 2 files changed, 6 insertions(+) diff --git a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh index 7e79cdd6..d198be9c 100644 --- a/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh +++ b/desktop/tauri/src-tauri/templates/nsis/install_hooks.nsh @@ -173,6 +173,9 @@ var dataDir Delete /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel\news.yaml" RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster\intel" + ; Remove PMv1 migration flag + Delete /REBOOTOK "$COMMONPROGRAMDATA\Safing\Portmaster\migrated.txt" + ${If} $DeleteAppDataCheckboxState = 1 RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Portmaster" RMDir /r /REBOOTOK "$COMMONPROGRAMDATA\Safing" diff --git a/packaging/linux/postinst b/packaging/linux/postinst index c99f8b4c..a54ee8e5 100644 --- a/packaging/linux/postinst +++ b/packaging/linux/postinst @@ -28,6 +28,9 @@ if [ -d "$OLD_INSTALLATION_DIR" ]; then echo "[ ] V1 migration: Removing V1 shortcuts" rm /etc/xdg/autostart/portmaster_notifier.desktop rm /usr/share/applications/portmaster_notifier.desktop + # app V1 shortcut + # NOTE: new V2 shortcut registered as "Portmaster.desktop" (first letter uppercase), so we can distinguish between V1 and V2 shortcuts. + rm /usr/share/applications/portmaster.desktop # Remove V1 files (except configuration) # (keeping V1 configuration for a smooth downgrade, if needed)