From f1f29e5d7206317b3e0ea21cd3a7973483e518c4 Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Tue, 21 May 2024 17:52:39 -0300 Subject: [PATCH 1/8] Refactor ESLint configuration and improve OAuth2 node functionality - Update ESLint configuration to include Prettier plugin and adjust rules for code style consistency. - Add browser and mocha environments to ESLint configuration. - Remove unused crypto and circular reference replacer from oauth2.js. - Simplify axios POST request logic and add proxy support in OAuth2 node. - Include response headers in the message payload for better context. - Adjust tests to reflect changes in oauth2.js and reduce timeout for faster test execution. - Add new test cases for handling different grant types, network failures, custom headers, multiple scopes, and proxy settings. --- .eslintrc.yml | 47 +- babel.config.js | 12 + diff | 15111 ++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 8982 +++++++++++++++++++------ package.json | 8 +- src/oauth2.js | 57 +- test/oauth2_spec.js | 371 +- yarn.lock | 3165 ++++++++- 8 files changed, 25751 insertions(+), 2002 deletions(-) create mode 100644 babel.config.js create mode 100644 diff diff --git a/.eslintrc.yml b/.eslintrc.yml index 9412df7..4bfe8d6 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -1,25 +1,30 @@ -extends: "eslint:recommended" -parserOptions: - ecmaVersion: 2017 env: + browser: true es6: true node: true - jasmine: true -overrides: - - files: ["test/**/*.js"] - rules: - no-console: "off" - # - files: - # - "*.js" - rules: - # Exemplo de regras personalizadas para arquivos JavaScript - semi: [2, 'always'] # Verificar se há ponto e vírgula ausente - indent: [error, 2] # Verificar se a indentação está com 2 espaços - quotes: [error, "single"] # Verificar se as aspas estão usando 'single' (simples) - no-unused-vars: error # Verificar se há variáveis não utilizadas - no-console: warn # Mostrar um aviso quando console.log é usado -ignorePatterns: - - "*.json" - - "*.md" - - "*.yml" + mocha: true +extends: + - "eslint:recommended" + - "plugin:prettier/recommended" +parser: "@babel/eslint-parser" +parserOptions: + requireConfigFile: false + babelOptions: + configFile: "./babel.config.js" +rules: + indent: + - error + - 2 + linebreak-style: + - error + - unix + quotes: + - error + - single + semi: + - error + - always + no-console: "off" +plugins: + - mocha diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..6c3be4c --- /dev/null +++ b/babel.config.js @@ -0,0 +1,12 @@ +module.exports = { + presets: [ + [ + '@babel/preset-env', + { + targets: { + node: 'current' + } + } + ] + ] +}; diff --git a/diff b/diff new file mode 100644 index 0000000..b4d400b --- /dev/null +++ b/diff @@ -0,0 +1,15111 @@ +diff --git a/.eslintrc.yml b/.eslintrc.yml +index 9412df7..4bfe8d6 100644 +--- a/.eslintrc.yml ++++ b/.eslintrc.yml +@@ -1,25 +1,30 @@ +-extends: "eslint:recommended" +-parserOptions: +- ecmaVersion: 2017 + env: ++ browser: true + es6: true + node: true +- jasmine: true +-overrides: +- - files: ["test/**/*.js"] +- rules: +- no-console: "off" +- # - files: +- # - "*.js" +- rules: +- # Exemplo de regras personalizadas para arquivos JavaScript +- semi: [2, 'always'] # Verificar se há ponto e vírgula ausente +- indent: [error, 2] # Verificar se a indentação está com 2 espaços +- quotes: [error, "single"] # Verificar se as aspas estão usando 'single' (simples) +- no-unused-vars: error # Verificar se há variáveis não utilizadas +- no-console: warn # Mostrar um aviso quando console.log é usado +-ignorePatterns: +- - "*.json" +- - "*.md" +- - "*.yml" ++ mocha: true ++extends: ++ - "eslint:recommended" ++ - "plugin:prettier/recommended" ++parser: "@babel/eslint-parser" ++parserOptions: ++ requireConfigFile: false ++ babelOptions: ++ configFile: "./babel.config.js" ++rules: ++ indent: ++ - error ++ - 2 ++ linebreak-style: ++ - error ++ - unix ++ quotes: ++ - error ++ - single ++ semi: ++ - error ++ - always ++ no-console: "off" ++plugins: ++ - mocha + +diff --git a/package-lock.json b/package-lock.json +index 6963ae6..c16e217 100644 +--- a/package-lock.json ++++ b/package-lock.json +@@ -1,30 +1,36 @@ + { + "name": "node-red-contrib-oauth2", +- "version": "5.2.7", ++ "version": "6.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "node-red-contrib-oauth2", +- "version": "5.2.7", +- "license": "MIT License", ++ "version": "6.0.0", ++ "license": "MIT", + "dependencies": { + "axios": ">=1.3.3", +- "json-schema": ">=0.4.0" ++ "mocha": "^10.4.0" + }, + "devDependencies": { +- "@babel/eslint-parser": "^7.21.8", +- "eslint": "^8.41.0", ++ "@babel/eslint-parser": "^7.24.5", ++ "@babel/preset-env": "^7.24.5", ++ "eslint": "^8.57.0", + "eslint-config-prettier": "^8.8.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsdoc": "^44.2.4", ++ "eslint-plugin-mocha": "^10.4.3", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", + "jsdoc": "^4.0.3", + "json-schema": ">=0.4.0", +- "prettier": "^2.8.8" ++ "nock": "^13.5.4", ++ "node-red": "^3.1.9", ++ "node-red-node-test-helper": "^0.3.4", ++ "prettier": "^2.8.8", ++ "should": "^13.2.3" + }, + "engines": { + "node": ">=12.0.0" +@@ -49,7 +55,6 @@ + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" +@@ -63,7 +68,6 @@ + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "dev": true, +- "peer": true, + "engines": { + "node": ">=6.9.0" + } +@@ -127,7 +131,6 @@ + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz", + "integrity": "sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==", + "dev": true, +- "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", +@@ -177,12 +180,35 @@ + "node": ">=6.9.0" + } + }, ++ "node_modules/@babel/helper-annotate-as-pure": { ++ "version": "7.22.5", ++ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", ++ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", ++ "dev": true, ++ "dependencies": { ++ "@babel/types": "^7.22.5" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { ++ "version": "7.22.15", ++ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", ++ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", ++ "dev": true, ++ "dependencies": { ++ "@babel/types": "^7.22.15" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", +@@ -199,17 +225,89 @@ + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, +- "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, ++ "node_modules/@babel/helper-create-class-features-plugin": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", ++ "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-annotate-as-pure": "^7.22.5", ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-function-name": "^7.23.0", ++ "@babel/helper-member-expression-to-functions": "^7.24.5", ++ "@babel/helper-optimise-call-expression": "^7.22.5", ++ "@babel/helper-replace-supers": "^7.24.1", ++ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", ++ "@babel/helper-split-export-declaration": "^7.24.5", ++ "semver": "^6.3.1" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" ++ } ++ }, ++ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { ++ "version": "6.3.1", ++ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", ++ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", ++ "dev": true, ++ "bin": { ++ "semver": "bin/semver.js" ++ } ++ }, ++ "node_modules/@babel/helper-create-regexp-features-plugin": { ++ "version": "7.22.15", ++ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", ++ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-annotate-as-pure": "^7.22.5", ++ "regexpu-core": "^5.3.1", ++ "semver": "^6.3.1" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" ++ } ++ }, ++ "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { ++ "version": "6.3.1", ++ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", ++ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", ++ "dev": true, ++ "bin": { ++ "semver": "bin/semver.js" ++ } ++ }, ++ "node_modules/@babel/helper-define-polyfill-provider": { ++ "version": "0.6.2", ++ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", ++ "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-compilation-targets": "^7.22.6", ++ "@babel/helper-plugin-utils": "^7.22.5", ++ "debug": "^4.1.1", ++ "lodash.debounce": "^4.0.8", ++ "resolve": "^1.14.2" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" ++ } ++ }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, +- "peer": true, + "engines": { + "node": ">=6.9.0" + } +@@ -219,7 +317,6 @@ + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" +@@ -233,7 +330,6 @@ + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, +@@ -241,12 +337,23 @@ + "node": ">=6.9.0" + } + }, ++ "node_modules/@babel/helper-member-expression-to-functions": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", ++ "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", ++ "dev": true, ++ "dependencies": { ++ "@babel/types": "^7.24.5" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, +@@ -259,7 +366,6 @@ + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", + "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.24.3", +@@ -274,12 +380,66 @@ + "@babel/core": "^7.0.0" + } + }, ++ "node_modules/@babel/helper-optimise-call-expression": { ++ "version": "7.22.5", ++ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", ++ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", ++ "dev": true, ++ "dependencies": { ++ "@babel/types": "^7.22.5" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@babel/helper-plugin-utils": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", ++ "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", ++ "dev": true, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@babel/helper-remap-async-to-generator": { ++ "version": "7.22.20", ++ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", ++ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-annotate-as-pure": "^7.22.5", ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-wrap-function": "^7.22.20" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" ++ } ++ }, ++ "node_modules/@babel/helper-replace-supers": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", ++ "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-member-expression-to-functions": "^7.23.0", ++ "@babel/helper-optimise-call-expression": "^7.22.5" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" ++ } ++ }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", + "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, +@@ -287,12 +447,23 @@ + "node": ">=6.9.0" + } + }, ++ "node_modules/@babel/helper-skip-transparent-expression-wrappers": { ++ "version": "7.22.5", ++ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", ++ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", ++ "dev": true, ++ "dependencies": { ++ "@babel/types": "^7.22.5" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", + "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, +@@ -305,7 +476,6 @@ + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, +- "peer": true, + "engines": { + "node": ">=6.9.0" + } +@@ -315,7 +485,6 @@ + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", + "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "dev": true, +- "peer": true, + "engines": { + "node": ">=6.9.0" + } +@@ -325,7 +494,20 @@ + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, +- "peer": true, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@babel/helper-wrap-function": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", ++ "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-function-name": "^7.23.0", ++ "@babel/template": "^7.24.0", ++ "@babel/types": "^7.24.5" ++ }, + "engines": { + "node": ">=6.9.0" + } +@@ -350,7 +532,6 @@ + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", + "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "dev": true, +- "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.5", + "chalk": "^2.4.2", +@@ -366,7 +547,6 @@ + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, +- "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, +@@ -379,7 +559,6 @@ + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, +- "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", +@@ -394,7 +573,6 @@ + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, +- "peer": true, + "dependencies": { + "color-name": "1.1.3" + } +@@ -403,15 +581,13 @@ + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", +- "dev": true, +- "peer": true ++ "dev": true + }, + "node_modules/@babel/highlight/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, +- "peer": true, + "engines": { + "node": ">=0.8.0" + } +@@ -421,7 +597,6 @@ + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, +- "peer": true, + "engines": { + "node": ">=4" + } +@@ -431,7 +606,6 @@ + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, +- "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, +@@ -451,1201 +625,4210 @@ + "node": ">=6.0.0" + } + }, +- "node_modules/@babel/template": { +- "version": "7.24.0", +- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", +- "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", ++ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", ++ "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", + "dev": true, +- "peer": true, + "dependencies": { +- "@babel/code-frame": "^7.23.5", +- "@babel/parser": "^7.24.0", +- "@babel/types": "^7.24.0" ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" + } + }, +- "node_modules/@babel/traverse": { +- "version": "7.24.5", +- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", +- "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", ++ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", ++ "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dev": true, +- "peer": true, + "dependencies": { +- "@babel/code-frame": "^7.24.2", +- "@babel/generator": "^7.24.5", +- "@babel/helper-environment-visitor": "^7.22.20", +- "@babel/helper-function-name": "^7.23.0", +- "@babel/helper-hoist-variables": "^7.22.5", +- "@babel/helper-split-export-declaration": "^7.24.5", +- "@babel/parser": "^7.24.5", +- "@babel/types": "^7.24.5", +- "debug": "^4.3.1", +- "globals": "^11.1.0" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" + } + }, +- "node_modules/@babel/traverse/node_modules/globals": { +- "version": "11.12.0", +- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", +- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", ++ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", ++ "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dev": true, +- "peer": true, ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", ++ "@babel/plugin-transform-optional-chaining": "^7.24.1" ++ }, + "engines": { +- "node": ">=4" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.13.0" + } + }, +- "node_modules/@babel/types": { +- "version": "7.24.5", +- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", +- "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", ++ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", ++ "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dev": true, +- "peer": true, + "dependencies": { +- "@babel/helper-string-parser": "^7.24.1", +- "@babel/helper-validator-identifier": "^7.24.5", +- "to-fast-properties": "^2.0.0" ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" + } + }, +- "node_modules/@es-joy/jsdoccomment": { +- "version": "0.39.4", +- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", +- "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", ++ "node_modules/@babel/plugin-proposal-private-property-in-object": { ++ "version": "7.21.0-placeholder-for-preset-env.2", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", ++ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, +- "license": "MIT", +- "dependencies": { +- "comment-parser": "1.3.1", +- "esquery": "^1.5.0", +- "jsdoc-type-pratt-parser": "~4.0.0" +- }, + "engines": { +- "node": ">=16" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@eslint-community/eslint-utils": { +- "version": "4.4.0", +- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", +- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", ++ "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": { +- "eslint-visitor-keys": "^3.3.0" +- }, +- "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { +- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@eslint-community/regexpp": { +- "version": "4.10.0", +- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", +- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", ++ "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", +- "engines": { +- "node": "^12.0.0 || ^14.0.0 || >=16.0.0" ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.12.13" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@eslint/eslintrc": { +- "version": "2.1.4", +- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", +- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", ++ "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": { +- "ajv": "^6.12.4", +- "debug": "^4.3.2", +- "espree": "^9.6.0", +- "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" ++ "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://opencollective.com/eslint" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@eslint/js": { +- "version": "8.57.0", +- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", +- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", ++ "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", +- "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.8.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@humanwhocodes/config-array": { +- "version": "0.11.14", +- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", +- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", ++ "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": "Apache-2.0", + "dependencies": { +- "@humanwhocodes/object-schema": "^2.0.2", +- "debug": "^4.3.1", +- "minimatch": "^3.0.5" ++ "@babel/helper-plugin-utils": "^7.8.3" + }, +- "engines": { +- "node": ">=10.10.0" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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==", ++ "node_modules/@babel/plugin-syntax-import-assertions": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", ++ "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dev": true, +- "license": "Apache-2.0", ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, + "engines": { +- "node": ">=12.22" ++ "node": ">=6.9.0" + }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/nzakas" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@humanwhocodes/object-schema": { +- "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==", +- "dev": true, +- "license": "BSD-3-Clause" +- }, +- "node_modules/@jridgewell/gen-mapping": { +- "version": "0.3.5", +- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", +- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", ++ "node_modules/@babel/plugin-syntax-import-attributes": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", ++ "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dev": true, +- "peer": true, + "dependencies": { +- "@jridgewell/set-array": "^1.2.1", +- "@jridgewell/sourcemap-codec": "^1.4.10", +- "@jridgewell/trace-mapping": "^0.3.24" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">=6.0.0" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@jridgewell/resolve-uri": { +- "version": "3.1.2", +- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", +- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", ++ "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, +- "peer": true, +- "engines": { +- "node": ">=6.0.0" ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.10.4" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@jridgewell/set-array": { +- "version": "1.2.1", +- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", +- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", ++ "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, +- "peer": true, +- "engines": { +- "node": ">=6.0.0" ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.8.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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==", ++ "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, +- "peer": true ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.10.4" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" ++ } + }, +- "node_modules/@jridgewell/trace-mapping": { +- "version": "0.3.25", +- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", +- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", ++ "node_modules/@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, +- "peer": true, + "dependencies": { +- "@jridgewell/resolve-uri": "^3.1.0", +- "@jridgewell/sourcemap-codec": "^1.4.14" ++ "@babel/helper-plugin-utils": "^7.8.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@jsdoc/salty": { +- "version": "0.2.8", +- "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", +- "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", ++ "node_modules/@babel/plugin-syntax-numeric-separator": { ++ "version": "7.10.4", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", ++ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { +- "lodash": "^4.17.21" ++ "@babel/helper-plugin-utils": "^7.10.4" + }, +- "engines": { +- "node": ">=v12.0.0" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { +- "version": "5.1.1-v1", +- "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", +- "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", ++ "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": { +- "eslint-scope": "5.1.1" ++ "@babel/helper-plugin-utils": "^7.8.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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==", ++ "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": "BSD-2-Clause", + "dependencies": { +- "esrecurse": "^4.3.0", +- "estraverse": "^4.1.1" ++ "@babel/helper-plugin-utils": "^7.8.0" + }, +- "engines": { +- "node": ">=8.0.0" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { +- "version": "4.3.0", +- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", +- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", ++ "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": "BSD-2-Clause", +- "engines": { +- "node": ">=4.0" ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.8.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@nodelib/fs.scandir": { +- "version": "2.1.5", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", +- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", ++ "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": { +- "@nodelib/fs.stat": "2.0.5", +- "run-parallel": "^1.1.9" ++ "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { +- "node": ">= 8" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@nodelib/fs.stat": { +- "version": "2.0.5", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", +- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", ++ "node_modules/@babel/plugin-syntax-top-level-await": { ++ "version": "7.14.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", ++ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.14.5" ++ }, + "engines": { +- "node": ">= 8" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@nodelib/fs.walk": { +- "version": "1.2.8", +- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", +- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", ++ "node_modules/@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": { +- "@nodelib/fs.scandir": "2.1.5", +- "fastq": "^1.6.0" ++ "@babel/helper-create-regexp-features-plugin": "^7.18.6", ++ "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { +- "node": ">= 8" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" + } + }, +- "node_modules/@types/json5": { +- "version": "0.0.29", +- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", +- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/@types/linkify-it": { +- "version": "5.0.0", +- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", +- "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", +- "dev": true +- }, +- "node_modules/@types/markdown-it": { +- "version": "14.1.1", +- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", +- "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", ++ "node_modules/@babel/plugin-transform-arrow-functions": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", ++ "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dev": true, + "dependencies": { +- "@types/linkify-it": "^5", +- "@types/mdurl": "^2" ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/@types/mdurl": { +- "version": "2.0.0", +- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", +- "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", +- "dev": true +- }, +- "node_modules/@ungap/structured-clone": { +- "version": "1.2.0", +- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", +- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", ++ "node_modules/@babel/plugin-transform-async-generator-functions": { ++ "version": "7.24.3", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", ++ "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dev": true, +- "license": "ISC" ++ "dependencies": { ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-remap-async-to-generator": "^7.22.20", ++ "@babel/plugin-syntax-async-generators": "^7.8.4" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" ++ } + }, +- "node_modules/acorn": { +- "version": "8.11.3", +- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", +- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", ++ "node_modules/@babel/plugin-transform-async-to-generator": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", ++ "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dev": true, +- "license": "MIT", +- "bin": { +- "acorn": "bin/acorn" ++ "dependencies": { ++ "@babel/helper-module-imports": "^7.24.1", ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { +- "node": ">=0.4.0" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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==", ++ "node_modules/@babel/plugin-transform-block-scoped-functions": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", ++ "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, + "peerDependencies": { +- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/ajv": { +- "version": "6.12.6", +- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", +- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", ++ "node_modules/@babel/plugin-transform-block-scoping": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", ++ "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", + "dev": true, +- "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" ++ "@babel/helper-plugin-utils": "^7.24.5" + }, +- "funding": { +- "type": "github", +- "url": "https://github.com/sponsors/epoberezkin" ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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==", ++ "node_modules/@babel/plugin-transform-class-properties": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", ++ "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-create-class-features-plugin": "^7.24.1", ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, + "engines": { +- "node": ">=8" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/ansi-styles": { +- "version": "4.3.0", +- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", +- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", ++ "node_modules/@babel/plugin-transform-class-static-block": { ++ "version": "7.24.4", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", ++ "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "color-convert": "^2.0.1" ++ "@babel/helper-create-class-features-plugin": "^7.24.4", ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { +- "node": ">=8" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/chalk/ansi-styles?sponsor=1" ++ "peerDependencies": { ++ "@babel/core": "^7.12.0" + } + }, +- "node_modules/are-docs-informative": { +- "version": "0.0.2", +- "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", +- "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", ++ "node_modules/@babel/plugin-transform-classes": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", ++ "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-annotate-as-pure": "^7.22.5", ++ "@babel/helper-compilation-targets": "^7.23.6", ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-function-name": "^7.23.0", ++ "@babel/helper-plugin-utils": "^7.24.5", ++ "@babel/helper-replace-supers": "^7.24.1", ++ "@babel/helper-split-export-declaration": "^7.24.5", ++ "globals": "^11.1.0" ++ }, + "engines": { +- "node": ">=14" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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==", ++ "node_modules/@babel/plugin-transform-classes/node_modules/globals": { ++ "version": "11.12.0", ++ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", ++ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, +- "license": "Python-2.0" ++ "engines": { ++ "node": ">=4" ++ } + }, +- "node_modules/array-buffer-byte-length": { +- "version": "1.0.1", +- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", +- "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", ++ "node_modules/@babel/plugin-transform-computed-properties": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", ++ "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.5", +- "is-array-buffer": "^3.0.4" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/template": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/array-includes": { +- "version": "3.1.8", +- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", +- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", ++ "node_modules/@babel/plugin-transform-destructuring": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", ++ "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.7", +- "define-properties": "^1.2.1", +- "es-abstract": "^1.23.2", +- "es-object-atoms": "^1.0.0", +- "get-intrinsic": "^1.2.4", +- "is-string": "^1.0.7" ++ "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/array.prototype.findlastindex": { +- "version": "1.2.5", +- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", +- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", ++ "node_modules/@babel/plugin-transform-dotall-regex": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", ++ "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.7", +- "define-properties": "^1.2.1", +- "es-abstract": "^1.23.2", +- "es-errors": "^1.3.0", +- "es-object-atoms": "^1.0.0", +- "es-shim-unscopables": "^1.0.2" ++ "@babel/helper-create-regexp-features-plugin": "^7.22.15", ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/array.prototype.flat": { +- "version": "1.3.2", +- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", +- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", ++ "node_modules/@babel/plugin-transform-duplicate-keys": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", ++ "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.2", +- "define-properties": "^1.2.0", +- "es-abstract": "^1.22.1", +- "es-shim-unscopables": "^1.0.0" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/array.prototype.flatmap": { +- "version": "1.3.2", +- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", +- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", ++ "node_modules/@babel/plugin-transform-dynamic-import": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", ++ "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.2", +- "define-properties": "^1.2.0", +- "es-abstract": "^1.22.1", +- "es-shim-unscopables": "^1.0.0" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/arraybuffer.prototype.slice": { +- "version": "1.0.3", +- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", +- "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", ++ "node_modules/@babel/plugin-transform-exponentiation-operator": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", ++ "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "array-buffer-byte-length": "^1.0.1", +- "call-bind": "^1.0.5", +- "define-properties": "^1.2.1", +- "es-abstract": "^1.22.3", +- "es-errors": "^1.2.1", +- "get-intrinsic": "^1.2.3", +- "is-array-buffer": "^3.0.4", +- "is-shared-array-buffer": "^1.0.2" ++ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/asynckit": { +- "version": "0.4.0", +- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", +- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", +- "license": "MIT" +- }, +- "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==", ++ "node_modules/@babel/plugin-transform-export-namespace-from": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", ++ "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "possible-typed-array-names": "^1.0.0" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/axios": { +- "version": "1.7.1", +- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", +- "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", +- "license": "MIT", ++ "node_modules/@babel/plugin-transform-for-of": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", ++ "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", ++ "dev": true, + "dependencies": { +- "follow-redirects": "^1.15.6", +- "form-data": "^4.0.0", +- "proxy-from-env": "^1.1.0" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/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/bluebird": { +- "version": "3.7.2", +- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", +- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", +- "dev": true +- }, +- "node_modules/brace-expansion": { +- "version": "1.1.11", +- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", +- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", ++ "node_modules/@babel/plugin-transform-function-name": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", ++ "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "balanced-match": "^1.0.0", +- "concat-map": "0.0.1" ++ "@babel/helper-compilation-targets": "^7.23.6", ++ "@babel/helper-function-name": "^7.23.0", ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/browserslist": { +- "version": "4.23.0", +- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", +- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", ++ "node_modules/@babel/plugin-transform-json-strings": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", ++ "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/browserslist" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/browserslist" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "peer": true, + "dependencies": { +- "caniuse-lite": "^1.0.30001587", +- "electron-to-chromium": "^1.4.668", +- "node-releases": "^2.0.14", +- "update-browserslist-db": "^1.0.13" +- }, +- "bin": { +- "browserslist": "cli.js" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { +- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/builtins": { +- "version": "5.1.0", +- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", +- "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", ++ "node_modules/@babel/plugin-transform-literals": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", ++ "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "semver": "^7.0.0" +- } +- }, +- "node_modules/call-bind": { +- "version": "1.0.7", +- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", +- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", +- "dev": true, +- "license": "MIT", +- "dependencies": { +- "es-define-property": "^1.0.0", +- "es-errors": "^1.3.0", +- "function-bind": "^1.1.2", +- "get-intrinsic": "^1.2.4", +- "set-function-length": "^1.2.1" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/callsites": { +- "version": "3.1.0", +- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", +- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", ++ "node_modules/@babel/plugin-transform-logical-assignment-operators": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", ++ "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" ++ }, + "engines": { +- "node": ">=6" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/caniuse-lite": { +- "version": "1.0.30001620", +- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", +- "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", +- "dev": true, +- "funding": [ +- { +- "type": "opencollective", +- "url": "https://opencollective.com/browserslist" +- }, +- { +- "type": "tidelift", +- "url": "https://tidelift.com/funding/github/npm/caniuse-lite" +- }, +- { +- "type": "github", +- "url": "https://github.com/sponsors/ai" +- } +- ], +- "peer": true +- }, +- "node_modules/catharsis": { +- "version": "0.9.0", +- "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", +- "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", ++ "node_modules/@babel/plugin-transform-member-expression-literals": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", ++ "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dev": true, + "dependencies": { +- "lodash": "^4.17.15" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 10" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/chalk": { +- "version": "4.1.2", +- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", +- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", ++ "node_modules/@babel/plugin-transform-modules-amd": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", ++ "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "ansi-styles": "^4.1.0", +- "supports-color": "^7.1.0" ++ "@babel/helper-module-transforms": "^7.23.3", ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">=10" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/chalk/chalk?sponsor=1" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/color-convert": { +- "version": "2.0.1", +- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", +- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", ++ "node_modules/@babel/plugin-transform-modules-commonjs": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", ++ "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "color-name": "~1.1.4" ++ "@babel/helper-module-transforms": "^7.23.3", ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { +- "node": ">=7.0.0" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/color-name": { +- "version": "1.1.4", +- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", +- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", ++ "node_modules/@babel/plugin-transform-modules-systemjs": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", ++ "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dev": true, +- "license": "MIT" +- }, +- "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==", +- "license": "MIT", + "dependencies": { +- "delayed-stream": "~1.0.0" ++ "@babel/helper-hoist-variables": "^7.22.5", ++ "@babel/helper-module-transforms": "^7.23.3", ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { +- "node": ">= 0.8" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/comment-parser": { +- "version": "1.3.1", +- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", +- "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", ++ "node_modules/@babel/plugin-transform-modules-umd": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", ++ "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-module-transforms": "^7.23.3", ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, + "engines": { +- "node": ">= 12.0.0" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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/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, +- "peer": true +- }, +- "node_modules/cross-spawn": { +- "version": "7.0.3", +- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", +- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", ++ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { ++ "version": "7.22.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", ++ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "path-key": "^3.1.0", +- "shebang-command": "^2.0.0", +- "which": "^2.0.1" ++ "@babel/helper-create-regexp-features-plugin": "^7.22.5", ++ "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { +- "node": ">= 8" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" + } + }, +- "node_modules/data-view-buffer": { +- "version": "1.0.1", +- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", +- "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", ++ "node_modules/@babel/plugin-transform-new-target": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", ++ "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.6", +- "es-errors": "^1.3.0", +- "is-data-view": "^1.0.1" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/data-view-byte-length": { +- "version": "1.0.1", +- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", +- "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", ++ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", ++ "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.7", +- "es-errors": "^1.3.0", +- "is-data-view": "^1.0.1" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/data-view-byte-offset": { +- "version": "1.0.0", +- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", +- "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", ++ "node_modules/@babel/plugin-transform-numeric-separator": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", ++ "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.6", +- "es-errors": "^1.3.0", +- "is-data-view": "^1.0.1" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/debug": { +- "version": "4.3.4", +- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", +- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", ++ "node_modules/@babel/plugin-transform-object-rest-spread": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", ++ "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "ms": "2.1.2" ++ "@babel/helper-compilation-targets": "^7.23.6", ++ "@babel/helper-plugin-utils": "^7.24.5", ++ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", ++ "@babel/plugin-transform-parameters": "^7.24.5" + }, + "engines": { +- "node": ">=6.0" ++ "node": ">=6.9.0" + }, +- "peerDependenciesMeta": { +- "supports-color": { +- "optional": true +- } ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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/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==", ++ "node_modules/@babel/plugin-transform-object-super": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", ++ "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "es-define-property": "^1.0.0", +- "es-errors": "^1.3.0", +- "gopd": "^1.0.1" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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==", ++ "node_modules/@babel/plugin-transform-optional-catch-binding": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", ++ "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "define-data-property": "^1.0.1", +- "has-property-descriptors": "^1.0.0", +- "object-keys": "^1.1.1" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/delayed-stream": { +- "version": "1.0.0", +- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", +- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", +- "license": "MIT", ++ "node_modules/@babel/plugin-transform-optional-chaining": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", ++ "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.5", ++ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", ++ "@babel/plugin-syntax-optional-chaining": "^7.8.3" ++ }, + "engines": { +- "node": ">=0.4.0" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/doctrine": { +- "version": "2.1.0", +- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", +- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", ++ "node_modules/@babel/plugin-transform-parameters": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", ++ "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", + "dev": true, +- "license": "Apache-2.0", + "dependencies": { +- "esutils": "^2.0.2" ++ "@babel/helper-plugin-utils": "^7.24.5" + }, + "engines": { +- "node": ">=0.10.0" +- } ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" ++ } + }, +- "node_modules/electron-to-chromium": { +- "version": "1.4.775", +- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", +- "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==", ++ "node_modules/@babel/plugin-transform-private-methods": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", ++ "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dev": true, +- "peer": true ++ "dependencies": { ++ "@babel/helper-create-class-features-plugin": "^7.24.1", ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" ++ } + }, +- "node_modules/entities": { +- "version": "4.5.0", +- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", +- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", ++ "node_modules/@babel/plugin-transform-private-property-in-object": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", ++ "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", + "dev": true, ++ "dependencies": { ++ "@babel/helper-annotate-as-pure": "^7.22.5", ++ "@babel/helper-create-class-features-plugin": "^7.24.5", ++ "@babel/helper-plugin-utils": "^7.24.5", ++ "@babel/plugin-syntax-private-property-in-object": "^7.14.5" ++ }, + "engines": { +- "node": ">=0.12" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/fb55/entities?sponsor=1" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/es-abstract": { +- "version": "1.23.3", +- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", +- "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", ++ "node_modules/@babel/plugin-transform-property-literals": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", ++ "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "array-buffer-byte-length": "^1.0.1", +- "arraybuffer.prototype.slice": "^1.0.3", +- "available-typed-arrays": "^1.0.7", +- "call-bind": "^1.0.7", +- "data-view-buffer": "^1.0.1", +- "data-view-byte-length": "^1.0.1", +- "data-view-byte-offset": "^1.0.0", +- "es-define-property": "^1.0.0", +- "es-errors": "^1.3.0", +- "es-object-atoms": "^1.0.0", +- "es-set-tostringtag": "^2.0.3", +- "es-to-primitive": "^1.2.1", +- "function.prototype.name": "^1.1.6", +- "get-intrinsic": "^1.2.4", +- "get-symbol-description": "^1.0.2", +- "globalthis": "^1.0.3", +- "gopd": "^1.0.1", +- "has-property-descriptors": "^1.0.2", +- "has-proto": "^1.0.3", +- "has-symbols": "^1.0.3", +- "hasown": "^2.0.2", +- "internal-slot": "^1.0.7", +- "is-array-buffer": "^3.0.4", +- "is-callable": "^1.2.7", +- "is-data-view": "^1.0.1", +- "is-negative-zero": "^2.0.3", +- "is-regex": "^1.1.4", +- "is-shared-array-buffer": "^1.0.3", +- "is-string": "^1.0.7", +- "is-typed-array": "^1.1.13", +- "is-weakref": "^1.0.2", +- "object-inspect": "^1.13.1", +- "object-keys": "^1.1.1", +- "object.assign": "^4.1.5", +- "regexp.prototype.flags": "^1.5.2", +- "safe-array-concat": "^1.1.2", +- "safe-regex-test": "^1.0.3", +- "string.prototype.trim": "^1.2.9", +- "string.prototype.trimend": "^1.0.8", +- "string.prototype.trimstart": "^1.0.8", +- "typed-array-buffer": "^1.0.2", +- "typed-array-byte-length": "^1.0.1", +- "typed-array-byte-offset": "^1.0.2", +- "typed-array-length": "^1.0.6", +- "unbox-primitive": "^1.0.2", +- "which-typed-array": "^1.1.15" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/es-define-property": { +- "version": "1.0.0", +- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", +- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", ++ "node_modules/@babel/plugin-transform-regenerator": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", ++ "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "get-intrinsic": "^1.2.4" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "regenerator-transform": "^0.15.2" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "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==", ++ "node_modules/@babel/plugin-transform-reserved-words": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", ++ "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/es-object-atoms": { +- "version": "1.0.0", +- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", +- "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", ++ "node_modules/@babel/plugin-transform-shorthand-properties": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", ++ "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "es-errors": "^1.3.0" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/es-set-tostringtag": { +- "version": "2.0.3", +- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", +- "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", ++ "node_modules/@babel/plugin-transform-spread": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", ++ "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "get-intrinsic": "^1.2.4", +- "has-tostringtag": "^1.0.2", +- "hasown": "^2.0.1" ++ "@babel/helper-plugin-utils": "^7.24.0", ++ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/es-shim-unscopables": { +- "version": "1.0.2", +- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", +- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", ++ "node_modules/@babel/plugin-transform-sticky-regex": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", ++ "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "hasown": "^2.0.0" ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/es-to-primitive": { +- "version": "1.2.1", +- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", +- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", ++ "node_modules/@babel/plugin-transform-template-literals": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", ++ "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "is-callable": "^1.1.4", +- "is-date-object": "^1.0.1", +- "is-symbol": "^1.0.2" ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/escalade": { +- "version": "3.1.2", +- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", +- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", ++ "node_modules/@babel/plugin-transform-typeof-symbol": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", ++ "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", + "dev": true, +- "peer": true, ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.5" ++ }, + "engines": { +- "node": ">=6" ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/escape-string-regexp": { +- "version": "4.0.0", +- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", +- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", ++ "node_modules/@babel/plugin-transform-unicode-escapes": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", ++ "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dev": true, +- "license": "MIT", ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, + "engines": { +- "node": ">=10" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/eslint": { +- "version": "8.57.0", +- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", +- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", ++ "node_modules/@babel/plugin-transform-unicode-property-regex": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", ++ "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "@eslint-community/eslint-utils": "^4.2.0", +- "@eslint-community/regexpp": "^4.6.1", +- "@eslint/eslintrc": "^2.1.4", +- "@eslint/js": "8.57.0", +- "@humanwhocodes/config-array": "^0.11.14", +- "@humanwhocodes/module-importer": "^1.0.1", +- "@nodelib/fs.walk": "^1.2.8", +- "@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.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", +- "file-entry-cache": "^6.0.1", +- "find-up": "^5.0.0", +- "glob-parent": "^6.0.2", +- "globals": "^13.19.0", +- "graphemer": "^1.4.0", +- "ignore": "^5.2.0", +- "imurmurhash": "^0.1.4", +- "is-glob": "^4.0.0", +- "is-path-inside": "^3.0.3", +- "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.3", +- "strip-ansi": "^6.0.1", +- "text-table": "^0.2.0" +- }, +- "bin": { +- "eslint": "bin/eslint.js" ++ "@babel/helper-create-regexp-features-plugin": "^7.22.15", ++ "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ "node": ">=6.9.0" + }, +- "funding": { +- "url": "https://opencollective.com/eslint" ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/eslint-config-prettier": { +- "version": "8.10.0", +- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", +- "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", ++ "node_modules/@babel/plugin-transform-unicode-regex": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", ++ "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dev": true, +- "license": "MIT", +- "bin": { +- "eslint-config-prettier": "bin/cli.js" ++ "dependencies": { ++ "@babel/helper-create-regexp-features-plugin": "^7.22.15", ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" + }, + "peerDependencies": { +- "eslint": ">=7.0.0" ++ "@babel/core": "^7.0.0-0" + } + }, +- "node_modules/eslint-config-standard": { +- "version": "17.1.0", +- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", +- "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", ++ "node_modules/@babel/plugin-transform-unicode-sets-regex": { ++ "version": "7.24.1", ++ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", ++ "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dev": true, +- "funding": [ +- { ++ "dependencies": { ++ "@babel/helper-create-regexp-features-plugin": "^7.22.15", ++ "@babel/helper-plugin-utils": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0" ++ } ++ }, ++ "node_modules/@babel/preset-env": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz", ++ "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", ++ "dev": true, ++ "dependencies": { ++ "@babel/compat-data": "^7.24.4", ++ "@babel/helper-compilation-targets": "^7.23.6", ++ "@babel/helper-plugin-utils": "^7.24.5", ++ "@babel/helper-validator-option": "^7.23.5", ++ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", ++ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", ++ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", ++ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", ++ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", ++ "@babel/plugin-syntax-async-generators": "^7.8.4", ++ "@babel/plugin-syntax-class-properties": "^7.12.13", ++ "@babel/plugin-syntax-class-static-block": "^7.14.5", ++ "@babel/plugin-syntax-dynamic-import": "^7.8.3", ++ "@babel/plugin-syntax-export-namespace-from": "^7.8.3", ++ "@babel/plugin-syntax-import-assertions": "^7.24.1", ++ "@babel/plugin-syntax-import-attributes": "^7.24.1", ++ "@babel/plugin-syntax-import-meta": "^7.10.4", ++ "@babel/plugin-syntax-json-strings": "^7.8.3", ++ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", ++ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", ++ "@babel/plugin-syntax-numeric-separator": "^7.10.4", ++ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", ++ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", ++ "@babel/plugin-syntax-optional-chaining": "^7.8.3", ++ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", ++ "@babel/plugin-syntax-top-level-await": "^7.14.5", ++ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", ++ "@babel/plugin-transform-arrow-functions": "^7.24.1", ++ "@babel/plugin-transform-async-generator-functions": "^7.24.3", ++ "@babel/plugin-transform-async-to-generator": "^7.24.1", ++ "@babel/plugin-transform-block-scoped-functions": "^7.24.1", ++ "@babel/plugin-transform-block-scoping": "^7.24.5", ++ "@babel/plugin-transform-class-properties": "^7.24.1", ++ "@babel/plugin-transform-class-static-block": "^7.24.4", ++ "@babel/plugin-transform-classes": "^7.24.5", ++ "@babel/plugin-transform-computed-properties": "^7.24.1", ++ "@babel/plugin-transform-destructuring": "^7.24.5", ++ "@babel/plugin-transform-dotall-regex": "^7.24.1", ++ "@babel/plugin-transform-duplicate-keys": "^7.24.1", ++ "@babel/plugin-transform-dynamic-import": "^7.24.1", ++ "@babel/plugin-transform-exponentiation-operator": "^7.24.1", ++ "@babel/plugin-transform-export-namespace-from": "^7.24.1", ++ "@babel/plugin-transform-for-of": "^7.24.1", ++ "@babel/plugin-transform-function-name": "^7.24.1", ++ "@babel/plugin-transform-json-strings": "^7.24.1", ++ "@babel/plugin-transform-literals": "^7.24.1", ++ "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", ++ "@babel/plugin-transform-member-expression-literals": "^7.24.1", ++ "@babel/plugin-transform-modules-amd": "^7.24.1", ++ "@babel/plugin-transform-modules-commonjs": "^7.24.1", ++ "@babel/plugin-transform-modules-systemjs": "^7.24.1", ++ "@babel/plugin-transform-modules-umd": "^7.24.1", ++ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", ++ "@babel/plugin-transform-new-target": "^7.24.1", ++ "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", ++ "@babel/plugin-transform-numeric-separator": "^7.24.1", ++ "@babel/plugin-transform-object-rest-spread": "^7.24.5", ++ "@babel/plugin-transform-object-super": "^7.24.1", ++ "@babel/plugin-transform-optional-catch-binding": "^7.24.1", ++ "@babel/plugin-transform-optional-chaining": "^7.24.5", ++ "@babel/plugin-transform-parameters": "^7.24.5", ++ "@babel/plugin-transform-private-methods": "^7.24.1", ++ "@babel/plugin-transform-private-property-in-object": "^7.24.5", ++ "@babel/plugin-transform-property-literals": "^7.24.1", ++ "@babel/plugin-transform-regenerator": "^7.24.1", ++ "@babel/plugin-transform-reserved-words": "^7.24.1", ++ "@babel/plugin-transform-shorthand-properties": "^7.24.1", ++ "@babel/plugin-transform-spread": "^7.24.1", ++ "@babel/plugin-transform-sticky-regex": "^7.24.1", ++ "@babel/plugin-transform-template-literals": "^7.24.1", ++ "@babel/plugin-transform-typeof-symbol": "^7.24.5", ++ "@babel/plugin-transform-unicode-escapes": "^7.24.1", ++ "@babel/plugin-transform-unicode-property-regex": "^7.24.1", ++ "@babel/plugin-transform-unicode-regex": "^7.24.1", ++ "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", ++ "@babel/preset-modules": "0.1.6-no-external-plugins", ++ "babel-plugin-polyfill-corejs2": "^0.4.10", ++ "babel-plugin-polyfill-corejs3": "^0.10.4", ++ "babel-plugin-polyfill-regenerator": "^0.6.1", ++ "core-js-compat": "^3.31.0", ++ "semver": "^6.3.1" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0" ++ } ++ }, ++ "node_modules/@babel/preset-env/node_modules/semver": { ++ "version": "6.3.1", ++ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", ++ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", ++ "dev": true, ++ "bin": { ++ "semver": "bin/semver.js" ++ } ++ }, ++ "node_modules/@babel/preset-modules": { ++ "version": "0.1.6-no-external-plugins", ++ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", ++ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-plugin-utils": "^7.0.0", ++ "@babel/types": "^7.4.4", ++ "esutils": "^2.0.2" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" ++ } ++ }, ++ "node_modules/@babel/regjsgen": { ++ "version": "0.8.0", ++ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", ++ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", ++ "dev": true ++ }, ++ "node_modules/@babel/runtime": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", ++ "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", ++ "dev": true, ++ "dependencies": { ++ "regenerator-runtime": "^0.14.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@babel/template": { ++ "version": "7.24.0", ++ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", ++ "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", ++ "dev": true, ++ "dependencies": { ++ "@babel/code-frame": "^7.23.5", ++ "@babel/parser": "^7.24.0", ++ "@babel/types": "^7.24.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@babel/traverse": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", ++ "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", ++ "dev": true, ++ "peer": true, ++ "dependencies": { ++ "@babel/code-frame": "^7.24.2", ++ "@babel/generator": "^7.24.5", ++ "@babel/helper-environment-visitor": "^7.22.20", ++ "@babel/helper-function-name": "^7.23.0", ++ "@babel/helper-hoist-variables": "^7.22.5", ++ "@babel/helper-split-export-declaration": "^7.24.5", ++ "@babel/parser": "^7.24.5", ++ "@babel/types": "^7.24.5", ++ "debug": "^4.3.1", ++ "globals": "^11.1.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@babel/traverse/node_modules/globals": { ++ "version": "11.12.0", ++ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", ++ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", ++ "dev": true, ++ "peer": true, ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/@babel/types": { ++ "version": "7.24.5", ++ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", ++ "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-string-parser": "^7.24.1", ++ "@babel/helper-validator-identifier": "^7.24.5", ++ "to-fast-properties": "^2.0.0" ++ }, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/@es-joy/jsdoccomment": { ++ "version": "0.39.4", ++ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", ++ "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "comment-parser": "1.3.1", ++ "esquery": "^1.5.0", ++ "jsdoc-type-pratt-parser": "~4.0.0" ++ }, ++ "engines": { ++ "node": ">=16" ++ } ++ }, ++ "node_modules/@eslint-community/eslint-utils": { ++ "version": "4.4.0", ++ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", ++ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "eslint-visitor-keys": "^3.3.0" ++ }, ++ "engines": { ++ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ }, ++ "peerDependencies": { ++ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" ++ } ++ }, ++ "node_modules/@eslint-community/regexpp": { ++ "version": "4.10.0", ++ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", ++ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", ++ "dev": true, ++ "license": "MIT", ++ "engines": { ++ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" ++ } ++ }, ++ "node_modules/@eslint/eslintrc": { ++ "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.6.0", ++ "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" ++ }, ++ "engines": { ++ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ }, ++ "funding": { ++ "url": "https://opencollective.com/eslint" ++ } ++ }, ++ "node_modules/@eslint/js": { ++ "version": "8.57.0", ++ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", ++ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", ++ "dev": true, ++ "license": "MIT", ++ "engines": { ++ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ } ++ }, ++ "node_modules/@humanwhocodes/config-array": { ++ "version": "0.11.14", ++ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", ++ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", ++ "dev": true, ++ "license": "Apache-2.0", ++ "dependencies": { ++ "@humanwhocodes/object-schema": "^2.0.2", ++ "debug": "^4.3.1", ++ "minimatch": "^3.0.5" ++ }, ++ "engines": { ++ "node": ">=10.10.0" ++ } ++ }, ++ "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": { ++ "node": ">=12.22" ++ }, ++ "funding": { ++ "type": "github", ++ "url": "https://github.com/sponsors/nzakas" ++ } ++ }, ++ "node_modules/@humanwhocodes/object-schema": { ++ "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==", ++ "dev": true, ++ "license": "BSD-3-Clause" ++ }, ++ "node_modules/@jridgewell/gen-mapping": { ++ "version": "0.3.5", ++ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", ++ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", ++ "dev": true, ++ "peer": true, ++ "dependencies": { ++ "@jridgewell/set-array": "^1.2.1", ++ "@jridgewell/sourcemap-codec": "^1.4.10", ++ "@jridgewell/trace-mapping": "^0.3.24" ++ }, ++ "engines": { ++ "node": ">=6.0.0" ++ } ++ }, ++ "node_modules/@jridgewell/resolve-uri": { ++ "version": "3.1.2", ++ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", ++ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", ++ "dev": true, ++ "peer": true, ++ "engines": { ++ "node": ">=6.0.0" ++ } ++ }, ++ "node_modules/@jridgewell/set-array": { ++ "version": "1.2.1", ++ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", ++ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", ++ "dev": true, ++ "peer": true, ++ "engines": { ++ "node": ">=6.0.0" ++ } ++ }, ++ "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, ++ "peer": true ++ }, ++ "node_modules/@jridgewell/trace-mapping": { ++ "version": "0.3.25", ++ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", ++ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", ++ "dev": true, ++ "peer": true, ++ "dependencies": { ++ "@jridgewell/resolve-uri": "^3.1.0", ++ "@jridgewell/sourcemap-codec": "^1.4.14" ++ } ++ }, ++ "node_modules/@jsdoc/salty": { ++ "version": "0.2.8", ++ "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", ++ "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", ++ "dev": true, ++ "dependencies": { ++ "lodash": "^4.17.21" ++ }, ++ "engines": { ++ "node": ">=v12.0.0" ++ } ++ }, ++ "node_modules/@mapbox/node-pre-gyp": { ++ "version": "1.0.11", ++ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", ++ "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", ++ "dev": true, ++ "optional": true, ++ "dependencies": { ++ "detect-libc": "^2.0.0", ++ "https-proxy-agent": "^5.0.0", ++ "make-dir": "^3.1.0", ++ "node-fetch": "^2.6.7", ++ "nopt": "^5.0.0", ++ "npmlog": "^5.0.1", ++ "rimraf": "^3.0.2", ++ "semver": "^7.3.5", ++ "tar": "^6.1.11" ++ }, ++ "bin": { ++ "node-pre-gyp": "bin/node-pre-gyp" ++ } ++ }, ++ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { ++ "version": "5.1.1-v1", ++ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", ++ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "eslint-scope": "5.1.1" ++ } ++ }, ++ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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/@nicolo-ribaudo/eslint-scope-5-internals/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/@node-red/editor-api": { ++ "version": "3.1.9", ++ "resolved": "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz", ++ "integrity": "sha512-HHhFiwxmD8V5+U/xe+Gl9T0oAnwFeA7zisG8VW+Ruh3apGQvV9l5UoL9Yg00jEPDOhL99k/wqcXI42lakEkiKw==", ++ "dev": true, ++ "dependencies": { ++ "@node-red/editor-client": "3.1.9", ++ "@node-red/util": "3.1.9", ++ "bcryptjs": "2.4.3", ++ "body-parser": "1.20.2", ++ "clone": "2.1.2", ++ "cors": "2.8.5", ++ "express": "4.19.2", ++ "express-session": "1.17.3", ++ "memorystore": "1.6.7", ++ "mime": "3.0.0", ++ "multer": "1.4.5-lts.1", ++ "mustache": "4.2.0", ++ "oauth2orize": "1.11.1", ++ "passport": "0.6.0", ++ "passport-http-bearer": "1.0.1", ++ "passport-oauth2-client-password": "0.1.2", ++ "ws": "7.5.6" ++ }, ++ "optionalDependencies": { ++ "bcrypt": "5.1.0" ++ } ++ }, ++ "node_modules/@node-red/editor-client": { ++ "version": "3.1.9", ++ "resolved": "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.9.tgz", ++ "integrity": "sha512-k8ik9fqcUxwsjEL0bBywNRYoFk7VZxdcoXRKCtcB3H8T/KRgQBDZu4j27dtff/5WPqnvtmXOQBbdDrhluMO0ng==", ++ "dev": true ++ }, ++ "node_modules/@node-red/nodes": { ++ "version": "3.1.9", ++ "resolved": "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.9.tgz", ++ "integrity": "sha512-H0ZJjgmc7tbDBExF8WWIab7VJ1PBJxqExc6HWfb5FJQcOyA9mzCXwBduirWGxWAbQzZvq5GLgzy5ECzDJIjbSQ==", ++ "dev": true, ++ "dependencies": { ++ "acorn": "8.8.2", ++ "acorn-walk": "8.2.0", ++ "ajv": "8.12.0", ++ "body-parser": "1.20.2", ++ "cheerio": "1.0.0-rc.10", ++ "content-type": "1.0.5", ++ "cookie": "0.5.0", ++ "cookie-parser": "1.4.6", ++ "cors": "2.8.5", ++ "cronosjs": "1.7.1", ++ "denque": "2.1.0", ++ "form-data": "4.0.0", ++ "fs-extra": "11.1.1", ++ "got": "12.6.0", ++ "hash-sum": "2.0.0", ++ "hpagent": "1.2.0", ++ "https-proxy-agent": "5.0.1", ++ "iconv-lite": "0.6.3", ++ "is-utf8": "0.2.1", ++ "js-yaml": "4.1.0", ++ "media-typer": "1.1.0", ++ "mqtt": "4.3.7", ++ "multer": "1.4.5-lts.1", ++ "mustache": "4.2.0", ++ "node-watch": "0.7.4", ++ "on-headers": "1.0.2", ++ "raw-body": "2.5.2", ++ "tough-cookie": "4.1.3", ++ "uuid": "9.0.0", ++ "ws": "7.5.6", ++ "xml2js": "0.6.2" ++ } ++ }, ++ "node_modules/@node-red/nodes/node_modules/acorn": { ++ "version": "8.8.2", ++ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", ++ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", ++ "dev": true, ++ "bin": { ++ "acorn": "bin/acorn" ++ }, ++ "engines": { ++ "node": ">=0.4.0" ++ } ++ }, ++ "node_modules/@node-red/nodes/node_modules/ajv": { ++ "version": "8.12.0", ++ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", ++ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", ++ "dev": true, ++ "dependencies": { ++ "fast-deep-equal": "^3.1.1", ++ "json-schema-traverse": "^1.0.0", ++ "require-from-string": "^2.0.2", ++ "uri-js": "^4.2.2" ++ }, ++ "funding": { ++ "type": "github", ++ "url": "https://github.com/sponsors/epoberezkin" ++ } ++ }, ++ "node_modules/@node-red/nodes/node_modules/json-schema-traverse": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", ++ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", ++ "dev": true ++ }, ++ "node_modules/@node-red/registry": { ++ "version": "3.1.9", ++ "resolved": "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.9.tgz", ++ "integrity": "sha512-lm1jNGO5ebax5kw5A2stOymMVQpuAGJ24M+3bfPYj3djzgBq4qKbNX6EAJLtyLHlCKecAybJoXDNpNcCnl7BXQ==", ++ "dev": true, ++ "dependencies": { ++ "@node-red/util": "3.1.9", ++ "clone": "2.1.2", ++ "fs-extra": "11.1.1", ++ "semver": "7.5.4", ++ "tar": "6.2.1", ++ "uglify-js": "3.17.4" ++ } ++ }, ++ "node_modules/@node-red/registry/node_modules/lru-cache": { ++ "version": "6.0.0", ++ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", ++ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", ++ "dev": true, ++ "dependencies": { ++ "yallist": "^4.0.0" ++ }, ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "node_modules/@node-red/registry/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/@node-red/registry/node_modules/yallist": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", ++ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", ++ "dev": true ++ }, ++ "node_modules/@node-red/runtime": { ++ "version": "3.1.9", ++ "resolved": "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.9.tgz", ++ "integrity": "sha512-tpuHE5gEqLx9OoRjSxsyh683yGCnBlAAwbjkVv5lonqYqLJwE3DCJnMuHYj1lPUDzSc0QzhE9efm+LIhAhBU4g==", ++ "dev": true, ++ "dependencies": { ++ "@node-red/registry": "3.1.9", ++ "@node-red/util": "3.1.9", ++ "async-mutex": "0.4.0", ++ "clone": "2.1.2", ++ "express": "4.19.2", ++ "fs-extra": "11.1.1", ++ "json-stringify-safe": "5.0.1" ++ } ++ }, ++ "node_modules/@node-red/util": { ++ "version": "3.1.9", ++ "resolved": "https://registry.npmjs.org/@node-red/util/-/util-3.1.9.tgz", ++ "integrity": "sha512-BT7mMds8MFrXwgGuNjmk/vY0X621hirLcqAOp5/ZrrFuzPVoK4PDgoNx5igYD/HVQbVcJTHfN1cRopSFPfdF2Q==", ++ "dev": true, ++ "dependencies": { ++ "fs-extra": "11.1.1", ++ "i18next": "21.10.0", ++ "json-stringify-safe": "5.0.1", ++ "jsonata": "1.8.7", ++ "lodash.clonedeep": "^4.5.0", ++ "moment": "2.29.4", ++ "moment-timezone": "0.5.43" ++ } ++ }, ++ "node_modules/@nodelib/fs.scandir": { ++ "version": "2.1.5", ++ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", ++ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "@nodelib/fs.stat": "2.0.5", ++ "run-parallel": "^1.1.9" ++ }, ++ "engines": { ++ "node": ">= 8" ++ } ++ }, ++ "node_modules/@nodelib/fs.stat": { ++ "version": "2.0.5", ++ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", ++ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", ++ "dev": true, ++ "license": "MIT", ++ "engines": { ++ "node": ">= 8" ++ } ++ }, ++ "node_modules/@nodelib/fs.walk": { ++ "version": "1.2.8", ++ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", ++ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "@nodelib/fs.scandir": "2.1.5", ++ "fastq": "^1.6.0" ++ }, ++ "engines": { ++ "node": ">= 8" ++ } ++ }, ++ "node_modules/@sindresorhus/is": { ++ "version": "5.6.0", ++ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", ++ "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", ++ "dev": true, ++ "engines": { ++ "node": ">=14.16" ++ }, ++ "funding": { ++ "url": "https://github.com/sindresorhus/is?sponsor=1" ++ } ++ }, ++ "node_modules/@sinonjs/commons": { ++ "version": "1.8.6", ++ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", ++ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", ++ "dev": true, ++ "dependencies": { ++ "type-detect": "4.0.8" ++ } ++ }, ++ "node_modules/@sinonjs/fake-timers": { ++ "version": "7.1.2", ++ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", ++ "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", ++ "dev": true, ++ "dependencies": { ++ "@sinonjs/commons": "^1.7.0" ++ } ++ }, ++ "node_modules/@sinonjs/samsam": { ++ "version": "6.1.3", ++ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", ++ "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", ++ "dev": true, ++ "dependencies": { ++ "@sinonjs/commons": "^1.6.0", ++ "lodash.get": "^4.4.2", ++ "type-detect": "^4.0.8" ++ } ++ }, ++ "node_modules/@sinonjs/text-encoding": { ++ "version": "0.7.2", ++ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", ++ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", ++ "dev": true ++ }, ++ "node_modules/@szmarczak/http-timer": { ++ "version": "5.0.1", ++ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", ++ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", ++ "dev": true, ++ "dependencies": { ++ "defer-to-connect": "^2.0.1" ++ }, ++ "engines": { ++ "node": ">=14.16" ++ } ++ }, ++ "node_modules/@types/http-cache-semantics": { ++ "version": "4.0.4", ++ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", ++ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", ++ "dev": true ++ }, ++ "node_modules/@types/json5": { ++ "version": "0.0.29", ++ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", ++ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", ++ "dev": true, ++ "license": "MIT" ++ }, ++ "node_modules/@types/linkify-it": { ++ "version": "5.0.0", ++ "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", ++ "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", ++ "dev": true ++ }, ++ "node_modules/@types/markdown-it": { ++ "version": "14.1.1", ++ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", ++ "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", ++ "dev": true, ++ "dependencies": { ++ "@types/linkify-it": "^5", ++ "@types/mdurl": "^2" ++ } ++ }, ++ "node_modules/@types/mdurl": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", ++ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", ++ "dev": true ++ }, ++ "node_modules/@ungap/structured-clone": { ++ "version": "1.2.0", ++ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", ++ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", ++ "dev": true, ++ "license": "ISC" ++ }, ++ "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 ++ }, ++ "node_modules/accepts": { ++ "version": "1.3.8", ++ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", ++ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", ++ "dev": true, ++ "dependencies": { ++ "mime-types": "~2.1.34", ++ "negotiator": "0.6.3" ++ }, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/acorn": { ++ "version": "8.11.3", ++ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", ++ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", ++ "dev": true, ++ "license": "MIT", ++ "bin": { ++ "acorn": "bin/acorn" ++ }, ++ "engines": { ++ "node": ">=0.4.0" ++ } ++ }, ++ "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": "8.2.0", ++ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", ++ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.4.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, ++ "dependencies": { ++ "debug": "4" ++ }, ++ "engines": { ++ "node": ">= 6.0.0" ++ } ++ }, ++ "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/ansi-colors": { ++ "version": "4.1.1", ++ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", ++ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", ++ "engines": { ++ "node": ">=6" ++ } ++ }, ++ "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": "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": "^2.0.1" ++ }, ++ "engines": { ++ "node": ">=8" ++ }, ++ "funding": { ++ "url": "https://github.com/chalk/ansi-styles?sponsor=1" ++ } ++ }, ++ "node_modules/anymatch": { ++ "version": "3.1.3", ++ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", ++ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", ++ "dependencies": { ++ "normalize-path": "^3.0.0", ++ "picomatch": "^2.0.4" ++ }, ++ "engines": { ++ "node": ">= 8" ++ } ++ }, ++ "node_modules/append-field": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", ++ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", ++ "dev": true ++ }, ++ "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, ++ "optional": true ++ }, ++ "node_modules/are-docs-informative": { ++ "version": "0.0.2", ++ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", ++ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", ++ "dev": true, ++ "license": "MIT", ++ "engines": { ++ "node": ">=14" ++ } ++ }, ++ "node_modules/are-we-there-yet": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", ++ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", ++ "deprecated": "This package is no longer supported.", ++ "dev": true, ++ "optional": true, ++ "dependencies": { ++ "delegates": "^1.0.0", ++ "readable-stream": "^3.6.0" ++ }, ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "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==", ++ "license": "Python-2.0" ++ }, ++ "node_modules/array-buffer-byte-length": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", ++ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.5", ++ "is-array-buffer": "^3.0.4" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/array-flatten": { ++ "version": "1.1.1", ++ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", ++ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", ++ "dev": true ++ }, ++ "node_modules/array-includes": { ++ "version": "3.1.8", ++ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", ++ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.7", ++ "define-properties": "^1.2.1", ++ "es-abstract": "^1.23.2", ++ "es-object-atoms": "^1.0.0", ++ "get-intrinsic": "^1.2.4", ++ "is-string": "^1.0.7" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/array.prototype.findlastindex": { ++ "version": "1.2.5", ++ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", ++ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.7", ++ "define-properties": "^1.2.1", ++ "es-abstract": "^1.23.2", ++ "es-errors": "^1.3.0", ++ "es-object-atoms": "^1.0.0", ++ "es-shim-unscopables": "^1.0.2" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/array.prototype.flat": { ++ "version": "1.3.2", ++ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", ++ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.2", ++ "define-properties": "^1.2.0", ++ "es-abstract": "^1.22.1", ++ "es-shim-unscopables": "^1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/array.prototype.flatmap": { ++ "version": "1.3.2", ++ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", ++ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.2", ++ "define-properties": "^1.2.0", ++ "es-abstract": "^1.22.1", ++ "es-shim-unscopables": "^1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/arraybuffer.prototype.slice": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", ++ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "array-buffer-byte-length": "^1.0.1", ++ "call-bind": "^1.0.5", ++ "define-properties": "^1.2.1", ++ "es-abstract": "^1.22.3", ++ "es-errors": "^1.2.1", ++ "get-intrinsic": "^1.2.3", ++ "is-array-buffer": "^3.0.4", ++ "is-shared-array-buffer": "^1.0.2" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/asap": { ++ "version": "2.0.6", ++ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", ++ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", ++ "dev": true ++ }, ++ "node_modules/async-mutex": { ++ "version": "0.4.0", ++ "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", ++ "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", ++ "dev": true, ++ "dependencies": { ++ "tslib": "^2.4.0" ++ } ++ }, ++ "node_modules/asynckit": { ++ "version": "0.4.0", ++ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", ++ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", ++ "license": "MIT" ++ }, ++ "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": { ++ "possible-typed-array-names": "^1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/axios": { ++ "version": "1.7.1", ++ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", ++ "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", ++ "license": "MIT", ++ "dependencies": { ++ "follow-redirects": "^1.15.6", ++ "form-data": "^4.0.0", ++ "proxy-from-env": "^1.1.0" ++ } ++ }, ++ "node_modules/babel-plugin-polyfill-corejs2": { ++ "version": "0.4.11", ++ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", ++ "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", ++ "dev": true, ++ "dependencies": { ++ "@babel/compat-data": "^7.22.6", ++ "@babel/helper-define-polyfill-provider": "^0.6.2", ++ "semver": "^6.3.1" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" ++ } ++ }, ++ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { ++ "version": "6.3.1", ++ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", ++ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", ++ "dev": true, ++ "bin": { ++ "semver": "bin/semver.js" ++ } ++ }, ++ "node_modules/babel-plugin-polyfill-corejs3": { ++ "version": "0.10.4", ++ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", ++ "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-define-polyfill-provider": "^0.6.1", ++ "core-js-compat": "^3.36.1" ++ }, ++ "peerDependencies": { ++ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" ++ } ++ }, ++ "node_modules/babel-plugin-polyfill-regenerator": { ++ "version": "0.6.2", ++ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", ++ "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", ++ "dev": true, ++ "dependencies": { ++ "@babel/helper-define-polyfill-provider": "^0.6.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==", ++ "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": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/feross" ++ }, ++ { ++ "type": "patreon", ++ "url": "https://www.patreon.com/feross" ++ }, ++ { ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ] ++ }, ++ "node_modules/basic-auth": { ++ "version": "2.0.1", ++ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", ++ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", ++ "dev": true, ++ "dependencies": { ++ "safe-buffer": "5.1.2" ++ }, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/bcrypt": { ++ "version": "5.1.0", ++ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", ++ "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", ++ "dev": true, ++ "hasInstallScript": true, ++ "optional": true, ++ "dependencies": { ++ "@mapbox/node-pre-gyp": "^1.0.10", ++ "node-addon-api": "^5.0.0" ++ }, ++ "engines": { ++ "node": ">= 10.0.0" ++ } ++ }, ++ "node_modules/bcryptjs": { ++ "version": "2.4.3", ++ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", ++ "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", ++ "dev": true ++ }, ++ "node_modules/binary-extensions": { ++ "version": "2.3.0", ++ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", ++ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", ++ "engines": { ++ "node": ">=8" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/bl": { ++ "version": "4.1.0", ++ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", ++ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", ++ "dev": true, ++ "dependencies": { ++ "buffer": "^5.5.0", ++ "inherits": "^2.0.4", ++ "readable-stream": "^3.4.0" ++ } ++ }, ++ "node_modules/bluebird": { ++ "version": "3.7.2", ++ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", ++ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", ++ "dev": true ++ }, ++ "node_modules/body-parser": { ++ "version": "1.20.2", ++ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", ++ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", ++ "dev": true, ++ "dependencies": { ++ "bytes": "3.1.2", ++ "content-type": "~1.0.5", ++ "debug": "2.6.9", ++ "depd": "2.0.0", ++ "destroy": "1.2.0", ++ "http-errors": "2.0.0", ++ "iconv-lite": "0.4.24", ++ "on-finished": "2.4.1", ++ "qs": "6.11.0", ++ "raw-body": "2.5.2", ++ "type-is": "~1.6.18", ++ "unpipe": "1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.8", ++ "npm": "1.2.8000 || >= 1.4.16" ++ } ++ }, ++ "node_modules/body-parser/node_modules/debug": { ++ "version": "2.6.9", ++ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", ++ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", ++ "dev": true, ++ "dependencies": { ++ "ms": "2.0.0" ++ } ++ }, ++ "node_modules/body-parser/node_modules/iconv-lite": { ++ "version": "0.4.24", ++ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", ++ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", ++ "dev": true, ++ "dependencies": { ++ "safer-buffer": ">= 2.1.2 < 3" ++ }, ++ "engines": { ++ "node": ">=0.10.0" ++ } ++ }, ++ "node_modules/body-parser/node_modules/ms": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", ++ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", ++ "dev": true ++ }, ++ "node_modules/boolbase": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", ++ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", ++ "dev": true ++ }, ++ "node_modules/brace-expansion": { ++ "version": "1.1.11", ++ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", ++ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "balanced-match": "^1.0.0", ++ "concat-map": "0.0.1" ++ } ++ }, ++ "node_modules/braces": { ++ "version": "3.0.3", ++ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", ++ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", ++ "dependencies": { ++ "fill-range": "^7.1.1" ++ }, ++ "engines": { ++ "node": ">=8" ++ } ++ }, ++ "node_modules/browser-stdout": { ++ "version": "1.3.1", ++ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", ++ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" ++ }, ++ "node_modules/browserslist": { ++ "version": "4.23.0", ++ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", ++ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "opencollective", ++ "url": "https://opencollective.com/browserslist" ++ }, ++ { ++ "type": "tidelift", ++ "url": "https://tidelift.com/funding/github/npm/browserslist" ++ }, ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/ai" ++ } ++ ], ++ "dependencies": { ++ "caniuse-lite": "^1.0.30001587", ++ "electron-to-chromium": "^1.4.668", ++ "node-releases": "^2.0.14", ++ "update-browserslist-db": "^1.0.13" ++ }, ++ "bin": { ++ "browserslist": "cli.js" ++ }, ++ "engines": { ++ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" ++ } ++ }, ++ "node_modules/buffer": { ++ "version": "5.7.1", ++ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", ++ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/feross" ++ }, ++ { ++ "type": "patreon", ++ "url": "https://www.patreon.com/feross" ++ }, ++ { ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ], ++ "dependencies": { ++ "base64-js": "^1.3.1", ++ "ieee754": "^1.1.13" ++ } ++ }, ++ "node_modules/buffer-from": { ++ "version": "1.1.2", ++ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", ++ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", ++ "dev": true ++ }, ++ "node_modules/builtins": { ++ "version": "5.1.0", ++ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", ++ "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "semver": "^7.0.0" ++ } ++ }, ++ "node_modules/busboy": { ++ "version": "1.6.0", ++ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", ++ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", ++ "dev": true, ++ "dependencies": { ++ "streamsearch": "^1.1.0" ++ }, ++ "engines": { ++ "node": ">=10.16.0" ++ } ++ }, ++ "node_modules/bytes": { ++ "version": "3.1.2", ++ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", ++ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/cacheable-lookup": { ++ "version": "7.0.0", ++ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", ++ "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", ++ "dev": true, ++ "engines": { ++ "node": ">=14.16" ++ } ++ }, ++ "node_modules/cacheable-request": { ++ "version": "10.2.14", ++ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", ++ "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", ++ "dev": true, ++ "dependencies": { ++ "@types/http-cache-semantics": "^4.0.2", ++ "get-stream": "^6.0.1", ++ "http-cache-semantics": "^4.1.1", ++ "keyv": "^4.5.3", ++ "mimic-response": "^4.0.0", ++ "normalize-url": "^8.0.0", ++ "responselike": "^3.0.0" ++ }, ++ "engines": { ++ "node": ">=14.16" ++ } ++ }, ++ "node_modules/call-bind": { ++ "version": "1.0.7", ++ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", ++ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "es-define-property": "^1.0.0", ++ "es-errors": "^1.3.0", ++ "function-bind": "^1.1.2", ++ "get-intrinsic": "^1.2.4", ++ "set-function-length": "^1.2.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/callsites": { ++ "version": "3.1.0", ++ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", ++ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", ++ "dev": true, ++ "license": "MIT", ++ "engines": { ++ "node": ">=6" ++ } ++ }, ++ "node_modules/camelcase": { ++ "version": "6.3.0", ++ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", ++ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/caniuse-lite": { ++ "version": "1.0.30001620", ++ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", ++ "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "opencollective", ++ "url": "https://opencollective.com/browserslist" ++ }, ++ { ++ "type": "tidelift", ++ "url": "https://tidelift.com/funding/github/npm/caniuse-lite" ++ }, ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/ai" ++ } ++ ] ++ }, ++ "node_modules/catharsis": { ++ "version": "0.9.0", ++ "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", ++ "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", ++ "dev": true, ++ "dependencies": { ++ "lodash": "^4.17.15" ++ }, ++ "engines": { ++ "node": ">= 10" ++ } ++ }, ++ "node_modules/chalk": { ++ "version": "4.1.2", ++ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", ++ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", ++ "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/cheerio": { ++ "version": "1.0.0-rc.10", ++ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", ++ "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", ++ "dev": true, ++ "dependencies": { ++ "cheerio-select": "^1.5.0", ++ "dom-serializer": "^1.3.2", ++ "domhandler": "^4.2.0", ++ "htmlparser2": "^6.1.0", ++ "parse5": "^6.0.1", ++ "parse5-htmlparser2-tree-adapter": "^6.0.1", ++ "tslib": "^2.2.0" ++ }, ++ "engines": { ++ "node": ">= 6" ++ }, ++ "funding": { ++ "url": "https://github.com/cheeriojs/cheerio?sponsor=1" ++ } ++ }, ++ "node_modules/cheerio-select": { ++ "version": "1.6.0", ++ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", ++ "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", ++ "dev": true, ++ "dependencies": { ++ "css-select": "^4.3.0", ++ "css-what": "^6.0.1", ++ "domelementtype": "^2.2.0", ++ "domhandler": "^4.3.1", ++ "domutils": "^2.8.0" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/fb55" ++ } ++ }, ++ "node_modules/chokidar": { ++ "version": "3.5.3", ++ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", ++ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", ++ "funding": [ ++ { ++ "type": "individual", ++ "url": "https://paulmillr.com/funding/" ++ } ++ ], ++ "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" ++ }, ++ "optionalDependencies": { ++ "fsevents": "~2.3.2" ++ } ++ }, ++ "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==", ++ "dependencies": { ++ "is-glob": "^4.0.1" ++ }, ++ "engines": { ++ "node": ">= 6" ++ } ++ }, ++ "node_modules/chownr": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", ++ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", ++ "dev": true, ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "node_modules/cli-table": { ++ "version": "0.3.11", ++ "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", ++ "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", ++ "dev": true, ++ "dependencies": { ++ "colors": "1.0.3" ++ }, ++ "engines": { ++ "node": ">= 0.2.0" ++ } ++ }, ++ "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==", ++ "dependencies": { ++ "string-width": "^4.2.0", ++ "strip-ansi": "^6.0.0", ++ "wrap-ansi": "^7.0.0" ++ } ++ }, ++ "node_modules/clone": { ++ "version": "2.1.2", ++ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", ++ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.8" ++ } ++ }, ++ "node_modules/color-convert": { ++ "version": "2.0.1", ++ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", ++ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", ++ "license": "MIT", ++ "dependencies": { ++ "color-name": "~1.1.4" ++ }, ++ "engines": { ++ "node": ">=7.0.0" ++ } ++ }, ++ "node_modules/color-name": { ++ "version": "1.1.4", ++ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", ++ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", ++ "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, ++ "optional": true, ++ "bin": { ++ "color-support": "bin.js" ++ } ++ }, ++ "node_modules/colors": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", ++ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.1.90" ++ } ++ }, ++ "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==", ++ "license": "MIT", ++ "dependencies": { ++ "delayed-stream": "~1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/comment-parser": { ++ "version": "1.3.1", ++ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", ++ "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", ++ "dev": true, ++ "license": "MIT", ++ "engines": { ++ "node": ">= 12.0.0" ++ } ++ }, ++ "node_modules/commist": { ++ "version": "1.1.0", ++ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", ++ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", ++ "dev": true, ++ "dependencies": { ++ "leven": "^2.1.0", ++ "minimist": "^1.1.0" ++ } ++ }, ++ "node_modules/component-emitter": { ++ "version": "1.3.1", ++ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", ++ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", ++ "dev": true, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "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/concat-stream": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", ++ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", ++ "dev": true, ++ "engines": [ ++ "node >= 6.0" ++ ], ++ "dependencies": { ++ "buffer-from": "^1.0.0", ++ "inherits": "^2.0.3", ++ "readable-stream": "^3.0.2", ++ "typedarray": "^0.0.6" ++ } ++ }, ++ "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, ++ "optional": true ++ }, ++ "node_modules/content-disposition": { ++ "version": "0.5.4", ++ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", ++ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", ++ "dev": true, ++ "dependencies": { ++ "safe-buffer": "5.2.1" ++ }, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/content-disposition/node_modules/safe-buffer": { ++ "version": "5.2.1", ++ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ++ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/feross" ++ }, ++ { ++ "type": "patreon", ++ "url": "https://www.patreon.com/feross" ++ }, ++ { ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ] ++ }, ++ "node_modules/content-type": { ++ "version": "1.0.5", ++ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", ++ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/convert-source-map": { ++ "version": "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, ++ "peer": true ++ }, ++ "node_modules/cookie": { ++ "version": "0.5.0", ++ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", ++ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/cookie-parser": { ++ "version": "1.4.6", ++ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", ++ "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", ++ "dev": true, ++ "dependencies": { ++ "cookie": "0.4.1", ++ "cookie-signature": "1.0.6" ++ }, ++ "engines": { ++ "node": ">= 0.8.0" ++ } ++ }, ++ "node_modules/cookie-parser/node_modules/cookie": { ++ "version": "0.4.1", ++ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", ++ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/cookie-signature": { ++ "version": "1.0.6", ++ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", ++ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", ++ "dev": true ++ }, ++ "node_modules/cookiejar": { ++ "version": "2.1.4", ++ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", ++ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", ++ "dev": true ++ }, ++ "node_modules/core-js-compat": { ++ "version": "3.37.1", ++ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", ++ "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", ++ "dev": true, ++ "dependencies": { ++ "browserslist": "^4.23.0" ++ }, ++ "funding": { ++ "type": "opencollective", ++ "url": "https://opencollective.com/core-js" ++ } ++ }, ++ "node_modules/core-util-is": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", ++ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", ++ "dev": true ++ }, ++ "node_modules/cors": { ++ "version": "2.8.5", ++ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", ++ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", ++ "dev": true, ++ "dependencies": { ++ "object-assign": "^4", ++ "vary": "^1" ++ }, ++ "engines": { ++ "node": ">= 0.10" ++ } ++ }, ++ "node_modules/cronosjs": { ++ "version": "1.7.1", ++ "resolved": "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz", ++ "integrity": "sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q==", ++ "dev": true, ++ "engines": { ++ "node": ">=8.0.0" ++ } ++ }, ++ "node_modules/cross-spawn": { ++ "version": "7.0.3", ++ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", ++ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "path-key": "^3.1.0", ++ "shebang-command": "^2.0.0", ++ "which": "^2.0.1" ++ }, ++ "engines": { ++ "node": ">= 8" ++ } ++ }, ++ "node_modules/css-select": { ++ "version": "4.3.0", ++ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", ++ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", ++ "dev": true, ++ "dependencies": { ++ "boolbase": "^1.0.0", ++ "css-what": "^6.0.1", ++ "domhandler": "^4.3.1", ++ "domutils": "^2.8.0", ++ "nth-check": "^2.0.1" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/fb55" ++ } ++ }, ++ "node_modules/css-what": { ++ "version": "6.1.0", ++ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", ++ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", ++ "dev": true, ++ "engines": { ++ "node": ">= 6" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/fb55" ++ } ++ }, ++ "node_modules/data-view-buffer": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", ++ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.6", ++ "es-errors": "^1.3.0", ++ "is-data-view": "^1.0.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/data-view-byte-length": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", ++ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.7", ++ "es-errors": "^1.3.0", ++ "is-data-view": "^1.0.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/data-view-byte-offset": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", ++ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.6", ++ "es-errors": "^1.3.0", ++ "is-data-view": "^1.0.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/debug": { ++ "version": "4.3.4", ++ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", ++ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", ++ "license": "MIT", ++ "dependencies": { ++ "ms": "2.1.2" ++ }, ++ "engines": { ++ "node": ">=6.0" ++ }, ++ "peerDependenciesMeta": { ++ "supports-color": { ++ "optional": true ++ } ++ } ++ }, ++ "node_modules/decamelize": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", ++ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/decompress-response": { ++ "version": "6.0.0", ++ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", ++ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", ++ "dev": true, ++ "dependencies": { ++ "mimic-response": "^3.1.0" ++ }, ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/decompress-response/node_modules/mimic-response": { ++ "version": "3.1.0", ++ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", ++ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", ++ "dev": true, ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "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/defer-to-connect": { ++ "version": "2.0.1", ++ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", ++ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", ++ "dev": true, ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "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": { ++ "es-define-property": "^1.0.0", ++ "es-errors": "^1.3.0", ++ "gopd": "^1.0.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/define-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": { ++ "define-data-property": "^1.0.1", ++ "has-property-descriptors": "^1.0.0", ++ "object-keys": "^1.1.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/delayed-stream": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", ++ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", ++ "license": "MIT", ++ "engines": { ++ "node": ">=0.4.0" ++ } ++ }, ++ "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, ++ "optional": true ++ }, ++ "node_modules/denque": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", ++ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.10" ++ } ++ }, ++ "node_modules/depd": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", ++ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/destroy": { ++ "version": "1.2.0", ++ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", ++ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8", ++ "npm": "1.2.8000 || >= 1.4.16" ++ } ++ }, ++ "node_modules/detect-libc": { ++ "version": "2.0.3", ++ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", ++ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", ++ "dev": true, ++ "optional": true, ++ "engines": { ++ "node": ">=8" ++ } ++ }, ++ "node_modules/dezalgo": { ++ "version": "1.0.4", ++ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", ++ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", ++ "dev": true, ++ "dependencies": { ++ "asap": "^2.0.0", ++ "wrappy": "1" ++ } ++ }, ++ "node_modules/diff": { ++ "version": "5.0.0", ++ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", ++ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", ++ "engines": { ++ "node": ">=0.3.1" ++ } ++ }, ++ "node_modules/doctrine": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", ++ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", ++ "dev": true, ++ "license": "Apache-2.0", ++ "dependencies": { ++ "esutils": "^2.0.2" ++ }, ++ "engines": { ++ "node": ">=0.10.0" ++ } ++ }, ++ "node_modules/dom-serializer": { ++ "version": "1.4.1", ++ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", ++ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", ++ "dev": true, ++ "dependencies": { ++ "domelementtype": "^2.0.1", ++ "domhandler": "^4.2.0", ++ "entities": "^2.0.0" ++ }, ++ "funding": { ++ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" ++ } ++ }, ++ "node_modules/dom-serializer/node_modules/entities": { ++ "version": "2.2.0", ++ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", ++ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", ++ "dev": true, ++ "funding": { ++ "url": "https://github.com/fb55/entities?sponsor=1" ++ } ++ }, ++ "node_modules/domelementtype": { ++ "version": "2.3.0", ++ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", ++ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/fb55" ++ } ++ ] ++ }, ++ "node_modules/domhandler": { ++ "version": "4.3.1", ++ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", ++ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", ++ "dev": true, ++ "dependencies": { ++ "domelementtype": "^2.2.0" ++ }, ++ "engines": { ++ "node": ">= 4" ++ }, ++ "funding": { ++ "url": "https://github.com/fb55/domhandler?sponsor=1" ++ } ++ }, ++ "node_modules/domutils": { ++ "version": "2.8.0", ++ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", ++ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", ++ "dev": true, ++ "dependencies": { ++ "dom-serializer": "^1.0.1", ++ "domelementtype": "^2.2.0", ++ "domhandler": "^4.2.0" ++ }, ++ "funding": { ++ "url": "https://github.com/fb55/domutils?sponsor=1" ++ } ++ }, ++ "node_modules/duplexify": { ++ "version": "4.1.3", ++ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", ++ "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", ++ "dev": true, ++ "dependencies": { ++ "end-of-stream": "^1.4.1", ++ "inherits": "^2.0.3", ++ "readable-stream": "^3.1.1", ++ "stream-shift": "^1.0.2" ++ } ++ }, ++ "node_modules/ee-first": { ++ "version": "1.1.1", ++ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", ++ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", ++ "dev": true ++ }, ++ "node_modules/electron-to-chromium": { ++ "version": "1.4.775", ++ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", ++ "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==", ++ "dev": true ++ }, ++ "node_modules/emoji-regex": { ++ "version": "8.0.0", ++ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", ++ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" ++ }, ++ "node_modules/encodeurl": { ++ "version": "1.0.2", ++ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", ++ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/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, ++ "dependencies": { ++ "once": "^1.4.0" ++ } ++ }, ++ "node_modules/enquirer": { ++ "version": "2.4.1", ++ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", ++ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", ++ "dev": true, ++ "dependencies": { ++ "ansi-colors": "^4.1.1", ++ "strip-ansi": "^6.0.1" ++ }, ++ "engines": { ++ "node": ">=8.6" ++ } ++ }, ++ "node_modules/entities": { ++ "version": "4.5.0", ++ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", ++ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.12" ++ }, ++ "funding": { ++ "url": "https://github.com/fb55/entities?sponsor=1" ++ } ++ }, ++ "node_modules/es-abstract": { ++ "version": "1.23.3", ++ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", ++ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "array-buffer-byte-length": "^1.0.1", ++ "arraybuffer.prototype.slice": "^1.0.3", ++ "available-typed-arrays": "^1.0.7", ++ "call-bind": "^1.0.7", ++ "data-view-buffer": "^1.0.1", ++ "data-view-byte-length": "^1.0.1", ++ "data-view-byte-offset": "^1.0.0", ++ "es-define-property": "^1.0.0", ++ "es-errors": "^1.3.0", ++ "es-object-atoms": "^1.0.0", ++ "es-set-tostringtag": "^2.0.3", ++ "es-to-primitive": "^1.2.1", ++ "function.prototype.name": "^1.1.6", ++ "get-intrinsic": "^1.2.4", ++ "get-symbol-description": "^1.0.2", ++ "globalthis": "^1.0.3", ++ "gopd": "^1.0.1", ++ "has-property-descriptors": "^1.0.2", ++ "has-proto": "^1.0.3", ++ "has-symbols": "^1.0.3", ++ "hasown": "^2.0.2", ++ "internal-slot": "^1.0.7", ++ "is-array-buffer": "^3.0.4", ++ "is-callable": "^1.2.7", ++ "is-data-view": "^1.0.1", ++ "is-negative-zero": "^2.0.3", ++ "is-regex": "^1.1.4", ++ "is-shared-array-buffer": "^1.0.3", ++ "is-string": "^1.0.7", ++ "is-typed-array": "^1.1.13", ++ "is-weakref": "^1.0.2", ++ "object-inspect": "^1.13.1", ++ "object-keys": "^1.1.1", ++ "object.assign": "^4.1.5", ++ "regexp.prototype.flags": "^1.5.2", ++ "safe-array-concat": "^1.1.2", ++ "safe-regex-test": "^1.0.3", ++ "string.prototype.trim": "^1.2.9", ++ "string.prototype.trimend": "^1.0.8", ++ "string.prototype.trimstart": "^1.0.8", ++ "typed-array-buffer": "^1.0.2", ++ "typed-array-byte-length": "^1.0.1", ++ "typed-array-byte-offset": "^1.0.2", ++ "typed-array-length": "^1.0.6", ++ "unbox-primitive": "^1.0.2", ++ "which-typed-array": "^1.1.15" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/es-define-property": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", ++ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", ++ "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": { ++ "node": ">= 0.4" ++ } ++ }, ++ "node_modules/es-object-atoms": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", ++ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "es-errors": "^1.3.0" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ } ++ }, ++ "node_modules/es-set-tostringtag": { ++ "version": "2.0.3", ++ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", ++ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "get-intrinsic": "^1.2.4", ++ "has-tostringtag": "^1.0.2", ++ "hasown": "^2.0.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ } ++ }, ++ "node_modules/es-shim-unscopables": { ++ "version": "1.0.2", ++ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", ++ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "hasown": "^2.0.0" ++ } ++ }, ++ "node_modules/es-to-primitive": { ++ "version": "1.2.1", ++ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", ++ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "is-callable": "^1.1.4", ++ "is-date-object": "^1.0.1", ++ "is-symbol": "^1.0.2" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/escalade": { ++ "version": "3.1.2", ++ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", ++ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", ++ "engines": { ++ "node": ">=6" ++ } ++ }, ++ "node_modules/escape-html": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", ++ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", ++ "dev": true ++ }, ++ "node_modules/escape-string-regexp": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", ++ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", ++ "license": "MIT", ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/eslint": { ++ "version": "8.57.0", ++ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", ++ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", ++ "dev": true, ++ "dependencies": { ++ "@eslint-community/eslint-utils": "^4.2.0", ++ "@eslint-community/regexpp": "^4.6.1", ++ "@eslint/eslintrc": "^2.1.4", ++ "@eslint/js": "8.57.0", ++ "@humanwhocodes/config-array": "^0.11.14", ++ "@humanwhocodes/module-importer": "^1.0.1", ++ "@nodelib/fs.walk": "^1.2.8", ++ "@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.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", ++ "file-entry-cache": "^6.0.1", ++ "find-up": "^5.0.0", ++ "glob-parent": "^6.0.2", ++ "globals": "^13.19.0", ++ "graphemer": "^1.4.0", ++ "ignore": "^5.2.0", ++ "imurmurhash": "^0.1.4", ++ "is-glob": "^4.0.0", ++ "is-path-inside": "^3.0.3", ++ "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.3", ++ "strip-ansi": "^6.0.1", ++ "text-table": "^0.2.0" ++ }, ++ "bin": { ++ "eslint": "bin/eslint.js" ++ }, ++ "engines": { ++ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ }, ++ "funding": { ++ "url": "https://opencollective.com/eslint" ++ } ++ }, ++ "node_modules/eslint-config-prettier": { ++ "version": "8.10.0", ++ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", ++ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", ++ "dev": true, ++ "license": "MIT", ++ "bin": { ++ "eslint-config-prettier": "bin/cli.js" ++ }, ++ "peerDependencies": { ++ "eslint": ">=7.0.0" ++ } ++ }, ++ "node_modules/eslint-config-standard": { ++ "version": "17.1.0", ++ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", ++ "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", ++ "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", ++ "engines": { ++ "node": ">=12.0.0" ++ }, ++ "peerDependencies": { ++ "eslint": "^8.0.1", ++ "eslint-plugin-import": "^2.25.2", ++ "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", ++ "eslint-plugin-promise": "^6.0.0" ++ } ++ }, ++ "node_modules/eslint-import-resolver-node": { ++ "version": "0.3.9", ++ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", ++ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "debug": "^3.2.7", ++ "is-core-module": "^2.13.0", ++ "resolve": "^1.22.4" ++ } ++ }, ++ "node_modules/eslint-import-resolver-node/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": { ++ "ms": "^2.1.1" ++ } ++ }, ++ "node_modules/eslint-import-resolver-node/node_modules/ms": { ++ "version": "2.1.3", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", ++ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", ++ "dev": true, ++ "license": "MIT" ++ }, ++ "node_modules/eslint-module-utils": { ++ "version": "2.8.1", ++ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", ++ "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "debug": "^3.2.7" ++ }, ++ "engines": { ++ "node": ">=4" ++ }, ++ "peerDependenciesMeta": { ++ "eslint": { ++ "optional": true ++ } ++ } ++ }, ++ "node_modules/eslint-module-utils/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": { ++ "ms": "^2.1.1" ++ } ++ }, ++ "node_modules/eslint-module-utils/node_modules/ms": { ++ "version": "2.1.3", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", ++ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", ++ "dev": true, ++ "license": "MIT" ++ }, ++ "node_modules/eslint-plugin-es": { ++ "version": "4.1.0", ++ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", ++ "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "eslint-utils": "^2.0.0", ++ "regexpp": "^3.0.0" ++ }, ++ "engines": { ++ "node": ">=8.10.0" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/mysticatea" ++ }, ++ "peerDependencies": { ++ "eslint": ">=4.19.1" ++ } ++ }, ++ "node_modules/eslint-plugin-es/node_modules/eslint-utils": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", ++ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "eslint-visitor-keys": "^1.1.0" ++ }, ++ "engines": { ++ "node": ">=6" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/mysticatea" ++ } ++ }, ++ "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { ++ "version": "1.3.0", ++ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", ++ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", ++ "dev": true, ++ "license": "Apache-2.0", ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/eslint-plugin-import": { ++ "version": "2.29.1", ++ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", ++ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "array-includes": "^3.1.7", ++ "array.prototype.findlastindex": "^1.2.3", ++ "array.prototype.flat": "^1.3.2", ++ "array.prototype.flatmap": "^1.3.2", ++ "debug": "^3.2.7", ++ "doctrine": "^2.1.0", ++ "eslint-import-resolver-node": "^0.3.9", ++ "eslint-module-utils": "^2.8.0", ++ "hasown": "^2.0.0", ++ "is-core-module": "^2.13.1", ++ "is-glob": "^4.0.3", ++ "minimatch": "^3.1.2", ++ "object.fromentries": "^2.0.7", ++ "object.groupby": "^1.0.1", ++ "object.values": "^1.1.7", ++ "semver": "^6.3.1", ++ "tsconfig-paths": "^3.15.0" ++ }, ++ "engines": { ++ "node": ">=4" ++ }, ++ "peerDependencies": { ++ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" ++ } ++ }, ++ "node_modules/eslint-plugin-import/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": { ++ "ms": "^2.1.1" ++ } ++ }, ++ "node_modules/eslint-plugin-import/node_modules/ms": { ++ "version": "2.1.3", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", ++ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", ++ "dev": true, ++ "license": "MIT" ++ }, ++ "node_modules/eslint-plugin-import/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/eslint-plugin-jsdoc": { ++ "version": "44.2.7", ++ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", ++ "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", ++ "dev": true, ++ "license": "BSD-3-Clause", ++ "dependencies": { ++ "@es-joy/jsdoccomment": "~0.39.4", ++ "are-docs-informative": "^0.0.2", ++ "comment-parser": "1.3.1", ++ "debug": "^4.3.4", ++ "escape-string-regexp": "^4.0.0", ++ "esquery": "^1.5.0", ++ "semver": "^7.5.1", ++ "spdx-expression-parse": "^3.0.1" ++ }, ++ "engines": { ++ "node": ">=16" ++ }, ++ "peerDependencies": { ++ "eslint": "^7.0.0 || ^8.0.0" ++ } ++ }, ++ "node_modules/eslint-plugin-mocha": { ++ "version": "10.4.3", ++ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", ++ "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==", ++ "dev": true, ++ "dependencies": { ++ "eslint-utils": "^3.0.0", ++ "globals": "^13.24.0", ++ "rambda": "^7.4.0" ++ }, ++ "engines": { ++ "node": ">=14.0.0" ++ }, ++ "peerDependencies": { ++ "eslint": ">=7.0.0" ++ } ++ }, ++ "node_modules/eslint-plugin-n": { ++ "version": "15.7.0", ++ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", ++ "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "builtins": "^5.0.1", ++ "eslint-plugin-es": "^4.1.0", ++ "eslint-utils": "^3.0.0", ++ "ignore": "^5.1.1", ++ "is-core-module": "^2.11.0", ++ "minimatch": "^3.1.2", ++ "resolve": "^1.22.1", ++ "semver": "^7.3.8" ++ }, ++ "engines": { ++ "node": ">=12.22.0" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/mysticatea" ++ }, ++ "peerDependencies": { ++ "eslint": ">=7.0.0" ++ } ++ }, ++ "node_modules/eslint-plugin-prettier": { ++ "version": "4.2.1", ++ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", ++ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "prettier-linter-helpers": "^1.0.0" ++ }, ++ "engines": { ++ "node": ">=12.0.0" ++ }, ++ "peerDependencies": { ++ "eslint": ">=7.28.0", ++ "prettier": ">=2.0.0" ++ }, ++ "peerDependenciesMeta": { ++ "eslint-config-prettier": { ++ "optional": true ++ } ++ } ++ }, ++ "node_modules/eslint-plugin-promise": { ++ "version": "6.1.1", ++ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", ++ "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", ++ "dev": true, ++ "license": "ISC", ++ "engines": { ++ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ }, ++ "peerDependencies": { ++ "eslint": "^7.0.0 || ^8.0.0" ++ } ++ }, ++ "node_modules/eslint-scope": { ++ "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": { ++ "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/eslint-utils": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", ++ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "eslint-visitor-keys": "^2.0.0" ++ }, ++ "engines": { ++ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/mysticatea" ++ }, ++ "peerDependencies": { ++ "eslint": ">=5" ++ } ++ }, ++ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", ++ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", ++ "dev": true, ++ "license": "Apache-2.0", ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "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": "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/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": { ++ "esutils": "^2.0.2" ++ }, ++ "engines": { ++ "node": ">=6.0.0" ++ } ++ }, ++ "node_modules/espree": { ++ "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.9.0", ++ "acorn-jsx": "^5.3.2", ++ "eslint-visitor-keys": "^3.4.1" ++ }, ++ "engines": { ++ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ }, ++ "funding": { ++ "url": "https://opencollective.com/eslint" ++ } ++ }, ++ "node_modules/esquery": { ++ "version": "1.5.0", ++ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", ++ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", ++ "dev": true, ++ "license": "BSD-3-Clause", ++ "dependencies": { ++ "estraverse": "^5.1.0" ++ }, ++ "engines": { ++ "node": ">=0.10" ++ } ++ }, ++ "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": { ++ "estraverse": "^5.2.0" ++ }, ++ "engines": { ++ "node": ">=4.0" ++ } ++ }, ++ "node_modules/estraverse": { ++ "version": "5.3.0", ++ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", ++ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", ++ "dev": true, ++ "license": "BSD-2-Clause", ++ "engines": { ++ "node": ">=4.0" ++ } ++ }, ++ "node_modules/esutils": { ++ "version": "2.0.3", ++ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", ++ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", ++ "dev": true, ++ "license": "BSD-2-Clause", ++ "engines": { ++ "node": ">=0.10.0" ++ } ++ }, ++ "node_modules/etag": { ++ "version": "1.8.1", ++ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", ++ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/express": { ++ "version": "4.19.2", ++ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", ++ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", ++ "dev": true, ++ "dependencies": { ++ "accepts": "~1.3.8", ++ "array-flatten": "1.1.1", ++ "body-parser": "1.20.2", ++ "content-disposition": "0.5.4", ++ "content-type": "~1.0.4", ++ "cookie": "0.6.0", ++ "cookie-signature": "1.0.6", ++ "debug": "2.6.9", ++ "depd": "2.0.0", ++ "encodeurl": "~1.0.2", ++ "escape-html": "~1.0.3", ++ "etag": "~1.8.1", ++ "finalhandler": "1.2.0", ++ "fresh": "0.5.2", ++ "http-errors": "2.0.0", ++ "merge-descriptors": "1.0.1", ++ "methods": "~1.1.2", ++ "on-finished": "2.4.1", ++ "parseurl": "~1.3.3", ++ "path-to-regexp": "0.1.7", ++ "proxy-addr": "~2.0.7", ++ "qs": "6.11.0", ++ "range-parser": "~1.2.1", ++ "safe-buffer": "5.2.1", ++ "send": "0.18.0", ++ "serve-static": "1.15.0", ++ "setprototypeof": "1.2.0", ++ "statuses": "2.0.1", ++ "type-is": "~1.6.18", ++ "utils-merge": "1.0.1", ++ "vary": "~1.1.2" ++ }, ++ "engines": { ++ "node": ">= 0.10.0" ++ } ++ }, ++ "node_modules/express-session": { ++ "version": "1.17.3", ++ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", ++ "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", ++ "dev": true, ++ "dependencies": { ++ "cookie": "0.4.2", ++ "cookie-signature": "1.0.6", ++ "debug": "2.6.9", ++ "depd": "~2.0.0", ++ "on-headers": "~1.0.2", ++ "parseurl": "~1.3.3", ++ "safe-buffer": "5.2.1", ++ "uid-safe": "~2.1.5" ++ }, ++ "engines": { ++ "node": ">= 0.8.0" ++ } ++ }, ++ "node_modules/express-session/node_modules/cookie": { ++ "version": "0.4.2", ++ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", ++ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/express-session/node_modules/debug": { ++ "version": "2.6.9", ++ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", ++ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", ++ "dev": true, ++ "dependencies": { ++ "ms": "2.0.0" ++ } ++ }, ++ "node_modules/express-session/node_modules/ms": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", ++ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", ++ "dev": true ++ }, ++ "node_modules/express-session/node_modules/safe-buffer": { ++ "version": "5.2.1", ++ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ++ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/feross" ++ }, ++ { ++ "type": "patreon", ++ "url": "https://www.patreon.com/feross" ++ }, ++ { ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ] ++ }, ++ "node_modules/express/node_modules/cookie": { ++ "version": "0.6.0", ++ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", ++ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/express/node_modules/debug": { ++ "version": "2.6.9", ++ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", ++ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", ++ "dev": true, ++ "dependencies": { ++ "ms": "2.0.0" ++ } ++ }, ++ "node_modules/express/node_modules/ms": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", ++ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", ++ "dev": true ++ }, ++ "node_modules/express/node_modules/safe-buffer": { ++ "version": "5.2.1", ++ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ++ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", ++ "dev": true, ++ "funding": [ ++ { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, +@@ -1654,572 +4837,1106 @@ + "url": "https://www.patreon.com/feross" + }, + { +- "type": "consulting", +- "url": "https://feross.org/support" ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ] ++ }, ++ "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-diff": { ++ "version": "1.3.0", ++ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", ++ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", ++ "dev": true, ++ "license": "Apache-2.0" ++ }, ++ "node_modules/fast-json-stable-stringify": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", ++ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", ++ "dev": true, ++ "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/fast-safe-stringify": { ++ "version": "2.1.1", ++ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", ++ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", ++ "dev": true ++ }, ++ "node_modules/fastq": { ++ "version": "1.17.1", ++ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", ++ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", ++ "dev": true, ++ "license": "ISC", ++ "dependencies": { ++ "reusify": "^1.0.4" ++ } ++ }, ++ "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": { ++ "flat-cache": "^3.0.4" ++ }, ++ "engines": { ++ "node": "^10.12.0 || >=12.0.0" ++ } ++ }, ++ "node_modules/fill-range": { ++ "version": "7.1.1", ++ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", ++ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", ++ "dependencies": { ++ "to-regex-range": "^5.0.1" ++ }, ++ "engines": { ++ "node": ">=8" ++ } ++ }, ++ "node_modules/finalhandler": { ++ "version": "1.2.0", ++ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", ++ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", ++ "dev": true, ++ "dependencies": { ++ "debug": "2.6.9", ++ "encodeurl": "~1.0.2", ++ "escape-html": "~1.0.3", ++ "on-finished": "2.4.1", ++ "parseurl": "~1.3.3", ++ "statuses": "2.0.1", ++ "unpipe": "~1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/finalhandler/node_modules/debug": { ++ "version": "2.6.9", ++ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", ++ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", ++ "dev": true, ++ "dependencies": { ++ "ms": "2.0.0" ++ } ++ }, ++ "node_modules/finalhandler/node_modules/ms": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", ++ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", ++ "dev": true ++ }, ++ "node_modules/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==", ++ "license": "MIT", ++ "dependencies": { ++ "locate-path": "^6.0.0", ++ "path-exists": "^4.0.0" ++ }, ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/flat": { ++ "version": "5.0.2", ++ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", ++ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", ++ "bin": { ++ "flat": "cli.js" ++ } ++ }, ++ "node_modules/flat-cache": { ++ "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.2.9", ++ "keyv": "^4.5.3", ++ "rimraf": "^3.0.2" ++ }, ++ "engines": { ++ "node": "^10.12.0 || >=12.0.0" ++ } ++ }, ++ "node_modules/flatted": { ++ "version": "3.3.1", ++ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", ++ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", ++ "dev": true, ++ "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==", ++ "funding": [ ++ { ++ "type": "individual", ++ "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { +- "node": ">=12.0.0" ++ "node": ">=4.0" + }, +- "peerDependencies": { +- "eslint": "^8.0.1", +- "eslint-plugin-import": "^2.25.2", +- "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", +- "eslint-plugin-promise": "^6.0.0" ++ "peerDependenciesMeta": { ++ "debug": { ++ "optional": true ++ } + } + }, +- "node_modules/eslint-import-resolver-node": { +- "version": "0.3.9", +- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", +- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", ++ "node_modules/for-each": { ++ "version": "0.3.3", ++ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", ++ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { +- "debug": "^3.2.7", +- "is-core-module": "^2.13.0", +- "resolve": "^1.22.4" ++ "is-callable": "^1.1.3" + } + }, +- "node_modules/eslint-import-resolver-node/node_modules/debug": { +- "version": "3.2.7", +- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", +- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", ++ "node_modules/form-data": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", ++ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", ++ "license": "MIT", ++ "dependencies": { ++ "asynckit": "^0.4.0", ++ "combined-stream": "^1.0.8", ++ "mime-types": "^2.1.12" ++ }, ++ "engines": { ++ "node": ">= 6" ++ } ++ }, ++ "node_modules/form-data-encoder": { ++ "version": "2.1.4", ++ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", ++ "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", ++ "dev": true, ++ "engines": { ++ "node": ">= 14.17" ++ } ++ }, ++ "node_modules/formidable": { ++ "version": "3.5.1", ++ "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", ++ "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", ++ "dev": true, ++ "dependencies": { ++ "dezalgo": "^1.0.4", ++ "hexoid": "^1.0.0", ++ "once": "^1.4.0" ++ }, ++ "funding": { ++ "url": "https://ko-fi.com/tunnckoCore/commissions" ++ } ++ }, ++ "node_modules/forwarded": { ++ "version": "0.2.0", ++ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", ++ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/fresh": { ++ "version": "0.5.2", ++ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", ++ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/fs-extra": { ++ "version": "11.1.1", ++ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", ++ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", ++ "dev": true, ++ "dependencies": { ++ "graceful-fs": "^4.2.0", ++ "jsonfile": "^6.0.1", ++ "universalify": "^2.0.0" ++ }, ++ "engines": { ++ "node": ">=14.14" ++ } ++ }, ++ "node_modules/fs-minipass": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", ++ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", ++ "dev": true, ++ "dependencies": { ++ "minipass": "^3.0.0" ++ }, ++ "engines": { ++ "node": ">= 8" ++ } ++ }, ++ "node_modules/fs-minipass/node_modules/minipass": { ++ "version": "3.3.6", ++ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", ++ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", ++ "dev": true, ++ "dependencies": { ++ "yallist": "^4.0.0" ++ }, ++ "engines": { ++ "node": ">=8" ++ } ++ }, ++ "node_modules/fs-minipass/node_modules/yallist": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", ++ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", ++ "dev": true ++ }, ++ "node_modules/fs.realpath": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", ++ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", ++ "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, ++ "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": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/function.prototype.name": { ++ "version": "1.1.6", ++ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", ++ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.2", ++ "define-properties": "^1.2.0", ++ "es-abstract": "^1.22.1", ++ "functions-have-names": "^1.2.3" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "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": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/gauge": { ++ "version": "3.0.2", ++ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", ++ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", ++ "deprecated": "This package is no longer supported.", ++ "dev": true, ++ "optional": true, ++ "dependencies": { ++ "aproba": "^1.0.3 || ^2.0.0", ++ "color-support": "^1.1.2", ++ "console-control-strings": "^1.0.0", ++ "has-unicode": "^2.0.1", ++ "object-assign": "^4.1.1", ++ "signal-exit": "^3.0.0", ++ "string-width": "^4.2.3", ++ "strip-ansi": "^6.0.1", ++ "wide-align": "^1.1.2" ++ }, ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "node_modules/gensync": { ++ "version": "1.0.0-beta.2", ++ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", ++ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", ++ "dev": true, ++ "peer": true, ++ "engines": { ++ "node": ">=6.9.0" ++ } ++ }, ++ "node_modules/get-caller-file": { ++ "version": "2.0.5", ++ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", ++ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", ++ "engines": { ++ "node": "6.* || 8.* || >= 10.*" ++ } ++ }, ++ "node_modules/get-intrinsic": { ++ "version": "1.2.4", ++ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", ++ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "es-errors": "^1.3.0", ++ "function-bind": "^1.1.2", ++ "has-proto": "^1.0.1", ++ "has-symbols": "^1.0.3", ++ "hasown": "^2.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/get-stream": { ++ "version": "6.0.1", ++ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", ++ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", ++ "dev": true, ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/get-symbol-description": { ++ "version": "1.0.2", ++ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", ++ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { +- "ms": "^2.1.1" ++ "call-bind": "^1.0.5", ++ "es-errors": "^1.3.0", ++ "get-intrinsic": "^1.2.4" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/eslint-import-resolver-node/node_modules/ms": { +- "version": "2.1.3", +- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", +- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/eslint-module-utils": { +- "version": "2.8.1", +- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", +- "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", ++ "node_modules/glob": { ++ "version": "7.2.3", ++ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", ++ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, +- "license": "MIT", ++ "license": "ISC", + "dependencies": { +- "debug": "^3.2.7" ++ "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": ">=4" ++ "node": "*" + }, +- "peerDependenciesMeta": { +- "eslint": { +- "optional": true +- } ++ "funding": { ++ "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/eslint-module-utils/node_modules/debug": { +- "version": "3.2.7", +- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", +- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", ++ "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": "MIT", ++ "license": "ISC", + "dependencies": { +- "ms": "^2.1.1" ++ "is-glob": "^4.0.3" ++ }, ++ "engines": { ++ "node": ">=10.13.0" + } + }, +- "node_modules/eslint-module-utils/node_modules/ms": { +- "version": "2.1.3", +- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", +- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", +- "dev": true, +- "license": "MIT" +- }, +- "node_modules/eslint-plugin-es": { +- "version": "4.1.0", +- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", +- "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", ++ "node_modules/globals": { ++ "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": { +- "eslint-utils": "^2.0.0", +- "regexpp": "^3.0.0" ++ "type-fest": "^0.20.2" + }, + "engines": { +- "node": ">=8.10.0" ++ "node": ">=8" + }, + "funding": { +- "url": "https://github.com/sponsors/mysticatea" +- }, +- "peerDependencies": { +- "eslint": ">=4.19.1" ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/eslint-plugin-es/node_modules/eslint-utils": { +- "version": "2.1.0", +- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", +- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", ++ "node_modules/globalthis": { ++ "version": "1.0.4", ++ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", ++ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { +- "eslint-visitor-keys": "^1.1.0" ++ "define-properties": "^1.2.1", ++ "gopd": "^1.0.1" + }, + "engines": { +- "node": ">=6" ++ "node": ">= 0.4" + }, + "funding": { +- "url": "https://github.com/sponsors/mysticatea" ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { +- "version": "1.3.0", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", +- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", ++ "node_modules/gopd": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", ++ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, +- "license": "Apache-2.0", +- "engines": { +- "node": ">=4" ++ "license": "MIT", ++ "dependencies": { ++ "get-intrinsic": "^1.1.3" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/eslint-plugin-import": { +- "version": "2.29.1", +- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", +- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", ++ "node_modules/got": { ++ "version": "12.6.0", ++ "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", ++ "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "array-includes": "^3.1.7", +- "array.prototype.findlastindex": "^1.2.3", +- "array.prototype.flat": "^1.3.2", +- "array.prototype.flatmap": "^1.3.2", +- "debug": "^3.2.7", +- "doctrine": "^2.1.0", +- "eslint-import-resolver-node": "^0.3.9", +- "eslint-module-utils": "^2.8.0", +- "hasown": "^2.0.0", +- "is-core-module": "^2.13.1", +- "is-glob": "^4.0.3", +- "minimatch": "^3.1.2", +- "object.fromentries": "^2.0.7", +- "object.groupby": "^1.0.1", +- "object.values": "^1.1.7", +- "semver": "^6.3.1", +- "tsconfig-paths": "^3.15.0" ++ "@sindresorhus/is": "^5.2.0", ++ "@szmarczak/http-timer": "^5.0.1", ++ "cacheable-lookup": "^7.0.0", ++ "cacheable-request": "^10.2.8", ++ "decompress-response": "^6.0.0", ++ "form-data-encoder": "^2.1.2", ++ "get-stream": "^6.0.1", ++ "http2-wrapper": "^2.1.10", ++ "lowercase-keys": "^3.0.0", ++ "p-cancelable": "^3.0.0", ++ "responselike": "^3.0.0" + }, + "engines": { +- "node": ">=4" ++ "node": ">=14.16" + }, +- "peerDependencies": { +- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" ++ "funding": { ++ "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, +- "node_modules/eslint-plugin-import/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": { +- "ms": "^2.1.1" +- } ++ "node_modules/graceful-fs": { ++ "version": "4.2.11", ++ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", ++ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", ++ "dev": true + }, +- "node_modules/eslint-plugin-import/node_modules/ms": { +- "version": "2.1.3", +- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", +- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", ++ "node_modules/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/eslint-plugin-import/node_modules/semver": { +- "version": "6.3.1", +- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", +- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", ++ "node_modules/has-bigints": { ++ "version": "1.0.2", ++ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", ++ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, +- "license": "ISC", +- "bin": { +- "semver": "bin/semver.js" ++ "license": "MIT", ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/eslint-plugin-jsdoc": { +- "version": "44.2.7", +- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", +- "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", +- "dev": true, +- "license": "BSD-3-Clause", +- "dependencies": { +- "@es-joy/jsdoccomment": "~0.39.4", +- "are-docs-informative": "^0.0.2", +- "comment-parser": "1.3.1", +- "debug": "^4.3.4", +- "escape-string-regexp": "^4.0.0", +- "esquery": "^1.5.0", +- "semver": "^7.5.1", +- "spdx-expression-parse": "^3.0.1" +- }, ++ "node_modules/has-flag": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", ++ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", ++ "license": "MIT", + "engines": { +- "node": ">=16" +- }, +- "peerDependencies": { +- "eslint": "^7.0.0 || ^8.0.0" ++ "node": ">=8" + } + }, +- "node_modules/eslint-plugin-n": { +- "version": "15.7.0", +- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", +- "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", ++ "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": { +- "builtins": "^5.0.1", +- "eslint-plugin-es": "^4.1.0", +- "eslint-utils": "^3.0.0", +- "ignore": "^5.1.1", +- "is-core-module": "^2.11.0", +- "minimatch": "^3.1.2", +- "resolve": "^1.22.1", +- "semver": "^7.3.8" +- }, +- "engines": { +- "node": ">=12.22.0" ++ "es-define-property": "^1.0.0" + }, + "funding": { +- "url": "https://github.com/sponsors/mysticatea" +- }, +- "peerDependencies": { +- "eslint": ">=7.0.0" ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/eslint-plugin-prettier": { +- "version": "4.2.1", +- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", +- "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", ++ "node_modules/has-proto": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", ++ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", +- "dependencies": { +- "prettier-linter-helpers": "^1.0.0" +- }, + "engines": { +- "node": ">=12.0.0" +- }, +- "peerDependencies": { +- "eslint": ">=7.28.0", +- "prettier": ">=2.0.0" ++ "node": ">= 0.4" + }, +- "peerDependenciesMeta": { +- "eslint-config-prettier": { +- "optional": true +- } +- } +- }, +- "node_modules/eslint-plugin-promise": { +- "version": "6.1.1", +- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", +- "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/has-symbols": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", ++ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, +- "license": "ISC", ++ "license": "MIT", + "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ "node": ">= 0.4" + }, +- "peerDependencies": { +- "eslint": "^7.0.0 || ^8.0.0" ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/eslint-scope": { +- "version": "7.2.2", +- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", +- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", ++ "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": "BSD-2-Clause", ++ "license": "MIT", + "dependencies": { +- "esrecurse": "^4.3.0", +- "estraverse": "^5.2.0" ++ "has-symbols": "^1.0.3" + }, + "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" ++ "node": ">= 0.4" + }, + "funding": { +- "url": "https://opencollective.com/eslint" ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/eslint-utils": { +- "version": "3.0.0", +- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", +- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", ++ "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, ++ "optional": true ++ }, ++ "node_modules/hash-sum": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", ++ "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", ++ "dev": true ++ }, ++ "node_modules/hasown": { ++ "version": "2.0.2", ++ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", ++ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { +- "eslint-visitor-keys": "^2.0.0" ++ "function-bind": "^1.1.2" + }, + "engines": { +- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" +- }, +- "funding": { +- "url": "https://github.com/sponsors/mysticatea" +- }, +- "peerDependencies": { +- "eslint": ">=5" ++ "node": ">= 0.4" + } + }, +- "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { +- "version": "2.1.0", +- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", +- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", ++ "node_modules/he": { ++ "version": "1.2.0", ++ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", ++ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", ++ "bin": { ++ "he": "bin/he" ++ } ++ }, ++ "node_modules/help-me": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz", ++ "integrity": "sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==", ++ "dev": true, ++ "dependencies": { ++ "glob": "^7.1.6", ++ "readable-stream": "^3.6.0" ++ } ++ }, ++ "node_modules/hexoid": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", ++ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, +- "license": "Apache-2.0", + "engines": { +- "node": ">=10" ++ "node": ">=8" + } + }, +- "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==", ++ "node_modules/hpagent": { ++ "version": "1.2.0", ++ "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", ++ "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", + "dev": true, +- "license": "Apache-2.0", + "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" +- }, ++ "node": ">=14" ++ } ++ }, ++ "node_modules/htmlparser2": { ++ "version": "6.1.0", ++ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", ++ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", ++ "dev": true, ++ "funding": [ ++ "https://github.com/fb55/htmlparser2?sponsor=1", ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/fb55" ++ } ++ ], ++ "dependencies": { ++ "domelementtype": "^2.0.1", ++ "domhandler": "^4.0.0", ++ "domutils": "^2.5.2", ++ "entities": "^2.0.0" ++ } ++ }, ++ "node_modules/htmlparser2/node_modules/entities": { ++ "version": "2.2.0", ++ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", ++ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", ++ "dev": true, + "funding": { +- "url": "https://opencollective.com/eslint" ++ "url": "https://github.com/fb55/entities?sponsor=1" + } + }, +- "node_modules/eslint/node_modules/doctrine": { +- "version": "3.0.0", +- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", +- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", ++ "node_modules/http-cache-semantics": { ++ "version": "4.1.1", ++ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", ++ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", ++ "dev": true ++ }, ++ "node_modules/http-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": "Apache-2.0", + "dependencies": { +- "esutils": "^2.0.2" ++ "depd": "2.0.0", ++ "inherits": "2.0.4", ++ "setprototypeof": "1.2.0", ++ "statuses": "2.0.1", ++ "toidentifier": "1.0.1" + }, + "engines": { +- "node": ">=6.0.0" ++ "node": ">= 0.8" + } + }, +- "node_modules/espree": { +- "version": "9.6.1", +- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", +- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", ++ "node_modules/http2-wrapper": { ++ "version": "2.2.1", ++ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", ++ "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dev": true, +- "license": "BSD-2-Clause", + "dependencies": { +- "acorn": "^8.9.0", +- "acorn-jsx": "^5.3.2", +- "eslint-visitor-keys": "^3.4.1" ++ "quick-lru": "^5.1.1", ++ "resolve-alpn": "^1.2.0" + }, + "engines": { +- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" +- }, +- "funding": { +- "url": "https://opencollective.com/eslint" ++ "node": ">=10.19.0" + } + }, +- "node_modules/esquery": { +- "version": "1.5.0", +- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", +- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", ++ "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": "BSD-3-Clause", + "dependencies": { +- "estraverse": "^5.1.0" ++ "agent-base": "6", ++ "debug": "4" + }, + "engines": { +- "node": ">=0.10" ++ "node": ">= 6" + } + }, +- "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==", ++ "node_modules/i18next": { ++ "version": "21.10.0", ++ "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", ++ "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", + "dev": true, +- "license": "BSD-2-Clause", ++ "funding": [ ++ { ++ "type": "individual", ++ "url": "https://locize.com" ++ }, ++ { ++ "type": "individual", ++ "url": "https://locize.com/i18next.html" ++ }, ++ { ++ "type": "individual", ++ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" ++ } ++ ], + "dependencies": { +- "estraverse": "^5.2.0" ++ "@babel/runtime": "^7.17.2" ++ } ++ }, ++ "node_modules/iconv-lite": { ++ "version": "0.6.3", ++ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", ++ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", ++ "dev": true, ++ "dependencies": { ++ "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { +- "node": ">=4.0" ++ "node": ">=0.10.0" + } + }, +- "node_modules/estraverse": { +- "version": "5.3.0", +- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", +- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", ++ "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, +- "license": "BSD-2-Clause", ++ "funding": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/feross" ++ }, ++ { ++ "type": "patreon", ++ "url": "https://www.patreon.com/feross" ++ }, ++ { ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ] ++ }, ++ "node_modules/ignore": { ++ "version": "5.3.1", ++ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", ++ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", ++ "dev": true, ++ "license": "MIT", + "engines": { +- "node": ">=4.0" ++ "node": ">= 4" + } + }, +- "node_modules/esutils": { +- "version": "2.0.3", +- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", +- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", ++ "node_modules/import-fresh": { ++ "version": "3.3.0", ++ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", ++ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, +- "license": "BSD-2-Clause", ++ "license": "MIT", ++ "dependencies": { ++ "parent-module": "^1.0.0", ++ "resolve-from": "^4.0.0" ++ }, + "engines": { +- "node": ">=0.10.0" ++ "node": ">=6" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "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==", ++ "node_modules/imurmurhash": { ++ "version": "0.1.4", ++ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", ++ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, +- "license": "MIT" ++ "license": "MIT", ++ "engines": { ++ "node": ">=0.8.19" ++ } + }, +- "node_modules/fast-diff": { +- "version": "1.3.0", +- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", +- "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", +- "dev": true, +- "license": "Apache-2.0" ++ "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==", ++ "license": "ISC", ++ "dependencies": { ++ "once": "^1.3.0", ++ "wrappy": "1" ++ } + }, +- "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==", ++ "node_modules/inherits": { ++ "version": "2.0.4", ++ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", ++ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", ++ "license": "ISC" ++ }, ++ "node_modules/internal-slot": { ++ "version": "1.0.7", ++ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", ++ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, +- "license": "MIT" ++ "license": "MIT", ++ "dependencies": { ++ "es-errors": "^1.3.0", ++ "hasown": "^2.0.0", ++ "side-channel": "^1.0.4" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ } + }, +- "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==", ++ "node_modules/ipaddr.js": { ++ "version": "1.9.1", ++ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", ++ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, +- "license": "MIT" ++ "engines": { ++ "node": ">= 0.10" ++ } + }, +- "node_modules/fastq": { +- "version": "1.17.1", +- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", +- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", ++ "node_modules/is-array-buffer": { ++ "version": "3.0.4", ++ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", ++ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, +- "license": "ISC", ++ "license": "MIT", + "dependencies": { +- "reusify": "^1.0.4" ++ "call-bind": "^1.0.2", ++ "get-intrinsic": "^1.2.1" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "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==", ++ "node_modules/is-bigint": { ++ "version": "1.0.4", ++ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", ++ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { +- "flat-cache": "^3.0.4" ++ "has-bigints": "^1.0.1" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/is-binary-path": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", ++ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", ++ "dependencies": { ++ "binary-extensions": "^2.0.0" + }, + "engines": { +- "node": "^10.12.0 || >=12.0.0" ++ "node": ">=8" + } + }, +- "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==", ++ "node_modules/is-boolean-object": { ++ "version": "1.1.2", ++ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", ++ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { +- "locate-path": "^6.0.0", +- "path-exists": "^4.0.0" ++ "call-bind": "^1.0.2", ++ "has-tostringtag": "^1.0.0" + }, + "engines": { +- "node": ">=10" ++ "node": ">= 0.4" + }, + "funding": { +- "url": "https://github.com/sponsors/sindresorhus" ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/flat-cache": { +- "version": "3.2.0", +- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", +- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", ++ "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", +- "dependencies": { +- "flatted": "^3.2.9", +- "keyv": "^4.5.3", +- "rimraf": "^3.0.2" +- }, + "engines": { +- "node": "^10.12.0 || >=12.0.0" ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/flatted": { +- "version": "3.3.1", +- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", +- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", ++ "node_modules/is-core-module": { ++ "version": "2.13.1", ++ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", ++ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, +- "license": "ISC" ++ "license": "MIT", ++ "dependencies": { ++ "hasown": "^2.0.0" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } + }, +- "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==", +- "funding": [ +- { +- "type": "individual", +- "url": "https://github.com/sponsors/RubenVerborgh" +- } +- ], ++ "node_modules/is-data-view": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", ++ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", ++ "dev": true, + "license": "MIT", ++ "dependencies": { ++ "is-typed-array": "^1.1.13" ++ }, + "engines": { +- "node": ">=4.0" ++ "node": ">= 0.4" + }, +- "peerDependenciesMeta": { +- "debug": { +- "optional": true +- } ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/for-each": { +- "version": "0.3.3", +- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", +- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", ++ "node_modules/is-date-object": { ++ "version": "1.0.5", ++ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", ++ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { +- "is-callable": "^1.1.3" ++ "has-tostringtag": "^1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/form-data": { +- "version": "4.0.0", +- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", +- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", ++ "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-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==", ++ "engines": { ++ "node": ">=8" ++ } ++ }, ++ "node_modules/is-glob": { ++ "version": "4.0.3", ++ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", ++ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { +- "asynckit": "^0.4.0", +- "combined-stream": "^1.0.8", +- "mime-types": "^2.1.12" ++ "is-extglob": "^2.1.1" + }, + "engines": { +- "node": ">= 6" ++ "node": ">=0.10.0" + } + }, +- "node_modules/fs.realpath": { +- "version": "1.0.0", +- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", +- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", ++ "node_modules/is-negative-zero": { ++ "version": "2.0.3", ++ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", ++ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, +- "license": "ISC" ++ "license": "MIT", ++ "engines": { ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } + }, +- "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==", ++ "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==", ++ "engines": { ++ "node": ">=0.12.0" ++ } ++ }, ++ "node_modules/is-number-object": { ++ "version": "1.0.7", ++ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", ++ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", ++ "dependencies": { ++ "has-tostringtag": "^1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/function.prototype.name": { +- "version": "1.1.6", +- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", +- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", ++ "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": "2.1.0", ++ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", ++ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", ++ "engines": { ++ "node": ">=8" ++ } ++ }, ++ "node_modules/is-regex": { ++ "version": "1.1.4", ++ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", ++ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", +- "define-properties": "^1.2.0", +- "es-abstract": "^1.22.1", +- "functions-have-names": "^1.2.3" ++ "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" +@@ -2228,38 +5945,46 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/functions-have-names": { +- "version": "1.2.3", +- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", +- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", ++ "node_modules/is-shared-array-buffer": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", ++ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", ++ "dependencies": { ++ "call-bind": "^1.0.7" ++ }, ++ "engines": { ++ "node": ">= 0.4" ++ }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/gensync": { +- "version": "1.0.0-beta.2", +- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", +- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", ++ "node_modules/is-string": { ++ "version": "1.0.7", ++ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", ++ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, +- "peer": true, ++ "license": "MIT", ++ "dependencies": { ++ "has-tostringtag": "^1.0.0" ++ }, + "engines": { +- "node": ">=6.9.0" ++ "node": ">= 0.4" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/get-intrinsic": { +- "version": "1.2.4", +- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", +- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", ++ "node_modules/is-symbol": { ++ "version": "1.0.4", ++ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", ++ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { +- "es-errors": "^1.3.0", +- "function-bind": "^1.1.2", +- "has-proto": "^1.0.1", +- "has-symbols": "^1.0.3", +- "hasown": "^2.0.0" ++ "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" +@@ -2268,16 +5993,14 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/get-symbol-description": { +- "version": "1.0.2", +- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", +- "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", ++ "node_modules/is-typed-array": { ++ "version": "1.1.13", ++ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", ++ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.5", +- "es-errors": "^1.3.0", +- "get-intrinsic": "^1.2.4" ++ "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" +@@ -2286,865 +6009,1220 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/glob": { +- "version": "7.2.3", +- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", +- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", +- "dev": true, +- "license": "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" +- }, ++ "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==", + "engines": { +- "node": "*" ++ "node": ">=10" + }, + "funding": { +- "url": "https://github.com/sponsors/isaacs" ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "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==", ++ "node_modules/is-utf8": { ++ "version": "0.2.1", ++ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", ++ "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", ++ "dev": true ++ }, ++ "node_modules/is-weakref": { ++ "version": "1.0.2", ++ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", ++ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, +- "license": "ISC", ++ "license": "MIT", + "dependencies": { +- "is-glob": "^4.0.3" ++ "call-bind": "^1.0.2" + }, +- "engines": { +- "node": ">=10.13.0" ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" + } + }, +- "node_modules/globals": { +- "version": "13.24.0", +- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", +- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", ++ "node_modules/isarray": { ++ "version": "2.0.5", ++ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", ++ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", ++ "dev": true, ++ "license": "MIT" ++ }, ++ "node_modules/isexe": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", ++ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, ++ "license": "ISC" ++ }, ++ "node_modules/js-sdsl": { ++ "version": "4.3.0", ++ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", ++ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", ++ "dev": true, ++ "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==", ++ "dev": true ++ }, ++ "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==", + "license": "MIT", + "dependencies": { +- "type-fest": "^0.20.2" +- }, +- "engines": { +- "node": ">=8" ++ "argparse": "^2.0.1" + }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" ++ "bin": { ++ "js-yaml": "bin/js-yaml.js" + } + }, +- "node_modules/globalthis": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", +- "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", ++ "node_modules/js2xmlparser": { ++ "version": "4.0.2", ++ "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", ++ "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "define-properties": "^1.2.1", +- "gopd": "^1.0.1" ++ "xmlcreate": "^2.0.4" ++ } ++ }, ++ "node_modules/jsdoc": { ++ "version": "4.0.3", ++ "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", ++ "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", ++ "dev": true, ++ "dependencies": { ++ "@babel/parser": "^7.20.15", ++ "@jsdoc/salty": "^0.2.1", ++ "@types/markdown-it": "^14.1.1", ++ "bluebird": "^3.7.2", ++ "catharsis": "^0.9.0", ++ "escape-string-regexp": "^2.0.0", ++ "js2xmlparser": "^4.0.2", ++ "klaw": "^3.0.0", ++ "markdown-it": "^14.1.0", ++ "markdown-it-anchor": "^8.6.7", ++ "marked": "^4.0.10", ++ "mkdirp": "^1.0.4", ++ "requizzle": "^0.2.3", ++ "strip-json-comments": "^3.1.0", ++ "underscore": "~1.13.2" + }, +- "engines": { +- "node": ">= 0.4" ++ "bin": { ++ "jsdoc": "jsdoc.js" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "engines": { ++ "node": ">=12.0.0" + } + }, +- "node_modules/gopd": { +- "version": "1.0.1", +- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", +- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", ++ "node_modules/jsdoc-type-pratt-parser": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", ++ "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true, + "license": "MIT", +- "dependencies": { +- "get-intrinsic": "^1.1.3" ++ "engines": { ++ "node": ">=12.0.0" ++ } ++ }, ++ "node_modules/jsdoc/node_modules/escape-string-regexp": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", ++ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", ++ "dev": true, ++ "engines": { ++ "node": ">=8" ++ } ++ }, ++ "node_modules/jsesc": { ++ "version": "2.5.2", ++ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", ++ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", ++ "dev": true, ++ "peer": true, ++ "bin": { ++ "jsesc": "bin/jsesc" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "engines": { ++ "node": ">=4" + } + }, +- "node_modules/graceful-fs": { +- "version": "4.2.11", +- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", +- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", +- "dev": true ++ "node_modules/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/graphemer": { +- "version": "1.4.0", +- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", +- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", ++ "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": "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-bigints": { ++ "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 ++ }, ++ "node_modules/json5": { + "version": "1.0.2", +- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", +- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", ++ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", ++ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "dependencies": { ++ "minimist": "^1.2.0" ++ }, ++ "bin": { ++ "json5": "lib/cli.js" + } + }, +- "node_modules/has-flag": { +- "version": "4.0.0", +- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", +- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", ++ "node_modules/jsonata": { ++ "version": "1.8.7", ++ "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.8.7.tgz", ++ "integrity": "sha512-tOW2/hZ+nR2bcQZs+0T62LVe5CHaNa3laFFWb/262r39utN6whJGBF7IR2Wq1QXrDbhftolk5gggW8uUJYlBTQ==", + "dev": true, +- "license": "MIT", + "engines": { +- "node": ">=8" ++ "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==", ++ "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": { +- "es-define-property": "^1.0.0" ++ "universalify": "^2.0.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "optionalDependencies": { ++ "graceful-fs": "^4.1.6" + } + }, +- "node_modules/has-proto": { +- "version": "1.0.3", +- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", +- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", ++ "node_modules/just-extend": { ++ "version": "6.2.0", ++ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", ++ "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", ++ "dev": true ++ }, ++ "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/klaw": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", ++ "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, +- "license": "MIT", +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "dependencies": { ++ "graceful-fs": "^4.1.9" + } + }, +- "node_modules/has-symbols": { +- "version": "1.0.3", +- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", +- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", ++ "node_modules/leven": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", ++ "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, +- "license": "MIT", + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">=0.10.0" + } + }, +- "node_modules/has-tostringtag": { +- "version": "1.0.2", +- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", +- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", ++ "node_modules/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": { +- "has-symbols": "^1.0.3" ++ "prelude-ls": "^1.2.1", ++ "type-check": "~0.4.0" + }, + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">= 0.8.0" + } + }, +- "node_modules/hasown": { +- "version": "2.0.2", +- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", +- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", ++ "node_modules/linkify-it": { ++ "version": "5.0.0", ++ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", ++ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "function-bind": "^1.1.2" +- }, +- "engines": { +- "node": ">= 0.4" ++ "uc.micro": "^2.0.0" + } + }, +- "node_modules/ignore": { +- "version": "5.3.1", +- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", +- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", +- "dev": true, ++ "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==", + "license": "MIT", ++ "dependencies": { ++ "p-locate": "^5.0.0" ++ }, + "engines": { +- "node": ">= 4" ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/import-fresh": { +- "version": "3.3.0", +- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", +- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", ++ "node_modules/lodash": { ++ "version": "4.17.21", ++ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", ++ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", ++ "dev": true ++ }, ++ "node_modules/lodash.clonedeep": { ++ "version": "4.5.0", ++ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", ++ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", ++ "dev": true ++ }, ++ "node_modules/lodash.debounce": { ++ "version": "4.0.8", ++ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", ++ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", ++ "dev": true ++ }, ++ "node_modules/lodash.get": { ++ "version": "4.4.2", ++ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", ++ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", ++ "dev": true ++ }, ++ "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", ++ "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==", + "dependencies": { +- "parent-module": "^1.0.0", +- "resolve-from": "^4.0.0" ++ "chalk": "^4.1.0", ++ "is-unicode-supported": "^0.1.0" + }, + "engines": { +- "node": ">=6" ++ "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/imurmurhash": { +- "version": "0.1.4", +- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", +- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", ++ "node_modules/lowercase-keys": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", ++ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, +- "license": "MIT", + "engines": { +- "node": ">=0.8.19" ++ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/inflight": { +- "version": "1.0.6", +- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", +- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", ++ "node_modules/lru-cache": { ++ "version": "5.1.1", ++ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", ++ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, +- "license": "ISC", + "dependencies": { +- "once": "^1.3.0", +- "wrappy": "1" ++ "yallist": "^3.0.2" + } + }, +- "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/internal-slot": { +- "version": "1.0.7", +- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", +- "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", ++ "node_modules/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", ++ "optional": true, + "dependencies": { +- "es-errors": "^1.3.0", +- "hasown": "^2.0.0", +- "side-channel": "^1.0.4" ++ "semver": "^6.0.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=8" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-array-buffer": { +- "version": "3.0.4", +- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", +- "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", ++ "node_modules/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==", + "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "^1.0.2", +- "get-intrinsic": "^1.2.1" +- }, +- "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "optional": true, ++ "bin": { ++ "semver": "bin/semver.js" + } + }, +- "node_modules/is-bigint": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", +- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", ++ "node_modules/markdown-it": { ++ "version": "14.1.0", ++ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", ++ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "has-bigints": "^1.0.1" ++ "argparse": "^2.0.1", ++ "entities": "^4.4.0", ++ "linkify-it": "^5.0.0", ++ "mdurl": "^2.0.0", ++ "punycode.js": "^2.3.1", ++ "uc.micro": "^2.1.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "bin": { ++ "markdown-it": "bin/markdown-it.mjs" + } + }, +- "node_modules/is-boolean-object": { +- "version": "1.1.2", +- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", +- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", ++ "node_modules/markdown-it-anchor": { ++ "version": "8.6.7", ++ "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", ++ "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, +- "license": "MIT", +- "dependencies": { +- "call-bind": "^1.0.2", +- "has-tostringtag": "^1.0.0" ++ "peerDependencies": { ++ "@types/markdown-it": "*", ++ "markdown-it": "*" ++ } ++ }, ++ "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==", ++ "dev": true, ++ "bin": { ++ "marked": "bin/marked.js" + }, + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">= 12" + } + }, +- "node_modules/is-callable": { +- "version": "1.2.7", +- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", +- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", ++ "node_modules/mdurl": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", ++ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", ++ "dev": true ++ }, ++ "node_modules/media-typer": { ++ "version": "1.1.0", ++ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", ++ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "dev": true, +- "license": "MIT", + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">= 0.8" + } + }, +- "node_modules/is-core-module": { +- "version": "2.13.1", +- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", +- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", ++ "node_modules/memorystore": { ++ "version": "1.6.7", ++ "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz", ++ "integrity": "sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "hasown": "^2.0.0" ++ "debug": "^4.3.0", ++ "lru-cache": "^4.0.3" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "engines": { ++ "node": ">=0.10" + } + }, +- "node_modules/is-data-view": { +- "version": "1.0.1", +- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", +- "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", ++ "node_modules/memorystore/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": "MIT", + "dependencies": { +- "is-typed-array": "^1.1.13" +- }, ++ "pseudomap": "^1.0.2", ++ "yallist": "^2.1.2" ++ } ++ }, ++ "node_modules/memorystore/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 ++ }, ++ "node_modules/merge-descriptors": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", ++ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", ++ "dev": true ++ }, ++ "node_modules/methods": { ++ "version": "1.1.2", ++ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", ++ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", ++ "dev": true, + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">= 0.6" + } + }, +- "node_modules/is-date-object": { +- "version": "1.0.5", +- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", +- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", ++ "node_modules/mime": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", ++ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-tostringtag": "^1.0.0" ++ "bin": { ++ "mime": "cli.js" + }, + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">=10.0.0" + } + }, +- "node_modules/is-extglob": { +- "version": "2.1.1", +- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", +- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", +- "dev": true, ++ "node_modules/mime-db": { ++ "version": "1.52.0", ++ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", ++ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { +- "node": ">=0.10.0" ++ "node": ">= 0.6" + } + }, +- "node_modules/is-glob": { +- "version": "4.0.3", +- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", +- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", +- "dev": true, ++ "node_modules/mime-types": { ++ "version": "2.1.35", ++ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", ++ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { +- "is-extglob": "^2.1.1" ++ "mime-db": "1.52.0" + }, + "engines": { +- "node": ">=0.10.0" ++ "node": ">= 0.6" + } + }, +- "node_modules/is-negative-zero": { +- "version": "2.0.3", +- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", +- "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", ++ "node_modules/mimic-response": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", ++ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, +- "license": "MIT", + "engines": { +- "node": ">= 0.4" ++ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/is-number-object": { +- "version": "1.0.7", +- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", +- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", ++ "node_modules/minimatch": { ++ "version": "3.1.2", ++ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", ++ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, +- "license": "MIT", ++ "license": "ISC", + "dependencies": { +- "has-tostringtag": "^1.0.0" ++ "brace-expansion": "^1.1.7" + }, + "engines": { +- "node": ">= 0.4" +- }, ++ "node": "*" ++ } ++ }, ++ "node_modules/minimist": { ++ "version": "1.2.8", ++ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", ++ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", ++ "dev": true, ++ "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, +- "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==", ++ "node_modules/minipass": { ++ "version": "5.0.0", ++ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", ++ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, +- "license": "MIT", + "engines": { + "node": ">=8" + } + }, +- "node_modules/is-regex": { +- "version": "1.1.4", +- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", +- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", ++ "node_modules/minizlib": { ++ "version": "2.1.2", ++ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", ++ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "call-bind": "^1.0.2", +- "has-tostringtag": "^1.0.0" ++ "minipass": "^3.0.0", ++ "yallist": "^4.0.0" + }, + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">= 8" + } + }, +- "node_modules/is-shared-array-buffer": { +- "version": "1.0.3", +- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", +- "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", ++ "node_modules/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": "MIT", + "dependencies": { +- "call-bind": "^1.0.7" ++ "yallist": "^4.0.0" + }, + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">=8" + } + }, +- "node_modules/is-string": { +- "version": "1.0.7", +- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", +- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", ++ "node_modules/minizlib/node_modules/yallist": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", ++ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", ++ "dev": true ++ }, ++ "node_modules/mkdirp": { ++ "version": "1.0.4", ++ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", ++ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, +- "license": "MIT", +- "dependencies": { +- "has-tostringtag": "^1.0.0" ++ "bin": { ++ "mkdirp": "bin/cmd.js" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=10" ++ } ++ }, ++ "node_modules/mocha": { ++ "version": "10.4.0", ++ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", ++ "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", ++ "dependencies": { ++ "ansi-colors": "4.1.1", ++ "browser-stdout": "1.3.1", ++ "chokidar": "3.5.3", ++ "debug": "4.3.4", ++ "diff": "5.0.0", ++ "escape-string-regexp": "4.0.0", ++ "find-up": "5.0.0", ++ "glob": "8.1.0", ++ "he": "1.2.0", ++ "js-yaml": "4.1.0", ++ "log-symbols": "4.1.0", ++ "minimatch": "5.0.1", ++ "ms": "2.1.3", ++ "serialize-javascript": "6.0.0", ++ "strip-json-comments": "3.1.1", ++ "supports-color": "8.1.1", ++ "workerpool": "6.2.1", ++ "yargs": "16.2.0", ++ "yargs-parser": "20.2.4", ++ "yargs-unparser": "2.0.0" + }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "bin": { ++ "_mocha": "bin/_mocha", ++ "mocha": "bin/mocha.js" ++ }, ++ "engines": { ++ "node": ">= 14.0.0" + } + }, +- "node_modules/is-symbol": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", +- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", +- "dev": true, +- "license": "MIT", ++ "node_modules/mocha/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==", + "dependencies": { +- "has-symbols": "^1.0.2" ++ "balanced-match": "^1.0.0" ++ } ++ }, ++ "node_modules/mocha/node_modules/glob": { ++ "version": "8.1.0", ++ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", ++ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", ++ "dependencies": { ++ "fs.realpath": "^1.0.0", ++ "inflight": "^1.0.4", ++ "inherits": "2", ++ "minimatch": "^5.0.1", ++ "once": "^1.3.0" + }, + "engines": { +- "node": ">= 0.4" ++ "node": ">=12" + }, + "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "url": "https://github.com/sponsors/isaacs" + } + }, +- "node_modules/is-typed-array": { +- "version": "1.1.13", +- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", +- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", +- "dev": true, +- "license": "MIT", ++ "node_modules/mocha/node_modules/minimatch": { ++ "version": "5.0.1", ++ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", ++ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { +- "which-typed-array": "^1.1.14" ++ "brace-expansion": "^2.0.1" + }, + "engines": { +- "node": ">= 0.4" +- }, +- "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "node": ">=10" + } + }, +- "node_modules/is-weakref": { +- "version": "1.0.2", +- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", +- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", +- "dev": true, +- "license": "MIT", ++ "node_modules/mocha/node_modules/ms": { ++ "version": "2.1.3", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", ++ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" ++ }, ++ "node_modules/mocha/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==", + "dependencies": { +- "call-bind": "^1.0.2" ++ "has-flag": "^4.0.0" ++ }, ++ "engines": { ++ "node": ">=10" + }, + "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, +- "node_modules/isarray": { +- "version": "2.0.5", +- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", +- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", ++ "node_modules/moment": { ++ "version": "2.29.4", ++ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", ++ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true, +- "license": "MIT" ++ "engines": { ++ "node": "*" ++ } + }, +- "node_modules/isexe": { +- "version": "2.0.0", +- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", +- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", ++ "node_modules/moment-timezone": { ++ "version": "0.5.43", ++ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", ++ "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", + "dev": true, +- "license": "ISC" ++ "dependencies": { ++ "moment": "^2.29.4" ++ }, ++ "engines": { ++ "node": "*" ++ } + }, +- "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==", ++ "node_modules/mqtt": { ++ "version": "4.3.7", ++ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz", ++ "integrity": "sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw==", ++ "dev": true, ++ "dependencies": { ++ "commist": "^1.0.0", ++ "concat-stream": "^2.0.0", ++ "debug": "^4.1.1", ++ "duplexify": "^4.1.1", ++ "help-me": "^3.0.0", ++ "inherits": "^2.0.3", ++ "lru-cache": "^6.0.0", ++ "minimist": "^1.2.5", ++ "mqtt-packet": "^6.8.0", ++ "number-allocator": "^1.0.9", ++ "pump": "^3.0.0", ++ "readable-stream": "^3.6.0", ++ "reinterval": "^1.1.0", ++ "rfdc": "^1.3.0", ++ "split2": "^3.1.0", ++ "ws": "^7.5.5", ++ "xtend": "^4.0.2" ++ }, ++ "bin": { ++ "mqtt": "bin/mqtt.js", ++ "mqtt_pub": "bin/pub.js", ++ "mqtt_sub": "bin/sub.js" ++ }, ++ "engines": { ++ "node": ">=10.0.0" ++ } ++ }, ++ "node_modules/mqtt-packet": { ++ "version": "6.10.0", ++ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz", ++ "integrity": "sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==", + "dev": true, +- "peer": true ++ "dependencies": { ++ "bl": "^4.0.2", ++ "debug": "^4.1.1", ++ "process-nextick-args": "^2.0.1" ++ } + }, +- "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==", ++ "node_modules/mqtt/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", + "dependencies": { +- "argparse": "^2.0.1" ++ "yallist": "^4.0.0" + }, +- "bin": { +- "js-yaml": "bin/js-yaml.js" ++ "engines": { ++ "node": ">=10" + } + }, +- "node_modules/js2xmlparser": { +- "version": "4.0.2", +- "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", +- "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", ++ "node_modules/mqtt/node_modules/yallist": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", ++ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", ++ "dev": true ++ }, ++ "node_modules/ms": { ++ "version": "2.1.2", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", ++ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", ++ "license": "MIT" ++ }, ++ "node_modules/multer": { ++ "version": "1.4.5-lts.1", ++ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", ++ "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "dev": true, + "dependencies": { +- "xmlcreate": "^2.0.4" ++ "append-field": "^1.0.0", ++ "busboy": "^1.0.0", ++ "concat-stream": "^1.5.2", ++ "mkdirp": "^0.5.4", ++ "object-assign": "^4.1.1", ++ "type-is": "^1.6.4", ++ "xtend": "^4.0.0" ++ }, ++ "engines": { ++ "node": ">= 6.0.0" + } + }, +- "node_modules/jsdoc": { +- "version": "4.0.3", +- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", +- "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", ++ "node_modules/multer/node_modules/concat-stream": { ++ "version": "1.6.2", ++ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", ++ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, ++ "engines": [ ++ "node >= 0.8" ++ ], + "dependencies": { +- "@babel/parser": "^7.20.15", +- "@jsdoc/salty": "^0.2.1", +- "@types/markdown-it": "^14.1.1", +- "bluebird": "^3.7.2", +- "catharsis": "^0.9.0", +- "escape-string-regexp": "^2.0.0", +- "js2xmlparser": "^4.0.2", +- "klaw": "^3.0.0", +- "markdown-it": "^14.1.0", +- "markdown-it-anchor": "^8.6.7", +- "marked": "^4.0.10", +- "mkdirp": "^1.0.4", +- "requizzle": "^0.2.3", +- "strip-json-comments": "^3.1.0", +- "underscore": "~1.13.2" ++ "buffer-from": "^1.0.0", ++ "inherits": "^2.0.3", ++ "readable-stream": "^2.2.2", ++ "typedarray": "^0.0.6" ++ } ++ }, ++ "node_modules/multer/node_modules/isarray": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", ++ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", ++ "dev": true ++ }, ++ "node_modules/multer/node_modules/mkdirp": { ++ "version": "0.5.6", ++ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", ++ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", ++ "dev": true, ++ "dependencies": { ++ "minimist": "^1.2.6" + }, + "bin": { +- "jsdoc": "jsdoc.js" +- }, +- "engines": { +- "node": ">=12.0.0" ++ "mkdirp": "bin/cmd.js" + } + }, +- "node_modules/jsdoc-type-pratt-parser": { +- "version": "4.0.0", +- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", +- "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", ++ "node_modules/multer/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", +- "engines": { +- "node": ">=12.0.0" ++ "dependencies": { ++ "core-util-is": "~1.0.0", ++ "inherits": "~2.0.3", ++ "isarray": "~1.0.0", ++ "process-nextick-args": "~2.0.0", ++ "safe-buffer": "~5.1.1", ++ "string_decoder": "~1.1.1", ++ "util-deprecate": "~1.0.1" + } + }, +- "node_modules/jsdoc/node_modules/escape-string-regexp": { +- "version": "2.0.0", +- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", +- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", ++ "node_modules/multer/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, +- "engines": { +- "node": ">=8" ++ "dependencies": { ++ "safe-buffer": "~5.1.0" + } + }, +- "node_modules/jsesc": { +- "version": "2.5.2", +- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", +- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", ++ "node_modules/mustache": { ++ "version": "4.2.0", ++ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", ++ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, +- "peer": true, + "bin": { +- "jsesc": "bin/jsesc" +- }, +- "engines": { +- "node": ">=4" ++ "mustache": "bin/mustache" + } + }, +- "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-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/mute-stream": { ++ "version": "0.0.8", ++ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", ++ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", ++ "dev": true + }, +- "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==", ++ "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/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==", ++ "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/json5": { +- "version": "1.0.2", +- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", +- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", ++ "node_modules/nise": { ++ "version": "5.1.9", ++ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", ++ "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "minimist": "^1.2.0" +- }, +- "bin": { +- "json5": "lib/cli.js" ++ "@sinonjs/commons": "^3.0.0", ++ "@sinonjs/fake-timers": "^11.2.2", ++ "@sinonjs/text-encoding": "^0.7.2", ++ "just-extend": "^6.2.0", ++ "path-to-regexp": "^6.2.1" + } + }, +- "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==", ++ "node_modules/nise/node_modules/@sinonjs/commons": { ++ "version": "3.0.1", ++ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", ++ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "json-buffer": "3.0.1" ++ "type-detect": "4.0.8" + } + }, +- "node_modules/klaw": { +- "version": "3.0.0", +- "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", +- "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", ++ "node_modules/nise/node_modules/@sinonjs/fake-timers": { ++ "version": "11.2.2", ++ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", ++ "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", + "dev": true, + "dependencies": { +- "graceful-fs": "^4.1.9" ++ "@sinonjs/commons": "^3.0.0" + } + }, +- "node_modules/levn": { +- "version": "0.4.1", +- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", +- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", ++ "node_modules/nise/node_modules/path-to-regexp": { ++ "version": "6.2.2", ++ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", ++ "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", ++ "dev": true ++ }, ++ "node_modules/nock": { ++ "version": "13.5.4", ++ "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", ++ "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "prelude-ls": "^1.2.1", +- "type-check": "~0.4.0" ++ "debug": "^4.1.0", ++ "json-stringify-safe": "^5.0.1", ++ "propagate": "^2.0.0" + }, + "engines": { +- "node": ">= 0.8.0" ++ "node": ">= 10.13" + } + }, +- "node_modules/linkify-it": { +- "version": "5.0.0", +- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", +- "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", ++ "node_modules/node-addon-api": { ++ "version": "5.1.0", ++ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", ++ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "dev": true, ++ "optional": true ++ }, ++ "node_modules/node-fetch": { ++ "version": "2.7.0", ++ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", ++ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", ++ "dev": true, ++ "optional": true, + "dependencies": { +- "uc.micro": "^2.0.0" ++ "whatwg-url": "^5.0.0" ++ }, ++ "engines": { ++ "node": "4.x || >=6.0.0" ++ }, ++ "peerDependencies": { ++ "encoding": "^0.1.0" ++ }, ++ "peerDependenciesMeta": { ++ "encoding": { ++ "optional": true ++ } + } + }, +- "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==", ++ "node_modules/node-red": { ++ "version": "3.1.9", ++ "resolved": "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz", ++ "integrity": "sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "p-locate": "^5.0.0" ++ "@node-red/editor-api": "3.1.9", ++ "@node-red/nodes": "3.1.9", ++ "@node-red/runtime": "3.1.9", ++ "@node-red/util": "3.1.9", ++ "basic-auth": "2.0.1", ++ "bcryptjs": "2.4.3", ++ "express": "4.19.2", ++ "fs-extra": "11.1.1", ++ "node-red-admin": "^3.1.3", ++ "nopt": "5.0.0", ++ "semver": "7.5.4" ++ }, ++ "bin": { ++ "node-red": "red.js", ++ "node-red-pi": "bin/node-red-pi" + }, + "engines": { +- "node": ">=10" ++ "node": ">=14" + }, +- "funding": { +- "url": "https://github.com/sponsors/sindresorhus" ++ "optionalDependencies": { ++ "bcrypt": "5.1.0" + } + }, +- "node_modules/lodash": { +- "version": "4.17.21", +- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", +- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", +- "dev": true ++ "node_modules/node-red-admin": { ++ "version": "3.1.3", ++ "resolved": "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz", ++ "integrity": "sha512-RRkjwLjriCKW3bqiU21y3j+wpZ4bDf2EH3IEqxwP6hT4ccIwEK8Nt9dPZRWD6NyWGbEVDSTM5H0/whaRdFCqSw==", ++ "dev": true, ++ "dependencies": { ++ "ansi-colors": "^4.1.3", ++ "axios": "^1.6.8", ++ "bcryptjs": "^2.4.3", ++ "cli-table": "^0.3.11", ++ "enquirer": "^2.3.6", ++ "minimist": "^1.2.8", ++ "mustache": "^4.2.0", ++ "read": "^1.0.7" ++ }, ++ "bin": { ++ "node-red-admin": "node-red-admin.js" ++ }, ++ "engines": { ++ "node": ">=14" ++ }, ++ "optionalDependencies": { ++ "bcrypt": "5.1.1" ++ } + }, +- "node_modules/lodash.merge": { +- "version": "4.6.2", +- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", +- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", ++ "node_modules/node-red-admin/node_modules/ansi-colors": { ++ "version": "4.1.3", ++ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", ++ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, +- "license": "MIT" ++ "engines": { ++ "node": ">=6" ++ } + }, +- "node_modules/lru-cache": { ++ "node_modules/node-red-admin/node_modules/bcrypt": { + "version": "5.1.1", +- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", +- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", ++ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", ++ "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "dev": true, +- "peer": true, ++ "hasInstallScript": true, ++ "optional": true, + "dependencies": { +- "yallist": "^3.0.2" ++ "@mapbox/node-pre-gyp": "^1.0.11", ++ "node-addon-api": "^5.0.0" ++ }, ++ "engines": { ++ "node": ">= 10.0.0" + } + }, +- "node_modules/markdown-it": { +- "version": "14.1.0", +- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", +- "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", ++ "node_modules/node-red-node-test-helper": { ++ "version": "0.3.4", ++ "resolved": "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.4.tgz", ++ "integrity": "sha512-OFXGEkKZpLkgoijAgpUIjzn5RF8QnbwPX9RjfI2LWXq1ACfeXkXcW0i1ioiphrokdE3MiWQJtH5omLNnSNdyaQ==", + "dev": true, + "dependencies": { +- "argparse": "^2.0.1", +- "entities": "^4.4.0", +- "linkify-it": "^5.0.0", +- "mdurl": "^2.0.0", +- "punycode.js": "^2.3.1", +- "uc.micro": "^2.1.0" ++ "body-parser": "^1.20.2", ++ "express": "^4.19.2", ++ "semver": "^7.5.4", ++ "should": "^13.2.3", ++ "should-sinon": "^0.0.6", ++ "sinon": "^11.1.2", ++ "stoppable": "^1.1.0", ++ "supertest": "^7.0.0" + }, +- "bin": { +- "markdown-it": "bin/markdown-it.mjs" ++ "engines": { ++ "node": ">=14" + } + }, +- "node_modules/markdown-it-anchor": { +- "version": "8.6.7", +- "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", +- "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", ++ "node_modules/node-red/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, +- "peerDependencies": { +- "@types/markdown-it": "*", +- "markdown-it": "*" ++ "dependencies": { ++ "yallist": "^4.0.0" ++ }, ++ "engines": { ++ "node": ">=10" + } + }, +- "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==", ++ "node_modules/node-red/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": { +- "marked": "bin/marked.js" ++ "semver": "bin/semver.js" + }, + "engines": { +- "node": ">= 12" ++ "node": ">=10" + } + }, +- "node_modules/mdurl": { +- "version": "2.0.0", +- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", +- "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", ++ "node_modules/node-red/node_modules/yallist": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", ++ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, +- "node_modules/mime-db": { +- "version": "1.52.0", +- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", +- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", +- "license": "MIT", ++ "node_modules/node-releases": { ++ "version": "2.0.14", ++ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", ++ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", ++ "dev": true ++ }, ++ "node_modules/node-watch": { ++ "version": "0.7.4", ++ "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz", ++ "integrity": "sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ==", ++ "dev": true, + "engines": { +- "node": ">= 0.6" ++ "node": ">=6" + } + }, +- "node_modules/mime-types": { +- "version": "2.1.35", +- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", +- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", +- "license": "MIT", ++ "node_modules/nopt": { ++ "version": "5.0.0", ++ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", ++ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", ++ "dev": true, + "dependencies": { +- "mime-db": "1.52.0" ++ "abbrev": "1" ++ }, ++ "bin": { ++ "nopt": "bin/nopt.js" + }, + "engines": { +- "node": ">= 0.6" ++ "node": ">=6" + } + }, +- "node_modules/minimatch": { +- "version": "3.1.2", +- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", +- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", ++ "node_modules/normalize-path": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", ++ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", ++ "engines": { ++ "node": ">=0.10.0" ++ } ++ }, ++ "node_modules/normalize-url": { ++ "version": "8.0.1", ++ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", ++ "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "dev": true, +- "license": "ISC", +- "dependencies": { +- "brace-expansion": "^1.1.7" +- }, + "engines": { +- "node": "*" ++ "node": ">=14.16" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" + } + }, +- "node_modules/minimist": { +- "version": "1.2.8", +- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", +- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", ++ "node_modules/npmlog": { ++ "version": "5.0.1", ++ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", ++ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", ++ "deprecated": "This package is no longer supported.", + "dev": true, +- "license": "MIT", ++ "optional": true, ++ "dependencies": { ++ "are-we-there-yet": "^2.0.0", ++ "console-control-strings": "^1.1.0", ++ "gauge": "^3.0.0", ++ "set-blocking": "^2.0.0" ++ } ++ }, ++ "node_modules/nth-check": { ++ "version": "2.1.1", ++ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", ++ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", ++ "dev": true, ++ "dependencies": { ++ "boolbase": "^1.0.0" ++ }, + "funding": { +- "url": "https://github.com/sponsors/ljharb" ++ "url": "https://github.com/fb55/nth-check?sponsor=1" ++ } ++ }, ++ "node_modules/number-allocator": { ++ "version": "1.0.14", ++ "resolved": "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz", ++ "integrity": "sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==", ++ "dev": true, ++ "dependencies": { ++ "debug": "^4.3.1", ++ "js-sdsl": "4.3.0" + } + }, +- "node_modules/mkdirp": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", +- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", ++ "node_modules/oauth2orize": { ++ "version": "1.11.1", ++ "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz", ++ "integrity": "sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA==", + "dev": true, +- "bin": { +- "mkdirp": "bin/cmd.js" ++ "dependencies": { ++ "debug": "2.x.x", ++ "uid2": "0.0.x", ++ "utils-merge": "1.x.x" + }, + "engines": { +- "node": ">=10" ++ "node": ">= 0.4.0" ++ }, ++ "funding": { ++ "type": "github", ++ "url": "https://github.com/sponsors/jaredhanson" + } + }, +- "node_modules/ms": { +- "version": "2.1.2", +- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", +- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", ++ "node_modules/oauth2orize/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/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/oauth2orize/node_modules/ms": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", ++ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", ++ "dev": true + }, +- "node_modules/node-releases": { +- "version": "2.0.14", +- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", +- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", ++ "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, +- "peer": true ++ "engines": { ++ "node": ">=0.10.0" ++ } + }, + "node_modules/object-inspect": { + "version": "1.13.1", +@@ -3237,11 +7315,31 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "node_modules/on-finished": { ++ "version": "2.4.1", ++ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", ++ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", ++ "dev": true, ++ "dependencies": { ++ "ee-first": "1.1.1" ++ }, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/on-headers": { ++ "version": "1.0.2", ++ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", ++ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", +- "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" +@@ -3265,11 +7363,19 @@ + "node": ">= 0.8.0" + } + }, ++ "node_modules/p-cancelable": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", ++ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", ++ "dev": true, ++ "engines": { ++ "node": ">=12.20" ++ } ++ }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", +- "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" +@@ -3285,7 +7391,6 @@ + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", +- "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" +@@ -3310,11 +7415,85 @@ + "node": ">=6" + } + }, ++ "node_modules/parse5": { ++ "version": "6.0.1", ++ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", ++ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", ++ "dev": true ++ }, ++ "node_modules/parse5-htmlparser2-tree-adapter": { ++ "version": "6.0.1", ++ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", ++ "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", ++ "dev": true, ++ "dependencies": { ++ "parse5": "^6.0.1" ++ } ++ }, ++ "node_modules/parseurl": { ++ "version": "1.3.3", ++ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", ++ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/passport": { ++ "version": "0.6.0", ++ "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz", ++ "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==", ++ "dev": true, ++ "dependencies": { ++ "passport-strategy": "1.x.x", ++ "pause": "0.0.1", ++ "utils-merge": "^1.0.1" ++ }, ++ "engines": { ++ "node": ">= 0.4.0" ++ }, ++ "funding": { ++ "type": "github", ++ "url": "https://github.com/sponsors/jaredhanson" ++ } ++ }, ++ "node_modules/passport-http-bearer": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz", ++ "integrity": "sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw==", ++ "dev": true, ++ "dependencies": { ++ "passport-strategy": "1.x.x" ++ }, ++ "engines": { ++ "node": ">= 0.4.0" ++ } ++ }, ++ "node_modules/passport-oauth2-client-password": { ++ "version": "0.1.2", ++ "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz", ++ "integrity": "sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ==", ++ "dev": true, ++ "dependencies": { ++ "passport-strategy": "1.x.x" ++ }, ++ "engines": { ++ "node": ">= 0.4.0" ++ } ++ }, ++ "node_modules/passport-strategy": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", ++ "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.4.0" ++ } ++ }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", +- "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" +@@ -3347,12 +7526,34 @@ + "dev": true, + "license": "MIT" + }, ++ "node_modules/path-to-regexp": { ++ "version": "0.1.7", ++ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", ++ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", ++ "dev": true ++ }, ++ "node_modules/pause": { ++ "version": "0.0.1", ++ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", ++ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==", ++ "dev": true ++ }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", +- "dev": true, +- "peer": true ++ "dev": true ++ }, ++ "node_modules/picomatch": { ++ "version": "2.3.1", ++ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", ++ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", ++ "engines": { ++ "node": ">=8.6" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/jonschlinkert" ++ } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", +@@ -3385,68 +7586,280 @@ + "engines": { + "node": ">=10.13.0" + }, +- "funding": { +- "url": "https://github.com/prettier/prettier?sponsor=1" ++ "funding": { ++ "url": "https://github.com/prettier/prettier?sponsor=1" ++ } ++ }, ++ "node_modules/prettier-linter-helpers": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", ++ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "fast-diff": "^1.1.2" ++ }, ++ "engines": { ++ "node": ">=6.0.0" ++ } ++ }, ++ "node_modules/process-nextick-args": { ++ "version": "2.0.1", ++ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", ++ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", ++ "dev": true ++ }, ++ "node_modules/propagate": { ++ "version": "2.0.1", ++ "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", ++ "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", ++ "dev": true, ++ "engines": { ++ "node": ">= 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, ++ "dependencies": { ++ "forwarded": "0.2.0", ++ "ipaddr.js": "1.9.1" ++ }, ++ "engines": { ++ "node": ">= 0.10" ++ } ++ }, ++ "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==", ++ "license": "MIT" ++ }, ++ "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 ++ }, ++ "node_modules/psl": { ++ "version": "1.9.0", ++ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", ++ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", ++ "dev": true ++ }, ++ "node_modules/pump": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", ++ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", ++ "dev": true, ++ "dependencies": { ++ "end-of-stream": "^1.1.0", ++ "once": "^1.3.1" ++ } ++ }, ++ "node_modules/punycode": { ++ "version": "2.3.1", ++ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", ++ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", ++ "dev": true, ++ "license": "MIT", ++ "engines": { ++ "node": ">=6" ++ } ++ }, ++ "node_modules/punycode.js": { ++ "version": "2.3.1", ++ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", ++ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", ++ "dev": true, ++ "engines": { ++ "node": ">=6" ++ } ++ }, ++ "node_modules/qs": { ++ "version": "6.11.0", ++ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", ++ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", ++ "dev": true, ++ "dependencies": { ++ "side-channel": "^1.0.4" ++ }, ++ "engines": { ++ "node": ">=0.6" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/ljharb" ++ } ++ }, ++ "node_modules/querystringify": { ++ "version": "2.2.0", ++ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", ++ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", ++ "dev": true ++ }, ++ "node_modules/queue-microtask": { ++ "version": "1.2.3", ++ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", ++ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/feross" ++ }, ++ { ++ "type": "patreon", ++ "url": "https://www.patreon.com/feross" ++ }, ++ { ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ], ++ "license": "MIT" ++ }, ++ "node_modules/quick-lru": { ++ "version": "5.1.1", ++ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", ++ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", ++ "dev": true, ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, ++ "node_modules/rambda": { ++ "version": "7.5.0", ++ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", ++ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", ++ "dev": true ++ }, ++ "node_modules/random-bytes": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", ++ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/randombytes": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", ++ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", ++ "dependencies": { ++ "safe-buffer": "^5.1.0" ++ } ++ }, ++ "node_modules/range-parser": { ++ "version": "1.2.1", ++ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", ++ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/raw-body": { ++ "version": "2.5.2", ++ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", ++ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", ++ "dev": true, ++ "dependencies": { ++ "bytes": "3.1.2", ++ "http-errors": "2.0.0", ++ "iconv-lite": "0.4.24", ++ "unpipe": "1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/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, ++ "dependencies": { ++ "safer-buffer": ">= 2.1.2 < 3" ++ }, ++ "engines": { ++ "node": ">=0.10.0" ++ } ++ }, ++ "node_modules/read": { ++ "version": "1.0.7", ++ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", ++ "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", ++ "dev": true, ++ "dependencies": { ++ "mute-stream": "~0.0.4" ++ }, ++ "engines": { ++ "node": ">=0.8" + } + }, +- "node_modules/prettier-linter-helpers": { +- "version": "1.0.0", +- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", +- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", ++ "node_modules/readable-stream": { ++ "version": "3.6.2", ++ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", ++ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, +- "license": "MIT", + "dependencies": { +- "fast-diff": "^1.1.2" ++ "inherits": "^2.0.3", ++ "string_decoder": "^1.1.1", ++ "util-deprecate": "^1.0.1" + }, + "engines": { +- "node": ">=6.0.0" ++ "node": ">= 6" + } + }, +- "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==", +- "license": "MIT" +- }, +- "node_modules/punycode": { +- "version": "2.3.1", +- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", +- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", +- "dev": true, +- "license": "MIT", ++ "node_modules/readdirp": { ++ "version": "3.6.0", ++ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", ++ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", ++ "dependencies": { ++ "picomatch": "^2.2.1" ++ }, + "engines": { +- "node": ">=6" ++ "node": ">=8.10.0" + } + }, +- "node_modules/punycode.js": { +- "version": "2.3.1", +- "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", +- "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", ++ "node_modules/regenerate": { ++ "version": "1.4.2", ++ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", ++ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", ++ "dev": true ++ }, ++ "node_modules/regenerate-unicode-properties": { ++ "version": "10.1.1", ++ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", ++ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, ++ "dependencies": { ++ "regenerate": "^1.4.2" ++ }, + "engines": { +- "node": ">=6" ++ "node": ">=4" + } + }, +- "node_modules/queue-microtask": { +- "version": "1.2.3", +- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", +- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", ++ "node_modules/regenerator-runtime": { ++ "version": "0.14.1", ++ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", ++ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", ++ "dev": true ++ }, ++ "node_modules/regenerator-transform": { ++ "version": "0.15.2", ++ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", ++ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, +- "funding": [ +- { +- "type": "github", +- "url": "https://github.com/sponsors/feross" +- }, +- { +- "type": "patreon", +- "url": "https://www.patreon.com/feross" +- }, +- { +- "type": "consulting", +- "url": "https://feross.org/support" +- } +- ], +- "license": "MIT" ++ "dependencies": { ++ "@babel/runtime": "^7.8.4" ++ } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", +@@ -3480,6 +7893,73 @@ + "url": "https://github.com/sponsors/mysticatea" + } + }, ++ "node_modules/regexpu-core": { ++ "version": "5.3.2", ++ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", ++ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", ++ "dev": true, ++ "dependencies": { ++ "@babel/regjsgen": "^0.8.0", ++ "regenerate": "^1.4.2", ++ "regenerate-unicode-properties": "^10.1.0", ++ "regjsparser": "^0.9.1", ++ "unicode-match-property-ecmascript": "^2.0.0", ++ "unicode-match-property-value-ecmascript": "^2.1.0" ++ }, ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/regjsparser": { ++ "version": "0.9.1", ++ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", ++ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", ++ "dev": true, ++ "dependencies": { ++ "jsesc": "~0.5.0" ++ }, ++ "bin": { ++ "regjsparser": "bin/parser" ++ } ++ }, ++ "node_modules/regjsparser/node_modules/jsesc": { ++ "version": "0.5.0", ++ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", ++ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", ++ "dev": true, ++ "bin": { ++ "jsesc": "bin/jsesc" ++ } ++ }, ++ "node_modules/reinterval": { ++ "version": "1.1.0", ++ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", ++ "integrity": "sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==", ++ "dev": true ++ }, ++ "node_modules/require-directory": { ++ "version": "2.1.1", ++ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", ++ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", ++ "engines": { ++ "node": ">=0.10.0" ++ } ++ }, ++ "node_modules/require-from-string": { ++ "version": "2.0.2", ++ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", ++ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.10.0" ++ } ++ }, ++ "node_modules/requires-port": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", ++ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", ++ "dev": true ++ }, + "node_modules/requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", +@@ -3507,6 +7987,12 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "node_modules/resolve-alpn": { ++ "version": "1.2.1", ++ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", ++ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", ++ "dev": true ++ }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", +@@ -3517,6 +8003,21 @@ + "node": ">=4" + } + }, ++ "node_modules/responselike": { ++ "version": "3.0.0", ++ "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", ++ "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", ++ "dev": true, ++ "dependencies": { ++ "lowercase-keys": "^3.0.0" ++ }, ++ "engines": { ++ "node": ">=14.16" ++ }, ++ "funding": { ++ "url": "https://github.com/sponsors/sindresorhus" ++ } ++ }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", +@@ -3528,6 +8029,12 @@ + "node": ">=0.10.0" + } + }, ++ "node_modules/rfdc": { ++ "version": "1.3.1", ++ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", ++ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", ++ "dev": true ++ }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", +@@ -3587,6 +8094,11 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "node_modules/safe-buffer": { ++ "version": "5.1.2", ++ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", ++ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" ++ }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", +@@ -3605,6 +8117,18 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "node_modules/safer-buffer": { ++ "version": "2.1.2", ++ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", ++ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", ++ "dev": true ++ }, ++ "node_modules/sax": { ++ "version": "1.3.0", ++ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", ++ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", ++ "dev": true ++ }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", +@@ -3618,6 +8142,93 @@ + "node": ">=10" + } + }, ++ "node_modules/send": { ++ "version": "0.18.0", ++ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", ++ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", ++ "dev": true, ++ "dependencies": { ++ "debug": "2.6.9", ++ "depd": "2.0.0", ++ "destroy": "1.2.0", ++ "encodeurl": "~1.0.2", ++ "escape-html": "~1.0.3", ++ "etag": "~1.8.1", ++ "fresh": "0.5.2", ++ "http-errors": "2.0.0", ++ "mime": "1.6.0", ++ "ms": "2.1.3", ++ "on-finished": "2.4.1", ++ "range-parser": "~1.2.1", ++ "statuses": "2.0.1" ++ }, ++ "engines": { ++ "node": ">= 0.8.0" ++ } ++ }, ++ "node_modules/send/node_modules/debug": { ++ "version": "2.6.9", ++ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", ++ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", ++ "dev": true, ++ "dependencies": { ++ "ms": "2.0.0" ++ } ++ }, ++ "node_modules/send/node_modules/debug/node_modules/ms": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", ++ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", ++ "dev": true ++ }, ++ "node_modules/send/node_modules/mime": { ++ "version": "1.6.0", ++ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", ++ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", ++ "dev": true, ++ "bin": { ++ "mime": "cli.js" ++ }, ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/send/node_modules/ms": { ++ "version": "2.1.3", ++ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", ++ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", ++ "dev": true ++ }, ++ "node_modules/serialize-javascript": { ++ "version": "6.0.0", ++ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", ++ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", ++ "dependencies": { ++ "randombytes": "^2.1.0" ++ } ++ }, ++ "node_modules/serve-static": { ++ "version": "1.15.0", ++ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", ++ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", ++ "dev": true, ++ "dependencies": { ++ "encodeurl": "~1.0.2", ++ "escape-html": "~1.0.3", ++ "parseurl": "~1.3.3", ++ "send": "0.18.0" ++ }, ++ "engines": { ++ "node": ">= 0.8.0" ++ } ++ }, ++ "node_modules/set-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, ++ "optional": true ++ }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", +@@ -3652,6 +8263,12 @@ + "node": ">= 0.4" + } + }, ++ "node_modules/setprototypeof": { ++ "version": "1.2.0", ++ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", ++ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", ++ "dev": true ++ }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", +@@ -3675,6 +8292,69 @@ + "node": ">=8" + } + }, ++ "node_modules/should": { ++ "version": "13.2.3", ++ "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", ++ "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", ++ "dev": true, ++ "dependencies": { ++ "should-equal": "^2.0.0", ++ "should-format": "^3.0.3", ++ "should-type": "^1.4.0", ++ "should-type-adaptors": "^1.0.1", ++ "should-util": "^1.0.0" ++ } ++ }, ++ "node_modules/should-equal": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", ++ "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", ++ "dev": true, ++ "dependencies": { ++ "should-type": "^1.4.0" ++ } ++ }, ++ "node_modules/should-format": { ++ "version": "3.0.3", ++ "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", ++ "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", ++ "dev": true, ++ "dependencies": { ++ "should-type": "^1.3.0", ++ "should-type-adaptors": "^1.0.1" ++ } ++ }, ++ "node_modules/should-sinon": { ++ "version": "0.0.6", ++ "resolved": "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz", ++ "integrity": "sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g==", ++ "dev": true, ++ "peerDependencies": { ++ "should": ">= 8.x" ++ } ++ }, ++ "node_modules/should-type": { ++ "version": "1.4.0", ++ "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", ++ "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", ++ "dev": true ++ }, ++ "node_modules/should-type-adaptors": { ++ "version": "1.1.0", ++ "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", ++ "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", ++ "dev": true, ++ "dependencies": { ++ "should-type": "^1.3.0", ++ "should-util": "^1.0.0" ++ } ++ }, ++ "node_modules/should-util": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", ++ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", ++ "dev": true ++ }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", +@@ -3694,6 +8374,32 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "node_modules/signal-exit": { ++ "version": "3.0.7", ++ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", ++ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", ++ "dev": true, ++ "optional": true ++ }, ++ "node_modules/sinon": { ++ "version": "11.1.2", ++ "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", ++ "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", ++ "deprecated": "16.1.1", ++ "dev": true, ++ "dependencies": { ++ "@sinonjs/commons": "^1.8.3", ++ "@sinonjs/fake-timers": "^7.1.2", ++ "@sinonjs/samsam": "^6.0.2", ++ "diff": "^5.0.0", ++ "nise": "^5.1.0", ++ "supports-color": "^7.2.0" ++ }, ++ "funding": { ++ "type": "opencollective", ++ "url": "https://opencollective.com/sinon" ++ } ++ }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", +@@ -3701,24 +8407,109 @@ + "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", ++ "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": { ++ "spdx-exceptions": "^2.1.0", ++ "spdx-license-ids": "^3.0.0" ++ } ++ }, ++ "node_modules/spdx-license-ids": { ++ "version": "3.0.17", ++ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", ++ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", ++ "dev": true, ++ "license": "CC0-1.0" ++ }, ++ "node_modules/split2": { ++ "version": "3.2.2", ++ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", ++ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", ++ "dev": true, ++ "dependencies": { ++ "readable-stream": "^3.0.0" ++ } ++ }, ++ "node_modules/statuses": { ++ "version": "2.0.1", ++ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", ++ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/stoppable": { ++ "version": "1.1.0", ++ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", ++ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", ++ "dev": true, ++ "engines": { ++ "node": ">=4", ++ "npm": ">=6" ++ } ++ }, ++ "node_modules/stream-shift": { ++ "version": "1.0.3", ++ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", ++ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", ++ "dev": true ++ }, ++ "node_modules/streamsearch": { ++ "version": "1.1.0", ++ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", ++ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", ++ "dev": true, ++ "engines": { ++ "node": ">=10.0.0" ++ } ++ }, ++ "node_modules/string_decoder": { ++ "version": "1.3.0", ++ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", ++ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", ++ "dev": true, ++ "dependencies": { ++ "safe-buffer": "~5.2.0" ++ } ++ }, ++ "node_modules/string_decoder/node_modules/safe-buffer": { ++ "version": "5.2.1", ++ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", ++ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", ++ "dev": true, ++ "funding": [ ++ { ++ "type": "github", ++ "url": "https://github.com/sponsors/feross" ++ }, ++ { ++ "type": "patreon", ++ "url": "https://www.patreon.com/feross" ++ }, ++ { ++ "type": "consulting", ++ "url": "https://feross.org/support" ++ } ++ ] ++ }, ++ "node_modules/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==", + "dependencies": { +- "spdx-exceptions": "^2.1.0", +- "spdx-license-ids": "^3.0.0" ++ "emoji-regex": "^8.0.0", ++ "is-fullwidth-code-point": "^3.0.0", ++ "strip-ansi": "^6.0.1" ++ }, ++ "engines": { ++ "node": ">=8" + } + }, +- "node_modules/spdx-license-ids": { +- "version": "3.0.17", +- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", +- "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", +- "dev": true, +- "license": "CC0-1.0" +- }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", +@@ -3775,7 +8566,6 @@ + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", +- "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" +@@ -3798,7 +8588,6 @@ + "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": { + "node": ">=8" +@@ -3807,11 +8596,55 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, ++ "node_modules/superagent": { ++ "version": "9.0.2", ++ "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", ++ "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", ++ "dev": true, ++ "dependencies": { ++ "component-emitter": "^1.3.0", ++ "cookiejar": "^2.1.4", ++ "debug": "^4.3.4", ++ "fast-safe-stringify": "^2.1.1", ++ "form-data": "^4.0.0", ++ "formidable": "^3.5.1", ++ "methods": "^1.1.2", ++ "mime": "2.6.0", ++ "qs": "^6.11.0" ++ }, ++ "engines": { ++ "node": ">=14.18.0" ++ } ++ }, ++ "node_modules/superagent/node_modules/mime": { ++ "version": "2.6.0", ++ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", ++ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", ++ "dev": true, ++ "bin": { ++ "mime": "cli.js" ++ }, ++ "engines": { ++ "node": ">=4.0.0" ++ } ++ }, ++ "node_modules/supertest": { ++ "version": "7.0.0", ++ "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz", ++ "integrity": "sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==", ++ "dev": true, ++ "dependencies": { ++ "methods": "^1.1.2", ++ "superagent": "^9.0.1" ++ }, ++ "engines": { ++ "node": ">=14.18.0" ++ } ++ }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", +- "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" +@@ -3833,6 +8666,29 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "node_modules/tar": { ++ "version": "6.2.1", ++ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", ++ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", ++ "dev": true, ++ "dependencies": { ++ "chownr": "^2.0.0", ++ "fs-minipass": "^2.0.0", ++ "minipass": "^5.0.0", ++ "minizlib": "^2.1.1", ++ "mkdirp": "^1.0.3", ++ "yallist": "^4.0.0" ++ }, ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "node_modules/tar/node_modules/yallist": { ++ "version": "4.0.0", ++ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", ++ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", ++ "dev": true ++ }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", +@@ -3845,11 +8701,61 @@ + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, +- "peer": true, + "engines": { + "node": ">=4" + } + }, ++ "node_modules/to-regex-range": { ++ "version": "5.0.1", ++ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", ++ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", ++ "dependencies": { ++ "is-number": "^7.0.0" ++ }, ++ "engines": { ++ "node": ">=8.0" ++ } ++ }, ++ "node_modules/toidentifier": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", ++ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.6" ++ } ++ }, ++ "node_modules/tough-cookie": { ++ "version": "4.1.3", ++ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", ++ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", ++ "dev": true, ++ "dependencies": { ++ "psl": "^1.1.33", ++ "punycode": "^2.1.1", ++ "universalify": "^0.2.0", ++ "url-parse": "^1.5.3" ++ }, ++ "engines": { ++ "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, ++ "engines": { ++ "node": ">= 4.0.0" ++ } ++ }, ++ "node_modules/tr46": { ++ "version": "0.0.3", ++ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", ++ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", ++ "dev": true, ++ "optional": true ++ }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", +@@ -3863,6 +8769,12 @@ + "strip-bom": "^3.0.0" + } + }, ++ "node_modules/tslib": { ++ "version": "2.6.2", ++ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", ++ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", ++ "dev": true ++ }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", +@@ -3876,6 +8788,15 @@ + "node": ">= 0.8.0" + } + }, ++ "node_modules/type-detect": { ++ "version": "4.0.8", ++ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", ++ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", ++ "dev": true, ++ "engines": { ++ "node": ">=4" ++ } ++ }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", +@@ -3889,6 +8810,28 @@ + "url": "https://github.com/sponsors/sindresorhus" + } + }, ++ "node_modules/type-is": { ++ "version": "1.6.18", ++ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", ++ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", ++ "dev": true, ++ "dependencies": { ++ "media-typer": "0.3.0", ++ "mime-types": "~2.1.24" ++ }, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, ++ "node_modules/type-is/node_modules/media-typer": { ++ "version": "0.3.0", ++ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", ++ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.6" ++ } ++ }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", +@@ -3966,12 +8909,48 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "node_modules/typedarray": { ++ "version": "0.0.6", ++ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", ++ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", ++ "dev": true ++ }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true + }, ++ "node_modules/uglify-js": { ++ "version": "3.17.4", ++ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", ++ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", ++ "dev": true, ++ "bin": { ++ "uglifyjs": "bin/uglifyjs" ++ }, ++ "engines": { ++ "node": ">=0.8.0" ++ } ++ }, ++ "node_modules/uid-safe": { ++ "version": "2.1.5", ++ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", ++ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", ++ "dev": true, ++ "dependencies": { ++ "random-bytes": "~1.0.0" ++ }, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/uid2": { ++ "version": "0.0.4", ++ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz", ++ "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==", ++ "dev": true ++ }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", +@@ -3994,6 +8973,64 @@ + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, ++ "node_modules/unicode-canonical-property-names-ecmascript": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", ++ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", ++ "dev": true, ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/unicode-match-property-ecmascript": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", ++ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", ++ "dev": true, ++ "dependencies": { ++ "unicode-canonical-property-names-ecmascript": "^2.0.0", ++ "unicode-property-aliases-ecmascript": "^2.0.0" ++ }, ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/unicode-match-property-value-ecmascript": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", ++ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", ++ "dev": true, ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/unicode-property-aliases-ecmascript": { ++ "version": "2.1.0", ++ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", ++ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", ++ "dev": true, ++ "engines": { ++ "node": ">=4" ++ } ++ }, ++ "node_modules/universalify": { ++ "version": "2.0.1", ++ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", ++ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", ++ "dev": true, ++ "engines": { ++ "node": ">= 10.0.0" ++ } ++ }, ++ "node_modules/unpipe": { ++ "version": "1.0.0", ++ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", ++ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", +@@ -4013,7 +9050,6 @@ + "url": "https://github.com/sponsors/ai" + } + ], +- "peer": true, + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" +@@ -4035,6 +9071,67 @@ + "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, ++ "dependencies": { ++ "querystringify": "^2.1.1", ++ "requires-port": "^1.0.0" ++ } ++ }, ++ "node_modules/util-deprecate": { ++ "version": "1.0.2", ++ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", ++ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", ++ "dev": true ++ }, ++ "node_modules/utils-merge": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", ++ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.4.0" ++ } ++ }, ++ "node_modules/uuid": { ++ "version": "9.0.0", ++ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", ++ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", ++ "dev": true, ++ "bin": { ++ "uuid": "dist/bin/uuid" ++ } ++ }, ++ "node_modules/vary": { ++ "version": "1.1.2", ++ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", ++ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", ++ "dev": true, ++ "engines": { ++ "node": ">= 0.8" ++ } ++ }, ++ "node_modules/webidl-conversions": { ++ "version": "3.0.1", ++ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", ++ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", ++ "dev": true, ++ "optional": true ++ }, ++ "node_modules/whatwg-url": { ++ "version": "5.0.0", ++ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", ++ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", ++ "dev": true, ++ "optional": true, ++ "dependencies": { ++ "tr46": "~0.0.3", ++ "webidl-conversions": "^3.0.0" ++ } ++ }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", +@@ -4088,6 +9185,16 @@ + "url": "https://github.com/sponsors/ljharb" + } + }, ++ "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, ++ "optional": true, ++ "dependencies": { ++ "string-width": "^1.0.2 || 2 || 3 || 4" ++ } ++ }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", +@@ -4098,31 +9205,148 @@ + "node": ">=0.10.0" + } + }, ++ "node_modules/workerpool": { ++ "version": "6.2.1", ++ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", ++ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" ++ }, ++ "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==", ++ "dependencies": { ++ "ansi-styles": "^4.0.0", ++ "string-width": "^4.1.0", ++ "strip-ansi": "^6.0.0" ++ }, ++ "engines": { ++ "node": ">=10" ++ }, ++ "funding": { ++ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" ++ } ++ }, + "node_modules/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": "7.5.6", ++ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", ++ "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", ++ "dev": true, ++ "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/xml2js": { ++ "version": "0.6.2", ++ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", ++ "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", ++ "dev": true, ++ "dependencies": { ++ "sax": ">=0.6.0", ++ "xmlbuilder": "~11.0.0" ++ }, ++ "engines": { ++ "node": ">=4.0.0" ++ } ++ }, ++ "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, ++ "engines": { ++ "node": ">=4.0" ++ } ++ }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true + }, ++ "node_modules/xtend": { ++ "version": "4.0.2", ++ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", ++ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", ++ "dev": true, ++ "engines": { ++ "node": ">=0.4" ++ } ++ }, ++ "node_modules/y18n": { ++ "version": "5.0.8", ++ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", ++ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", ++ "engines": { ++ "node": ">=10" ++ } ++ }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", +- "dev": true, +- "peer": true ++ "dev": true ++ }, ++ "node_modules/yargs": { ++ "version": "16.2.0", ++ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", ++ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", ++ "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/yargs-parser": { ++ "version": "20.2.4", ++ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", ++ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", ++ "engines": { ++ "node": ">=10" ++ } ++ }, ++ "node_modules/yargs-unparser": { ++ "version": "2.0.0", ++ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", ++ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", ++ "dependencies": { ++ "camelcase": "^6.0.0", ++ "decamelize": "^4.0.0", ++ "flat": "^5.0.2", ++ "is-plain-obj": "^2.1.0" ++ }, ++ "engines": { ++ "node": ">=10" ++ } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", +- "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" +diff --git a/package.json b/package.json +index 298d084..e4a92a3 100644 +--- a/package.json ++++ b/package.json +@@ -38,12 +38,14 @@ + "mocha": "^10.4.0" + }, + "devDependencies": { +- "@babel/eslint-parser": "^7.21.8", +- "eslint": "^8.41.0", ++ "@babel/eslint-parser": "^7.24.5", ++ "@babel/preset-env": "^7.24.5", ++ "eslint": "^8.57.0", + "eslint-config-prettier": "^8.8.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsdoc": "^44.2.4", ++ "eslint-plugin-mocha": "^10.4.3", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", +@@ -59,7 +61,7 @@ + "extends": "./.eslintrc.yml" + }, + "scripts": { +- "fix": "npx eslint ./src/. && npx eslint ./src/. --fix", ++ "fix": "prettier --plugin-search-dir . --write ./src/. && npx eslint ./src/. --fix", + "lint": "prettier --plugin-search-dir . --check ./src/. && npx eslint ./src/.", + "format": "prettier --plugin-search-dir . --write ./src/.", + "doc": "jsdoc -c jsdoc.json", +diff --git a/src/oauth2.js b/src/oauth2.js +index 9bea803..6b063c6 100644 +--- a/src/oauth2.js ++++ b/src/oauth2.js +@@ -3,26 +3,9 @@ module.exports = function (RED) { + + const axios = require('axios'); + const { URL } = require('url'); +- const crypto = require('crypto'); + const http = require('http'); + const https = require('https'); + +- /** +- * Replaces circular references in an object to allow safe stringification. +- * +- * @returns {Function} A replacer function for JSON.stringify. +- */ +- const getCircularReplacer = () => { +- const seen = new WeakSet(); +- return (key, value) => { +- if (typeof value === 'object' && value !== null) { +- if (seen.has(value)) return; +- seen.add(value); +- } +- return value; +- }; +- }; +- + /** + * Class representing an OAuth2 Node. + */ +@@ -76,7 +59,6 @@ module.exports = function (RED) { + this.configureProxy(); // Configure proxy settings + // console.log('Configured proxy settings:', this.proxy); + +- + delete msg.oauth2Request; // Remove oauth2Request from msg + options.form = this.cleanForm(options.form); // Clean the form data + +@@ -105,7 +87,7 @@ module.exports = function (RED) { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json' + }; +- ++ + // Set options based on grant type + if (msg.oauth2Request) { + const creds = msg.oauth2Request.credentials; +@@ -115,21 +97,21 @@ module.exports = function (RED) { + resource: creds.resource || this.resource, + state: creds.state || this.state + }; +- ++ + if (creds.grant_type === 'password') { + form.username = creds.username || this.username; + form.password = creds.password || this.password; + } else if (creds.grant_type === 'refresh_token') { + form.refresh_token = creds.refresh_token; + } +- ++ + if (this.client_credentials_in_body) { + form.client_id = creds.client_id || this.client_id; + form.client_secret = creds.client_secret || this.client_secret; + } else { + headers.Authorization = 'Basic ' + Buffer.from(`${creds.client_id}:${creds.client_secret}`).toString('base64'); + } +- ++ + url = msg.oauth2Request.access_token_url || this.access_token_url; + } else { + form = { +@@ -138,7 +120,7 @@ module.exports = function (RED) { + resource: this.resource, + state: this.state + }; +- ++ + if (this.grant_type === 'password') { + form.username = this.username; + form.password = this.password; +@@ -158,7 +140,7 @@ module.exports = function (RED) { + form.redirect_uri = this.redirect_uri; + } + } +- ++ + if (this.client_credentials_in_body) { + form.client_id = this.client_id; + form.client_secret = this.client_secret; +@@ -166,7 +148,7 @@ module.exports = function (RED) { + headers.Authorization = 'Basic ' + Buffer.from(`${this.client_id}:${this.client_secret}`).toString('base64'); + } + } +- ++ + return { + method: 'POST', + url: url, +@@ -175,7 +157,7 @@ module.exports = function (RED) { + form: form + }; + } +- ++ + /** + * Configures proxy settings. + */ +@@ -207,12 +189,22 @@ module.exports = function (RED) { + * @returns {Promise} - The response from the request. + */ + async makePostRequest(options) { +- return axios.post(options.url, options.form, { ++ const axiosOptions = { ++ method: options.method, ++ url: options.url, + headers: options.headers, +- proxy: this.proxy, +- httpAgent: new http.Agent({ rejectUnauthorized: this.rejectUnauthorized }), +- httpsAgent: new https.Agent({ rejectUnauthorized: this.rejectUnauthorized }) +- }); ++ data: new URLSearchParams(options.form).toString(), ++ proxy: false, ++ httpAgent: new http.Agent({ rejectUnauthorized: options.rejectUnauthorized }), ++ httpsAgent: new https.Agent({ rejectUnauthorized: options.rejectUnauthorized }) ++ }; ++ ++ if (this.proxy) { ++ const HttpsProxyAgent = require('https-proxy-agent'); ++ axiosOptions.httpsAgent = new HttpsProxyAgent(this.proxy); ++ } ++ ++ return axios(axiosOptions); + } + + /** +@@ -223,6 +215,7 @@ module.exports = function (RED) { + */ + handleResponse(response, msg, send) { + msg.oauth2Response = response.data || {}; ++ msg.headers = response.headers || {}; // Include headers in the message + this.setStatus('green', `HTTP ${response.status}, ok`); + send(msg); + } +@@ -243,7 +236,7 @@ module.exports = function (RED) { + send([null, msg]); + } + } +- ++ + /** + * Sets the status of the node. + * @param {string} color - The color of the status indicator. +diff --git a/test/oauth2_spec.js b/test/oauth2_spec.js +index 8d40067..012ee33 100644 +--- a/test/oauth2_spec.js ++++ b/test/oauth2_spec.js +@@ -1,35 +1,34 @@ +-/* eslint-disable no-unused-vars */ + const should = require('should'); // eslint-disable-line no-unused-vars +-/* eslint-enable no-unused-vars */const helper = require('node-red-node-test-helper'); ++const helper = require('node-red-node-test-helper'); + const nock = require('nock'); + const oauth2Node = require('../src/oauth2.js'); + + helper.init(require.resolve('node-red')); + + describe('OAuth2 Node', function () { +- this.timeout(10000); // Increase timeout to 10000ms for more room ++ this.timeout(5000); // Increase timeout to 10000ms for more room + +- before(function(done) { ++ before(function (done) { + console.log('Starting Node-RED server...'); + helper.startServer(done); + }); + +- after(function(done) { ++ after(function (done) { + console.log('Stopping Node-RED server...'); + helper.stopServer(done); + }); + +- afterEach(function(done) { ++ afterEach(function (done) { + console.log('Unloading flows...'); +- helper.unload().then(function() { ++ helper.unload().then(function () { + done(); + }); + }); + +- it('should be loaded', function(done) { ++ it('should be loaded', function (done) { + console.log('Testing if node loads correctly...'); + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; +- helper.load(oauth2Node, flow, function() { ++ helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + try { + n1.should.have.property('name', 'oauth2'); +@@ -42,7 +41,7 @@ describe('OAuth2 Node', function () { + }); + }); + +- it('should handle input and make POST request', function(done) { ++ it('should handle input and make POST request', function (done) { + console.log('Testing input handling and POST request...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, +@@ -53,16 +52,14 @@ describe('OAuth2 Node', function () { + clientSecret: 'testClientSecret' + }; + +- helper.load(oauth2Node, flow, credentials, function() { ++ helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); +- const scope = nock('https://example.com') +- .post('/oauth2/token') +- .reply(200, { access_token: 'mocked_access_token' }); ++ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + +- n2.on('input', function(msg) { ++ n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); +@@ -90,7 +87,7 @@ describe('OAuth2 Node', function () { + }); + }); + +- it('should handle errors', function(done) { ++ it('should handle errors', function (done) { + console.log('Testing error handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, +@@ -101,16 +98,14 @@ describe('OAuth2 Node', function () { + clientSecret: 'testClientSecret' + }; + +- helper.load(oauth2Node, flow, credentials, function() { ++ helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for invalid-url.com...'); +- const scope = nock('https://invalid-url.com') +- .post('/') +- .replyWithError('mocked error'); ++ const scope = nock('https://invalid-url.com').post('/').replyWithError('mocked error'); + +- n3.on('input', function(msg) { ++ n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); +@@ -136,4 +131,338 @@ describe('OAuth2 Node', function () { + }); + }); + }); ++ ++ it('should handle invalid client credentials', function (done) { ++ console.log('Testing invalid client credentials handling...'); ++ const flow = [ ++ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, ++ { id: 'n3', type: 'helper' } ++ ]; ++ const credentials = { ++ clientId: 'invalidClientId', ++ clientSecret: 'invalidClientSecret' ++ }; ++ ++ helper.load(oauth2Node, flow, credentials, function () { ++ const n1 = helper.getNode('n1'); ++ const n3 = helper.getNode('n3'); ++ ++ console.log('Setting up nock for example.com...'); ++ const scope = nock('https://example.com').post('/oauth2/token').reply(401, { error: 'invalid_client' }); ++ ++ n3.on('input', function (msg) { ++ console.log('Received input on error helper node'); ++ try { ++ msg.should.have.property('oauth2Error'); ++ msg.oauth2Error.should.have.property('status', 401); ++ msg.oauth2Error.data.should.have.property('error', 'invalid_client'); ++ scope.done(); // Verify if the nock interceptor was called ++ done(); ++ } catch (err) { ++ console.error('Failed invalid client credentials handling test', err); ++ done(err); ++ } ++ }); ++ ++ console.log('Sending input to node...'); ++ n1.receive({ ++ oauth2Request: { ++ access_token_url: 'https://example.com/oauth2/token', ++ credentials: { ++ grant_type: 'client_credentials', ++ client_id: 'invalidClientId', ++ client_secret: 'invalidClientSecret', ++ scope: 'testScope' ++ } ++ } ++ }); ++ }); ++ }); ++ ++ it('should handle authorization_code grant type', function (done) { ++ console.log('Testing authorization_code grant type handling...'); ++ const flow = [ ++ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, ++ { id: 'n2', type: 'helper' } ++ ]; ++ const credentials = { ++ clientId: 'testClientId', ++ clientSecret: 'testClientSecret' ++ }; ++ ++ helper.load(oauth2Node, flow, credentials, function () { ++ const n1 = helper.getNode('n1'); ++ const n2 = helper.getNode('n2'); ++ ++ console.log('Setting up nock for example.com...'); ++ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { ++ access_token: 'mocked_access_token', ++ refresh_token: 'mocked_refresh_token' ++ }); ++ ++ n2.on('input', function (msg) { ++ console.log('Received input on helper node'); ++ try { ++ msg.should.have.property('oauth2Response'); ++ msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); ++ msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); ++ scope.done(); // Verify if the nock interceptor was called ++ done(); ++ } catch (err) { ++ console.error('Failed authorization_code grant type handling test', err); ++ done(err); ++ } ++ }); ++ ++ console.log('Sending input to node...'); ++ n1.receive({ ++ oauth2Request: { ++ access_token_url: 'https://example.com/oauth2/token', ++ credentials: { ++ grant_type: 'authorization_code', ++ code: 'testAuthorizationCode', ++ redirect_uri: 'https://example.com/redirect', ++ client_id: 'testClientId', ++ client_secret: 'testClientSecret' ++ } ++ } ++ }); ++ }); ++ }); ++ ++ it('should handle refresh_token grant type', function (done) { ++ console.log('Testing refresh_token grant type handling...'); ++ const flow = [ ++ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, ++ { id: 'n2', type: 'helper' } ++ ]; ++ const credentials = { ++ clientId: 'testClientId', ++ clientSecret: 'testClientSecret' ++ }; ++ ++ helper.load(oauth2Node, flow, credentials, function () { ++ const n1 = helper.getNode('n1'); ++ const n2 = helper.getNode('n2'); ++ ++ console.log('Setting up nock for example.com...'); ++ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'new_mocked_access_token' }); ++ ++ n2.on('input', function (msg) { ++ console.log('Received input on helper node'); ++ try { ++ msg.should.have.property('oauth2Response'); ++ msg.oauth2Response.should.have.property('access_token', 'new_mocked_access_token'); ++ scope.done(); // Verify if the nock interceptor was called ++ done(); ++ } catch (err) { ++ console.error('Failed refresh_token grant type handling test', err); ++ done(err); ++ } ++ }); ++ ++ console.log('Sending input to node...'); ++ n1.receive({ ++ oauth2Request: { ++ access_token_url: 'https://example.com/oauth2/token', ++ credentials: { ++ grant_type: 'refresh_token', ++ refresh_token: 'testRefreshToken', ++ client_id: 'testClientId', ++ client_secret: 'testClientSecret' ++ } ++ } ++ }); ++ }); ++ }); ++ ++ it('should handle network failure', function (done) { ++ console.log('Testing network failure handling...'); ++ const flow = [ ++ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, ++ { id: 'n3', type: 'helper' } ++ ]; ++ const credentials = { ++ clientId: 'testClientId', ++ clientSecret: 'testClientSecret' ++ }; ++ ++ helper.load(oauth2Node, flow, credentials, function () { ++ const n1 = helper.getNode('n1'); ++ const n3 = helper.getNode('n3'); ++ ++ console.log('Setting up nock for example.com...'); ++ const scope = nock('https://example.com').post('/oauth2/token').replyWithError('Network error'); ++ ++ n3.on('input', function (msg) { ++ console.log('Received input on error helper node'); ++ try { ++ msg.should.have.property('oauth2Error'); ++ msg.oauth2Error.should.have.property('message', 'Network error'); ++ scope.done(); // Verify if the nock interceptor was called ++ done(); ++ } catch (err) { ++ console.error('Failed network failure handling test', err); ++ done(err); ++ } ++ }); ++ ++ console.log('Sending input to node...'); ++ n1.receive({ ++ oauth2Request: { ++ access_token_url: 'https://example.com/oauth2/token', ++ credentials: { ++ grant_type: 'client_credentials', ++ client_id: 'testClientId', ++ client_secret: 'testClientSecret', ++ scope: 'testScope' ++ } ++ } ++ }); ++ }); ++ }); ++ ++ it('should handle custom headers in response', function (done) { ++ console.log('Testing custom headers handling...'); ++ const flow = [ ++ { ++ id: 'n1', ++ type: 'oauth2', ++ name: 'test name', ++ wires: [['n2']], ++ access_token_url: 'https://example.com/oauth2/token', ++ headers: { 'X-Custom-Header': 'CustomValue' } ++ }, ++ { id: 'n2', type: 'helper' } ++ ]; ++ ++ helper.load(oauth2Node, flow, function () { ++ const n1 = helper.getNode('n1'); ++ const n2 = helper.getNode('n2'); ++ ++ console.log('Setting up nock for example.com...'); ++ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }, { 'x-custom-header': 'CustomValue' }); ++ ++ n2.on('input', function (msg) { ++ console.log('Received input on helper node'); ++ try { ++ msg.should.have.property('headers'); ++ msg.headers.should.have.property('x-custom-header', 'CustomValue'); ++ scope.done(); ++ done(); ++ } catch (err) { ++ console.error('Failed custom headers handling test', err); ++ done(err); ++ } ++ }); ++ ++ console.log('Sending input to node...'); ++ n1.receive({ ++ oauth2Request: { ++ access_token_url: 'https://example.com/oauth2/token', ++ credentials: { ++ grant_type: 'client_credentials', ++ client_id: 'testClientId', ++ client_secret: 'testClientSecret' ++ } ++ } ++ }); ++ }); ++ }); ++ ++ it('should handle multiple scopes', function (done) { ++ console.log('Testing multiple scopes handling...'); ++ const flow = [ ++ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, ++ { id: 'n2', type: 'helper' } ++ ]; ++ const credentials = { ++ clientId: 'testClientId', ++ clientSecret: 'testClientSecret' ++ }; ++ ++ helper.load(oauth2Node, flow, credentials, function () { ++ const n1 = helper.getNode('n1'); ++ const n2 = helper.getNode('n2'); ++ ++ console.log('Setting up nock for example.com...'); ++ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); ++ ++ n2.on('input', function (msg) { ++ console.log('Received input on helper node'); ++ try { ++ msg.should.have.property('oauth2Response'); ++ msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); ++ scope.done(); // Verify if the nock interceptor was called ++ done(); ++ } catch (err) { ++ console.error('Failed multiple scopes handling test', err); ++ done(err); ++ } ++ }); ++ ++ console.log('Sending input to node...'); ++ n1.receive({ ++ oauth2Request: { ++ access_token_url: 'https://example.com/oauth2/token', ++ credentials: { ++ grant_type: 'client_credentials', ++ client_id: 'testClientId', ++ client_secret: 'testClientSecret', ++ scope: 'scope1 scope2' ++ } ++ } ++ }); ++ }); ++ }); ++ it('should handle proxy settings', function (done) { ++ console.log('Testing proxy settings handling...'); ++ const flow = [ ++ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], access_token_url: 'https://example.com/oauth2/token' }, ++ { id: 'n2', type: 'helper' } ++ ]; ++ const credentials = { ++ clientId: 'testClientId', ++ clientSecret: 'testClientSecret' ++ }; ++ const proxySettings = { ++ prox: 'http://proxy.example.com:8080' ++ }; ++ ++ helper.load(oauth2Node, flow, credentials, function () { ++ const n1 = helper.getNode('n1'); ++ const n2 = helper.getNode('n2'); ++ ++ n1.prox = proxySettings.prox; ++ ++ console.log('Setting up nock for example.com...'); ++ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); ++ ++ n2.on('input', function (msg) { ++ console.log('Received input on helper node'); ++ try { ++ msg.should.have.property('oauth2Response'); ++ msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); ++ scope.done(); ++ done(); ++ } catch (err) { ++ console.error('Failed proxy settings handling test', err); ++ done(err); ++ } ++ }); ++ ++ console.log('Sending input to node...'); ++ n1.receive({ ++ oauth2Request: { ++ access_token_url: 'https://example.com/oauth2/token', ++ credentials: { ++ grant_type: 'client_credentials', ++ client_id: 'testClientId', ++ client_secret: 'testClientSecret', ++ scope: 'testScope' ++ } ++ } ++ }); ++ }); ++ }); + }); +diff --git a/yarn.lock b/yarn.lock +index 842e60f..5bf38fe 100644 +--- a/yarn.lock ++++ b/yarn.lock +@@ -18,12 +18,12 @@ + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + +-"@babel/compat-data@^7.23.5": ++"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== + +-"@babel/core@^7.0.0", "@babel/core@^7.11.0": ++"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" + integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== +@@ -44,7 +44,7 @@ + json5 "^2.2.3" + semver "^6.3.1" + +-"@babel/eslint-parser@^7.21.8": ++"@babel/eslint-parser@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz" + integrity sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ== +@@ -63,7 +63,21 @@ + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +-"@babel/helper-compilation-targets@^7.23.6": ++"@babel/helper-annotate-as-pure@^7.22.5": ++ 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== ++ dependencies: ++ "@babel/types" "^7.22.5" ++ ++"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": ++ version "7.22.15" ++ resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz" ++ integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== ++ dependencies: ++ "@babel/types" "^7.22.15" ++ ++"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== +@@ -74,6 +88,41 @@ + lru-cache "^5.1.1" + semver "^6.3.1" + ++"@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4", "@babel/helper-create-class-features-plugin@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz" ++ integrity sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g== ++ dependencies: ++ "@babel/helper-annotate-as-pure" "^7.22.5" ++ "@babel/helper-environment-visitor" "^7.22.20" ++ "@babel/helper-function-name" "^7.23.0" ++ "@babel/helper-member-expression-to-functions" "^7.24.5" ++ "@babel/helper-optimise-call-expression" "^7.22.5" ++ "@babel/helper-replace-supers" "^7.24.1" ++ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" ++ "@babel/helper-split-export-declaration" "^7.24.5" ++ semver "^6.3.1" ++ ++"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": ++ version "7.22.15" ++ resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz" ++ integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== ++ dependencies: ++ "@babel/helper-annotate-as-pure" "^7.22.5" ++ regexpu-core "^5.3.1" ++ semver "^6.3.1" ++ ++"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": ++ version "0.6.2" ++ resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" ++ integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== ++ dependencies: ++ "@babel/helper-compilation-targets" "^7.22.6" ++ "@babel/helper-plugin-utils" "^7.22.5" ++ debug "^4.1.1" ++ lodash.debounce "^4.0.8" ++ resolve "^1.14.2" ++ + "@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" +@@ -94,14 +143,21 @@ + dependencies: + "@babel/types" "^7.22.5" + +-"@babel/helper-module-imports@^7.24.3": ++"@babel/helper-member-expression-to-functions@^7.23.0", "@babel/helper-member-expression-to-functions@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz" ++ integrity sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA== ++ dependencies: ++ "@babel/types" "^7.24.5" ++ ++"@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" + +-"@babel/helper-module-transforms@^7.24.5": ++"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz" + integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== +@@ -112,13 +168,50 @@ + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/helper-validator-identifier" "^7.24.5" + +-"@babel/helper-simple-access@^7.24.5": ++"@babel/helper-optimise-call-expression@^7.22.5": ++ version "7.22.5" ++ resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" ++ integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== ++ dependencies: ++ "@babel/types" "^7.22.5" ++ ++"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz" ++ integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== ++ ++"@babel/helper-remap-async-to-generator@^7.22.20": ++ version "7.22.20" ++ resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz" ++ integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== ++ dependencies: ++ "@babel/helper-annotate-as-pure" "^7.22.5" ++ "@babel/helper-environment-visitor" "^7.22.20" ++ "@babel/helper-wrap-function" "^7.22.20" ++ ++"@babel/helper-replace-supers@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz" ++ integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== ++ dependencies: ++ "@babel/helper-environment-visitor" "^7.22.20" ++ "@babel/helper-member-expression-to-functions" "^7.23.0" ++ "@babel/helper-optimise-call-expression" "^7.22.5" ++ ++"@babel/helper-simple-access@^7.22.5", "@babel/helper-simple-access@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz" + integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== + dependencies: + "@babel/types" "^7.24.5" + ++"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": ++ version "7.22.5" ++ resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" ++ integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== ++ dependencies: ++ "@babel/types" "^7.22.5" ++ + "@babel/helper-split-export-declaration@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz" +@@ -131,7 +224,7 @@ + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + +-"@babel/helper-validator-identifier@^7.24.5": ++"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz" + integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== +@@ -141,6 +234,15 @@ + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + ++"@babel/helper-wrap-function@^7.22.20": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz" ++ integrity sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw== ++ dependencies: ++ "@babel/helper-function-name" "^7.23.0" ++ "@babel/template" "^7.24.0" ++ "@babel/types" "^7.24.5" ++ + "@babel/helpers@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz" +@@ -165,6 +267,665 @@ + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz" + integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== + ++"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz" ++ integrity sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw== ++ dependencies: ++ "@babel/helper-environment-visitor" "^7.22.20" ++ "@babel/helper-plugin-utils" "^7.24.5" ++ ++"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz" ++ integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz" ++ integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" ++ "@babel/plugin-transform-optional-chaining" "^7.24.1" ++ ++"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz" ++ integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== ++ dependencies: ++ "@babel/helper-environment-visitor" "^7.22.20" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": ++ 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== ++ ++"@babel/plugin-syntax-async-generators@^7.8.4": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.0" ++ ++"@babel/plugin-syntax-class-properties@^7.12.13": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.12.13" ++ ++"@babel/plugin-syntax-class-static-block@^7.14.5": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.14.5" ++ ++"@babel/plugin-syntax-dynamic-import@^7.8.3": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.0" ++ ++"@babel/plugin-syntax-export-namespace-from@^7.8.3": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.3" ++ ++"@babel/plugin-syntax-import-assertions@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz" ++ integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-syntax-import-attributes@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz" ++ integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-syntax-import-meta@^7.10.4": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.10.4" ++ ++"@babel/plugin-syntax-json-strings@^7.8.3": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.0" ++ ++"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.10.4" ++ ++"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.0" ++ ++"@babel/plugin-syntax-numeric-separator@^7.10.4": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.10.4" ++ ++"@babel/plugin-syntax-object-rest-spread@^7.8.3": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.0" ++ ++"@babel/plugin-syntax-optional-catch-binding@^7.8.3": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.0" ++ ++"@babel/plugin-syntax-optional-chaining@^7.8.3": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.8.0" ++ ++"@babel/plugin-syntax-private-property-in-object@^7.14.5": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.14.5" ++ ++"@babel/plugin-syntax-top-level-await@^7.14.5": ++ 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== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.14.5" ++ ++"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": ++ 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== ++ dependencies: ++ "@babel/helper-create-regexp-features-plugin" "^7.18.6" ++ "@babel/helper-plugin-utils" "^7.18.6" ++ ++"@babel/plugin-transform-arrow-functions@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz" ++ integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-async-generator-functions@^7.24.3": ++ version "7.24.3" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz" ++ integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== ++ dependencies: ++ "@babel/helper-environment-visitor" "^7.22.20" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-remap-async-to-generator" "^7.22.20" ++ "@babel/plugin-syntax-async-generators" "^7.8.4" ++ ++"@babel/plugin-transform-async-to-generator@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz" ++ integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== ++ dependencies: ++ "@babel/helper-module-imports" "^7.24.1" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-remap-async-to-generator" "^7.22.20" ++ ++"@babel/plugin-transform-block-scoped-functions@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz" ++ integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-block-scoping@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz" ++ integrity sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.5" ++ ++"@babel/plugin-transform-class-properties@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz" ++ integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== ++ dependencies: ++ "@babel/helper-create-class-features-plugin" "^7.24.1" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-class-static-block@^7.24.4": ++ version "7.24.4" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz" ++ integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== ++ dependencies: ++ "@babel/helper-create-class-features-plugin" "^7.24.4" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-class-static-block" "^7.14.5" ++ ++"@babel/plugin-transform-classes@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz" ++ integrity sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q== ++ dependencies: ++ "@babel/helper-annotate-as-pure" "^7.22.5" ++ "@babel/helper-compilation-targets" "^7.23.6" ++ "@babel/helper-environment-visitor" "^7.22.20" ++ "@babel/helper-function-name" "^7.23.0" ++ "@babel/helper-plugin-utils" "^7.24.5" ++ "@babel/helper-replace-supers" "^7.24.1" ++ "@babel/helper-split-export-declaration" "^7.24.5" ++ globals "^11.1.0" ++ ++"@babel/plugin-transform-computed-properties@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz" ++ integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/template" "^7.24.0" ++ ++"@babel/plugin-transform-destructuring@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz" ++ integrity sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.5" ++ ++"@babel/plugin-transform-dotall-regex@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz" ++ integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== ++ dependencies: ++ "@babel/helper-create-regexp-features-plugin" "^7.22.15" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-duplicate-keys@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz" ++ integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-dynamic-import@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz" ++ integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-dynamic-import" "^7.8.3" ++ ++"@babel/plugin-transform-exponentiation-operator@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz" ++ integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== ++ dependencies: ++ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-export-namespace-from@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz" ++ integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-export-namespace-from" "^7.8.3" ++ ++"@babel/plugin-transform-for-of@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz" ++ integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" ++ ++"@babel/plugin-transform-function-name@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz" ++ integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== ++ dependencies: ++ "@babel/helper-compilation-targets" "^7.23.6" ++ "@babel/helper-function-name" "^7.23.0" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-json-strings@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz" ++ integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-json-strings" "^7.8.3" ++ ++"@babel/plugin-transform-literals@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz" ++ integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-logical-assignment-operators@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz" ++ integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" ++ ++"@babel/plugin-transform-member-expression-literals@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz" ++ integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-modules-amd@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz" ++ integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== ++ dependencies: ++ "@babel/helper-module-transforms" "^7.23.3" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-modules-commonjs@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz" ++ integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== ++ dependencies: ++ "@babel/helper-module-transforms" "^7.23.3" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-simple-access" "^7.22.5" ++ ++"@babel/plugin-transform-modules-systemjs@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz" ++ integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== ++ dependencies: ++ "@babel/helper-hoist-variables" "^7.22.5" ++ "@babel/helper-module-transforms" "^7.23.3" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-validator-identifier" "^7.22.20" ++ ++"@babel/plugin-transform-modules-umd@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz" ++ integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== ++ dependencies: ++ "@babel/helper-module-transforms" "^7.23.3" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": ++ version "7.22.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz" ++ integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== ++ dependencies: ++ "@babel/helper-create-regexp-features-plugin" "^7.22.5" ++ "@babel/helper-plugin-utils" "^7.22.5" ++ ++"@babel/plugin-transform-new-target@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz" ++ integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz" ++ integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" ++ ++"@babel/plugin-transform-numeric-separator@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz" ++ integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-numeric-separator" "^7.10.4" ++ ++"@babel/plugin-transform-object-rest-spread@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz" ++ integrity sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA== ++ dependencies: ++ "@babel/helper-compilation-targets" "^7.23.6" ++ "@babel/helper-plugin-utils" "^7.24.5" ++ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" ++ "@babel/plugin-transform-parameters" "^7.24.5" ++ ++"@babel/plugin-transform-object-super@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz" ++ integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-replace-supers" "^7.24.1" ++ ++"@babel/plugin-transform-optional-catch-binding@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz" ++ integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" ++ ++"@babel/plugin-transform-optional-chaining@^7.24.1", "@babel/plugin-transform-optional-chaining@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz" ++ integrity sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.5" ++ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" ++ "@babel/plugin-syntax-optional-chaining" "^7.8.3" ++ ++"@babel/plugin-transform-parameters@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz" ++ integrity sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.5" ++ ++"@babel/plugin-transform-private-methods@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz" ++ integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== ++ dependencies: ++ "@babel/helper-create-class-features-plugin" "^7.24.1" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-private-property-in-object@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz" ++ integrity sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ== ++ dependencies: ++ "@babel/helper-annotate-as-pure" "^7.22.5" ++ "@babel/helper-create-class-features-plugin" "^7.24.5" ++ "@babel/helper-plugin-utils" "^7.24.5" ++ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" ++ ++"@babel/plugin-transform-property-literals@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz" ++ integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-regenerator@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz" ++ integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ regenerator-transform "^0.15.2" ++ ++"@babel/plugin-transform-reserved-words@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz" ++ integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-shorthand-properties@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz" ++ integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-spread@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz" ++ integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" ++ ++"@babel/plugin-transform-sticky-regex@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz" ++ integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-template-literals@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz" ++ integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-typeof-symbol@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz" ++ integrity sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.5" ++ ++"@babel/plugin-transform-unicode-escapes@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz" ++ integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-unicode-property-regex@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz" ++ integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== ++ dependencies: ++ "@babel/helper-create-regexp-features-plugin" "^7.22.15" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-unicode-regex@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz" ++ integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== ++ dependencies: ++ "@babel/helper-create-regexp-features-plugin" "^7.22.15" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/plugin-transform-unicode-sets-regex@^7.24.1": ++ version "7.24.1" ++ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz" ++ integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== ++ dependencies: ++ "@babel/helper-create-regexp-features-plugin" "^7.22.15" ++ "@babel/helper-plugin-utils" "^7.24.0" ++ ++"@babel/preset-env@^7.24.5": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz" ++ integrity sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ== ++ dependencies: ++ "@babel/compat-data" "^7.24.4" ++ "@babel/helper-compilation-targets" "^7.23.6" ++ "@babel/helper-plugin-utils" "^7.24.5" ++ "@babel/helper-validator-option" "^7.23.5" ++ "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.5" ++ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" ++ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" ++ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" ++ "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" ++ "@babel/plugin-syntax-async-generators" "^7.8.4" ++ "@babel/plugin-syntax-class-properties" "^7.12.13" ++ "@babel/plugin-syntax-class-static-block" "^7.14.5" ++ "@babel/plugin-syntax-dynamic-import" "^7.8.3" ++ "@babel/plugin-syntax-export-namespace-from" "^7.8.3" ++ "@babel/plugin-syntax-import-assertions" "^7.24.1" ++ "@babel/plugin-syntax-import-attributes" "^7.24.1" ++ "@babel/plugin-syntax-import-meta" "^7.10.4" ++ "@babel/plugin-syntax-json-strings" "^7.8.3" ++ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" ++ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" ++ "@babel/plugin-syntax-numeric-separator" "^7.10.4" ++ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" ++ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" ++ "@babel/plugin-syntax-optional-chaining" "^7.8.3" ++ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" ++ "@babel/plugin-syntax-top-level-await" "^7.14.5" ++ "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" ++ "@babel/plugin-transform-arrow-functions" "^7.24.1" ++ "@babel/plugin-transform-async-generator-functions" "^7.24.3" ++ "@babel/plugin-transform-async-to-generator" "^7.24.1" ++ "@babel/plugin-transform-block-scoped-functions" "^7.24.1" ++ "@babel/plugin-transform-block-scoping" "^7.24.5" ++ "@babel/plugin-transform-class-properties" "^7.24.1" ++ "@babel/plugin-transform-class-static-block" "^7.24.4" ++ "@babel/plugin-transform-classes" "^7.24.5" ++ "@babel/plugin-transform-computed-properties" "^7.24.1" ++ "@babel/plugin-transform-destructuring" "^7.24.5" ++ "@babel/plugin-transform-dotall-regex" "^7.24.1" ++ "@babel/plugin-transform-duplicate-keys" "^7.24.1" ++ "@babel/plugin-transform-dynamic-import" "^7.24.1" ++ "@babel/plugin-transform-exponentiation-operator" "^7.24.1" ++ "@babel/plugin-transform-export-namespace-from" "^7.24.1" ++ "@babel/plugin-transform-for-of" "^7.24.1" ++ "@babel/plugin-transform-function-name" "^7.24.1" ++ "@babel/plugin-transform-json-strings" "^7.24.1" ++ "@babel/plugin-transform-literals" "^7.24.1" ++ "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" ++ "@babel/plugin-transform-member-expression-literals" "^7.24.1" ++ "@babel/plugin-transform-modules-amd" "^7.24.1" ++ "@babel/plugin-transform-modules-commonjs" "^7.24.1" ++ "@babel/plugin-transform-modules-systemjs" "^7.24.1" ++ "@babel/plugin-transform-modules-umd" "^7.24.1" ++ "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" ++ "@babel/plugin-transform-new-target" "^7.24.1" ++ "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" ++ "@babel/plugin-transform-numeric-separator" "^7.24.1" ++ "@babel/plugin-transform-object-rest-spread" "^7.24.5" ++ "@babel/plugin-transform-object-super" "^7.24.1" ++ "@babel/plugin-transform-optional-catch-binding" "^7.24.1" ++ "@babel/plugin-transform-optional-chaining" "^7.24.5" ++ "@babel/plugin-transform-parameters" "^7.24.5" ++ "@babel/plugin-transform-private-methods" "^7.24.1" ++ "@babel/plugin-transform-private-property-in-object" "^7.24.5" ++ "@babel/plugin-transform-property-literals" "^7.24.1" ++ "@babel/plugin-transform-regenerator" "^7.24.1" ++ "@babel/plugin-transform-reserved-words" "^7.24.1" ++ "@babel/plugin-transform-shorthand-properties" "^7.24.1" ++ "@babel/plugin-transform-spread" "^7.24.1" ++ "@babel/plugin-transform-sticky-regex" "^7.24.1" ++ "@babel/plugin-transform-template-literals" "^7.24.1" ++ "@babel/plugin-transform-typeof-symbol" "^7.24.5" ++ "@babel/plugin-transform-unicode-escapes" "^7.24.1" ++ "@babel/plugin-transform-unicode-property-regex" "^7.24.1" ++ "@babel/plugin-transform-unicode-regex" "^7.24.1" ++ "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" ++ "@babel/preset-modules" "0.1.6-no-external-plugins" ++ babel-plugin-polyfill-corejs2 "^0.4.10" ++ babel-plugin-polyfill-corejs3 "^0.10.4" ++ babel-plugin-polyfill-regenerator "^0.6.1" ++ core-js-compat "^3.31.0" ++ semver "^6.3.1" ++ ++"@babel/preset-modules@0.1.6-no-external-plugins": ++ version "0.1.6-no-external-plugins" ++ resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" ++ integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== ++ dependencies: ++ "@babel/helper-plugin-utils" "^7.0.0" ++ "@babel/types" "^7.4.4" ++ esutils "^2.0.2" ++ ++"@babel/regjsgen@^0.8.0": ++ version "0.8.0" ++ resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" ++ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== ++ ++"@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4": ++ version "7.24.5" ++ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz" ++ integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== ++ dependencies: ++ regenerator-runtime "^0.14.0" ++ + "@babel/template@^7.22.15", "@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" +@@ -190,7 +951,7 @@ + debug "^4.3.1" + globals "^11.1.0" + +-"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5": ++"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.4.4": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz" + integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== +@@ -298,6 +1059,21 @@ + dependencies: + lodash "^4.17.21" + ++"@mapbox/node-pre-gyp@^1.0.10", "@mapbox/node-pre-gyp@^1.0.11": ++ version "1.0.11" ++ resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz" ++ integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== ++ dependencies: ++ detect-libc "^2.0.0" ++ https-proxy-agent "^5.0.0" ++ make-dir "^3.1.0" ++ node-fetch "^2.6.7" ++ nopt "^5.0.0" ++ npmlog "^5.0.1" ++ rimraf "^3.0.2" ++ semver "^7.3.5" ++ tar "^6.1.11" ++ + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz" +@@ -305,6 +1081,111 @@ + dependencies: + eslint-scope "5.1.1" + ++"@node-red/editor-api@3.1.9": ++ version "3.1.9" ++ resolved "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz" ++ integrity sha512-HHhFiwxmD8V5+U/xe+Gl9T0oAnwFeA7zisG8VW+Ruh3apGQvV9l5UoL9Yg00jEPDOhL99k/wqcXI42lakEkiKw== ++ dependencies: ++ "@node-red/editor-client" "3.1.9" ++ "@node-red/util" "3.1.9" ++ bcryptjs "2.4.3" ++ body-parser "1.20.2" ++ clone "2.1.2" ++ cors "2.8.5" ++ express "4.19.2" ++ express-session "1.17.3" ++ memorystore "1.6.7" ++ mime "3.0.0" ++ multer "1.4.5-lts.1" ++ mustache "4.2.0" ++ oauth2orize "1.11.1" ++ passport "0.6.0" ++ passport-http-bearer "1.0.1" ++ passport-oauth2-client-password "0.1.2" ++ ws "7.5.6" ++ optionalDependencies: ++ bcrypt "5.1.0" ++ ++"@node-red/editor-client@3.1.9": ++ version "3.1.9" ++ resolved "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.9.tgz" ++ integrity sha512-k8ik9fqcUxwsjEL0bBywNRYoFk7VZxdcoXRKCtcB3H8T/KRgQBDZu4j27dtff/5WPqnvtmXOQBbdDrhluMO0ng== ++ ++"@node-red/nodes@3.1.9": ++ version "3.1.9" ++ resolved "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.9.tgz" ++ integrity sha512-H0ZJjgmc7tbDBExF8WWIab7VJ1PBJxqExc6HWfb5FJQcOyA9mzCXwBduirWGxWAbQzZvq5GLgzy5ECzDJIjbSQ== ++ dependencies: ++ acorn "8.8.2" ++ acorn-walk "8.2.0" ++ ajv "8.12.0" ++ body-parser "1.20.2" ++ cheerio "1.0.0-rc.10" ++ content-type "1.0.5" ++ cookie "0.5.0" ++ cookie-parser "1.4.6" ++ cors "2.8.5" ++ cronosjs "1.7.1" ++ denque "2.1.0" ++ form-data "4.0.0" ++ fs-extra "11.1.1" ++ got "12.6.0" ++ hash-sum "2.0.0" ++ hpagent "1.2.0" ++ https-proxy-agent "5.0.1" ++ iconv-lite "0.6.3" ++ is-utf8 "0.2.1" ++ js-yaml "4.1.0" ++ media-typer "1.1.0" ++ mqtt "4.3.7" ++ multer "1.4.5-lts.1" ++ mustache "4.2.0" ++ node-watch "0.7.4" ++ on-headers "1.0.2" ++ raw-body "2.5.2" ++ tough-cookie "4.1.3" ++ uuid "9.0.0" ++ ws "7.5.6" ++ xml2js "0.6.2" ++ ++"@node-red/registry@3.1.9": ++ version "3.1.9" ++ resolved "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.9.tgz" ++ integrity sha512-lm1jNGO5ebax5kw5A2stOymMVQpuAGJ24M+3bfPYj3djzgBq4qKbNX6EAJLtyLHlCKecAybJoXDNpNcCnl7BXQ== ++ dependencies: ++ "@node-red/util" "3.1.9" ++ clone "2.1.2" ++ fs-extra "11.1.1" ++ semver "7.5.4" ++ tar "6.2.1" ++ uglify-js "3.17.4" ++ ++"@node-red/runtime@3.1.9": ++ version "3.1.9" ++ resolved "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.9.tgz" ++ integrity sha512-tpuHE5gEqLx9OoRjSxsyh683yGCnBlAAwbjkVv5lonqYqLJwE3DCJnMuHYj1lPUDzSc0QzhE9efm+LIhAhBU4g== ++ dependencies: ++ "@node-red/registry" "3.1.9" ++ "@node-red/util" "3.1.9" ++ async-mutex "0.4.0" ++ clone "2.1.2" ++ express "4.19.2" ++ fs-extra "11.1.1" ++ json-stringify-safe "5.0.1" ++ ++"@node-red/util@3.1.9": ++ version "3.1.9" ++ resolved "https://registry.npmjs.org/@node-red/util/-/util-3.1.9.tgz" ++ integrity sha512-BT7mMds8MFrXwgGuNjmk/vY0X621hirLcqAOp5/ZrrFuzPVoK4PDgoNx5igYD/HVQbVcJTHfN1cRopSFPfdF2Q== ++ dependencies: ++ fs-extra "11.1.1" ++ i18next "21.10.0" ++ json-stringify-safe "5.0.1" ++ jsonata "1.8.7" ++ lodash.clonedeep "^4.5.0" ++ moment "2.29.4" ++ moment-timezone "0.5.43" ++ + "@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" +@@ -326,6 +1207,65 @@ + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + ++"@sindresorhus/is@^5.2.0": ++ version "5.6.0" ++ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" ++ integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== ++ ++"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": ++ version "1.8.6" ++ resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" ++ integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== ++ dependencies: ++ type-detect "4.0.8" ++ ++"@sinonjs/commons@^3.0.0": ++ version "3.0.1" ++ resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" ++ integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== ++ dependencies: ++ type-detect "4.0.8" ++ ++"@sinonjs/fake-timers@^11.2.2": ++ version "11.2.2" ++ resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz" ++ integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== ++ dependencies: ++ "@sinonjs/commons" "^3.0.0" ++ ++"@sinonjs/fake-timers@^7.1.2": ++ version "7.1.2" ++ resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz" ++ integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== ++ dependencies: ++ "@sinonjs/commons" "^1.7.0" ++ ++"@sinonjs/samsam@^6.0.2": ++ version "6.1.3" ++ resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz" ++ integrity sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ== ++ dependencies: ++ "@sinonjs/commons" "^1.6.0" ++ lodash.get "^4.4.2" ++ type-detect "^4.0.8" ++ ++"@sinonjs/text-encoding@^0.7.2": ++ version "0.7.2" ++ resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz" ++ integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== ++ ++"@szmarczak/http-timer@^5.0.1": ++ version "5.0.1" ++ resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" ++ integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== ++ dependencies: ++ defer-to-connect "^2.0.1" ++ ++"@types/http-cache-semantics@^4.0.2": ++ version "4.0.4" ++ resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" ++ integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== ++ + "@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" +@@ -354,16 +1294,46 @@ + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + ++abbrev@1: ++ version "1.1.1" ++ resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" ++ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== ++ ++accepts@~1.3.8: ++ 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== ++ dependencies: ++ mime-types "~2.1.34" ++ negotiator "0.6.3" ++ + acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + ++acorn-walk@8.2.0: ++ version "8.2.0" ++ resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" ++ integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== ++ + "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + ++acorn@8.8.2: ++ version "8.8.2" ++ resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" ++ integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== ++ ++agent-base@6: ++ version "6.0.2" ++ resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" ++ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== ++ dependencies: ++ debug "4" ++ + ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" +@@ -374,6 +1344,26 @@ ajv@^6.12.4: + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ++ajv@8.12.0: ++ version "8.12.0" ++ resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" ++ integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== ++ dependencies: ++ fast-deep-equal "^3.1.1" ++ json-schema-traverse "^1.0.0" ++ require-from-string "^2.0.2" ++ uri-js "^4.2.2" ++ ++ansi-colors@^4.1.1, ansi-colors@4.1.1: ++ version "4.1.1" ++ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" ++ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ++ ++ansi-colors@^4.1.3: ++ 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== ++ + ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" +@@ -386,18 +1376,44 @@ ansi-styles@^3.2.1: + dependencies: + color-convert "^1.9.0" + +-ansi-styles@^4.1.0: ++ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + ++anymatch@~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== ++ dependencies: ++ normalize-path "^3.0.0" ++ picomatch "^2.0.4" ++ ++append-field@^1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" ++ integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== ++ ++"aproba@^1.0.3 || ^2.0.0": ++ 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== ++ + are-docs-informative@^0.0.2: + version "0.0.2" + resolved "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz" + integrity sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== + ++are-we-there-yet@^2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" ++ integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== ++ dependencies: ++ delegates "^1.0.0" ++ readable-stream "^3.6.0" ++ + argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" +@@ -411,6 +1427,11 @@ array-buffer-byte-length@^1.0.1: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + ++array-flatten@1.1.1: ++ version "1.1.1" ++ resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" ++ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== ++ + array-includes@^3.1.7: + version "3.1.8" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" +@@ -469,6 +1490,18 @@ arraybuffer.prototype.slice@^1.0.3: + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + ++asap@^2.0.0: ++ version "2.0.6" ++ resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" ++ integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== ++ ++async-mutex@0.4.0: ++ version "0.4.0" ++ resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz" ++ integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== ++ dependencies: ++ tslib "^2.4.0" ++ + asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" +@@ -481,7 +1514,7 @@ available-typed-arrays@^1.0.7: + dependencies: + possible-typed-array-names "^1.0.0" + +-axios@>=1.3.3: ++axios@^1.6.8, axios@>=1.3.3: + version "1.7.1" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz" + integrity sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q== +@@ -490,16 +1523,110 @@ axios@>=1.3.3: + form-data "^4.0.0" + proxy-from-env "^1.1.0" + ++babel-plugin-polyfill-corejs2@^0.4.10: ++ version "0.4.11" ++ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" ++ integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== ++ dependencies: ++ "@babel/compat-data" "^7.22.6" ++ "@babel/helper-define-polyfill-provider" "^0.6.2" ++ semver "^6.3.1" ++ ++babel-plugin-polyfill-corejs3@^0.10.4: ++ version "0.10.4" ++ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz" ++ integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== ++ dependencies: ++ "@babel/helper-define-polyfill-provider" "^0.6.1" ++ core-js-compat "^3.36.1" ++ ++babel-plugin-polyfill-regenerator@^0.6.1: ++ version "0.6.2" ++ resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" ++ integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== ++ dependencies: ++ "@babel/helper-define-polyfill-provider" "^0.6.2" ++ + balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + ++base64-js@^1.3.1: ++ version "1.5.1" ++ resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" ++ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== ++ ++basic-auth@2.0.1: ++ version "2.0.1" ++ resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" ++ integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== ++ dependencies: ++ safe-buffer "5.1.2" ++ ++bcrypt@5.1.0: ++ version "5.1.0" ++ resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz" ++ integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== ++ dependencies: ++ "@mapbox/node-pre-gyp" "^1.0.10" ++ node-addon-api "^5.0.0" ++ ++bcrypt@5.1.1: ++ version "5.1.1" ++ resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz" ++ integrity sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww== ++ dependencies: ++ "@mapbox/node-pre-gyp" "^1.0.11" ++ node-addon-api "^5.0.0" ++ ++bcryptjs@^2.4.3, bcryptjs@2.4.3: ++ version "2.4.3" ++ resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz" ++ integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== ++ ++binary-extensions@^2.0.0: ++ version "2.3.0" ++ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" ++ integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== ++ ++bl@^4.0.2: ++ version "4.1.0" ++ resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" ++ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== ++ dependencies: ++ buffer "^5.5.0" ++ inherits "^2.0.4" ++ readable-stream "^3.4.0" ++ + bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + ++body-parser@^1.20.2, body-parser@1.20.2: ++ version "1.20.2" ++ resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" ++ integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== ++ dependencies: ++ bytes "3.1.2" ++ content-type "~1.0.5" ++ debug "2.6.9" ++ depd "2.0.0" ++ destroy "1.2.0" ++ http-errors "2.0.0" ++ iconv-lite "0.4.24" ++ on-finished "2.4.1" ++ qs "6.11.0" ++ raw-body "2.5.2" ++ type-is "~1.6.18" ++ unpipe "1.0.0" ++ ++boolbase@^1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" ++ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== ++ + brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" +@@ -508,7 +1635,26 @@ brace-expansion@^1.1.7: + balanced-match "^1.0.0" + concat-map "0.0.1" + +-browserslist@^4.22.2, "browserslist@>= 4.21.0": ++brace-expansion@^2.0.1: ++ version "2.0.1" ++ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" ++ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== ++ dependencies: ++ balanced-match "^1.0.0" ++ ++braces@~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== ++ dependencies: ++ fill-range "^7.1.1" ++ ++browser-stdout@1.3.1: ++ version "1.3.1" ++ resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" ++ integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== ++ ++browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": + version "4.23.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== +@@ -518,6 +1664,19 @@ browserslist@^4.22.2, "browserslist@>= 4.21.0": + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + ++buffer-from@^1.0.0: ++ version "1.1.2" ++ resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" ++ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== ++ ++buffer@^5.5.0: ++ version "5.7.1" ++ resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" ++ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== ++ dependencies: ++ base64-js "^1.3.1" ++ ieee754 "^1.1.13" ++ + builtins@^5.0.1: + version "5.1.0" + resolved "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz" +@@ -525,6 +1684,36 @@ builtins@^5.0.1: + dependencies: + semver "^7.0.0" + ++busboy@^1.0.0: ++ version "1.6.0" ++ resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" ++ integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== ++ dependencies: ++ streamsearch "^1.1.0" ++ ++bytes@3.1.2: ++ version "3.1.2" ++ resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" ++ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== ++ ++cacheable-lookup@^7.0.0: ++ version "7.0.0" ++ resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" ++ integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== ++ ++cacheable-request@^10.2.8: ++ version "10.2.14" ++ resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" ++ integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== ++ dependencies: ++ "@types/http-cache-semantics" "^4.0.2" ++ get-stream "^6.0.1" ++ http-cache-semantics "^4.1.1" ++ keyv "^4.5.3" ++ mimic-response "^4.0.0" ++ normalize-url "^8.0.0" ++ responselike "^3.0.0" ++ + call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" +@@ -541,6 +1730,11 @@ callsites@^3.0.0: + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + ++camelcase@^6.0.0: ++ version "6.3.0" ++ resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" ++ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== ++ + caniuse-lite@^1.0.30001587: + version "1.0.30001620" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz" +@@ -562,7 +1756,7 @@ chalk@^2.4.2: + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +-chalk@^4.0.0: ++chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== +@@ -570,6 +1764,71 @@ chalk@^4.0.0: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + ++cheerio-select@^1.5.0: ++ version "1.6.0" ++ resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz" ++ integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== ++ dependencies: ++ css-select "^4.3.0" ++ css-what "^6.0.1" ++ domelementtype "^2.2.0" ++ domhandler "^4.3.1" ++ domutils "^2.8.0" ++ ++cheerio@1.0.0-rc.10: ++ version "1.0.0-rc.10" ++ resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz" ++ integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== ++ dependencies: ++ cheerio-select "^1.5.0" ++ dom-serializer "^1.3.2" ++ domhandler "^4.2.0" ++ htmlparser2 "^6.1.0" ++ parse5 "^6.0.1" ++ parse5-htmlparser2-tree-adapter "^6.0.1" ++ tslib "^2.2.0" ++ ++chokidar@3.5.3: ++ version "3.5.3" ++ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" ++ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== ++ 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" ++ optionalDependencies: ++ fsevents "~2.3.2" ++ ++chownr@^2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" ++ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== ++ ++cli-table@^0.3.11: ++ version "0.3.11" ++ resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz" ++ integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== ++ dependencies: ++ colors "1.0.3" ++ ++cliui@^7.0.2: ++ version "7.0.4" ++ resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" ++ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== ++ dependencies: ++ string-width "^4.2.0" ++ strip-ansi "^6.0.0" ++ wrap-ansi "^7.0.0" ++ ++clone@2.1.2: ++ version "2.1.2" ++ resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" ++ integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== ++ + color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" +@@ -594,6 +1853,16 @@ color-name@1.1.3: + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + ++color-support@^1.1.2: ++ 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== ++ ++colors@1.0.3: ++ version "1.0.3" ++ resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" ++ integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== ++ + combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" +@@ -601,21 +1870,134 @@ combined-stream@^1.0.8: + dependencies: + delayed-stream "~1.0.0" + +-comment-parser@1.3.1: ++comment-parser@1.3.1: ++ version "1.3.1" ++ resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz" ++ integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== ++ ++commist@^1.0.0: ++ version "1.1.0" ++ resolved "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz" ++ integrity sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg== ++ dependencies: ++ leven "^2.1.0" ++ minimist "^1.1.0" ++ ++component-emitter@^1.3.0: + version "1.3.1" +- resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz" +- integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== ++ resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz" ++ integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + + concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + ++concat-stream@^1.5.2: ++ version "1.6.2" ++ resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" ++ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== ++ dependencies: ++ buffer-from "^1.0.0" ++ inherits "^2.0.3" ++ readable-stream "^2.2.2" ++ typedarray "^0.0.6" ++ ++concat-stream@^2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" ++ integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== ++ dependencies: ++ buffer-from "^1.0.0" ++ inherits "^2.0.3" ++ readable-stream "^3.0.2" ++ typedarray "^0.0.6" ++ ++console-control-strings@^1.0.0, console-control-strings@^1.1.0: ++ version "1.1.0" ++ resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" ++ integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== ++ ++content-disposition@0.5.4: ++ version "0.5.4" ++ resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" ++ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== ++ dependencies: ++ safe-buffer "5.2.1" ++ ++content-type@~1.0.4, content-type@~1.0.5, content-type@1.0.5: ++ version "1.0.5" ++ resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" ++ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== ++ + convert-source-map@^2.0.0: + 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== + ++cookie-parser@1.4.6: ++ version "1.4.6" ++ resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz" ++ integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== ++ dependencies: ++ cookie "0.4.1" ++ cookie-signature "1.0.6" ++ ++cookie-signature@1.0.6: ++ version "1.0.6" ++ resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" ++ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== ++ ++cookie@0.4.1: ++ version "0.4.1" ++ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" ++ integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== ++ ++cookie@0.4.2: ++ version "0.4.2" ++ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" ++ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== ++ ++cookie@0.5.0: ++ version "0.5.0" ++ resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" ++ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== ++ ++cookie@0.6.0: ++ version "0.6.0" ++ resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" ++ integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== ++ ++cookiejar@^2.1.4: ++ version "2.1.4" ++ resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz" ++ integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== ++ ++core-js-compat@^3.31.0, core-js-compat@^3.36.1: ++ version "3.37.1" ++ resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz" ++ integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== ++ dependencies: ++ browserslist "^4.23.0" ++ ++core-util-is@~1.0.0: ++ version "1.0.3" ++ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" ++ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== ++ ++cors@2.8.5: ++ version "2.8.5" ++ resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" ++ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== ++ dependencies: ++ object-assign "^4" ++ vary "^1" ++ ++cronosjs@1.7.1: ++ version "1.7.1" ++ resolved "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz" ++ integrity sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q== ++ + cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" +@@ -625,6 +2007,22 @@ cross-spawn@^7.0.2: + shebang-command "^2.0.0" + which "^2.0.1" + ++css-select@^4.3.0: ++ version "4.3.0" ++ resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" ++ integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== ++ dependencies: ++ boolbase "^1.0.0" ++ css-what "^6.0.1" ++ domhandler "^4.3.1" ++ domutils "^2.8.0" ++ nth-check "^2.0.1" ++ ++css-what@^6.0.1: ++ version "6.1.0" ++ resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" ++ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== ++ + data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" +@@ -659,18 +2057,49 @@ debug@^3.2.7: + dependencies: + ms "^2.1.1" + +-debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: ++debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4, debug@4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + ++debug@2.6.9: ++ version "2.6.9" ++ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" ++ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== ++ dependencies: ++ ms "2.0.0" ++ ++debug@2.x.x: ++ version "2.6.9" ++ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" ++ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== ++ dependencies: ++ ms "2.0.0" ++ ++decamelize@^4.0.0: ++ version "4.0.0" ++ resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" ++ integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== ++ ++decompress-response@^6.0.0: ++ version "6.0.0" ++ resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" ++ integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== ++ dependencies: ++ mimic-response "^3.1.0" ++ + deep-is@^0.1.3: + 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== + ++defer-to-connect@^2.0.1: ++ version "2.0.1" ++ resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" ++ integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== ++ + define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" +@@ -694,6 +2123,44 @@ delayed-stream@~1.0.0: + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + ++delegates@^1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" ++ integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== ++ ++denque@2.1.0: ++ version "2.1.0" ++ resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" ++ integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== ++ ++depd@~2.0.0, depd@2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" ++ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== ++ ++destroy@1.2.0: ++ version "1.2.0" ++ resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" ++ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== ++ ++detect-libc@^2.0.0: ++ version "2.0.3" ++ resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" ++ integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== ++ ++dezalgo@^1.0.4: ++ version "1.0.4" ++ resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz" ++ integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== ++ dependencies: ++ asap "^2.0.0" ++ wrappy "1" ++ ++diff@^5.0.0, diff@5.0.0: ++ version "5.0.0" ++ resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" ++ integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== ++ + doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" +@@ -708,11 +2175,86 @@ doctrine@^3.0.0: + dependencies: + esutils "^2.0.2" + ++dom-serializer@^1.0.1, dom-serializer@^1.3.2: ++ version "1.4.1" ++ resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" ++ integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== ++ dependencies: ++ domelementtype "^2.0.1" ++ domhandler "^4.2.0" ++ entities "^2.0.0" ++ ++domelementtype@^2.0.1, domelementtype@^2.2.0: ++ version "2.3.0" ++ resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" ++ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== ++ ++domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: ++ version "4.3.1" ++ resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" ++ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== ++ dependencies: ++ domelementtype "^2.2.0" ++ ++domutils@^2.5.2, domutils@^2.8.0: ++ version "2.8.0" ++ resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" ++ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== ++ dependencies: ++ dom-serializer "^1.0.1" ++ domelementtype "^2.2.0" ++ domhandler "^4.2.0" ++ ++duplexify@^4.1.1: ++ version "4.1.3" ++ resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" ++ integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== ++ dependencies: ++ end-of-stream "^1.4.1" ++ inherits "^2.0.3" ++ readable-stream "^3.1.1" ++ stream-shift "^1.0.2" ++ ++ee-first@1.1.1: ++ version "1.1.1" ++ resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" ++ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== ++ + electron-to-chromium@^1.4.668: + version "1.4.775" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz" + integrity sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw== + ++emoji-regex@^8.0.0: ++ version "8.0.0" ++ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" ++ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== ++ ++encodeurl@~1.0.2: ++ version "1.0.2" ++ resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" ++ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== ++ ++end-of-stream@^1.1.0, end-of-stream@^1.4.1: ++ 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== ++ dependencies: ++ once "^1.4.0" ++ ++enquirer@^2.3.6: ++ version "2.4.1" ++ resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" ++ integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== ++ dependencies: ++ ansi-colors "^4.1.1" ++ strip-ansi "^6.0.1" ++ ++entities@^2.0.0: ++ version "2.2.0" ++ resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" ++ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== ++ + entities@^4.4.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" +@@ -814,11 +2356,16 @@ es-to-primitive@^1.2.1: + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +-escalade@^3.1.2: ++escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + ++escape-html@~1.0.3: ++ version "1.0.3" ++ resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" ++ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== ++ + escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" +@@ -829,7 +2376,7 @@ escape-string-regexp@^2.0.0: + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +-escape-string-regexp@^4.0.0: ++escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +@@ -905,6 +2452,15 @@ eslint-plugin-jsdoc@^44.2.4: + semver "^7.5.1" + spdx-expression-parse "^3.0.1" + ++eslint-plugin-mocha@^10.4.3: ++ version "10.4.3" ++ resolved "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz" ++ integrity sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ== ++ dependencies: ++ eslint-utils "^3.0.0" ++ globals "^13.24.0" ++ rambda "^7.4.0" ++ + "eslint-plugin-n@^15.0.0 || ^16.0.0 ", eslint-plugin-n@^15.7.0: + version "15.7.0" + resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz" +@@ -981,7 +2537,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +-"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.1, eslint@^8.41.0, eslint@>=4.19.1, eslint@>=5, eslint@>=7.0.0, eslint@>=7.28.0: ++"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.1, eslint@^8.57.0, eslint@>=4.19.1, eslint@>=5, eslint@>=7.0.0, eslint@>=7.28.0: + version "8.57.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== +@@ -1063,6 +2619,62 @@ esutils@^2.0.2: + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + ++etag@~1.8.1: ++ version "1.8.1" ++ resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" ++ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== ++ ++express-session@1.17.3: ++ version "1.17.3" ++ resolved "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz" ++ integrity sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw== ++ dependencies: ++ cookie "0.4.2" ++ cookie-signature "1.0.6" ++ debug "2.6.9" ++ depd "~2.0.0" ++ on-headers "~1.0.2" ++ parseurl "~1.3.3" ++ safe-buffer "5.2.1" ++ uid-safe "~2.1.5" ++ ++express@^4.19.2, express@4.19.2: ++ version "4.19.2" ++ resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" ++ integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== ++ dependencies: ++ accepts "~1.3.8" ++ array-flatten "1.1.1" ++ body-parser "1.20.2" ++ content-disposition "0.5.4" ++ content-type "~1.0.4" ++ cookie "0.6.0" ++ cookie-signature "1.0.6" ++ debug "2.6.9" ++ depd "2.0.0" ++ encodeurl "~1.0.2" ++ escape-html "~1.0.3" ++ etag "~1.8.1" ++ finalhandler "1.2.0" ++ fresh "0.5.2" ++ http-errors "2.0.0" ++ merge-descriptors "1.0.1" ++ methods "~1.1.2" ++ on-finished "2.4.1" ++ parseurl "~1.3.3" ++ path-to-regexp "0.1.7" ++ proxy-addr "~2.0.7" ++ qs "6.11.0" ++ range-parser "~1.2.1" ++ safe-buffer "5.2.1" ++ send "0.18.0" ++ serve-static "1.15.0" ++ setprototypeof "1.2.0" ++ statuses "2.0.1" ++ type-is "~1.6.18" ++ utils-merge "1.0.1" ++ vary "~1.1.2" ++ + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" +@@ -1083,6 +2695,11 @@ fast-levenshtein@^2.0.6: + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + ++fast-safe-stringify@^2.1.1: ++ version "2.1.1" ++ resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" ++ integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== ++ + fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" +@@ -1097,7 +2714,27 @@ file-entry-cache@^6.0.1: + dependencies: + flat-cache "^3.0.4" + +-find-up@^5.0.0: ++fill-range@^7.1.1: ++ version "7.1.1" ++ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" ++ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== ++ dependencies: ++ to-regex-range "^5.0.1" ++ ++finalhandler@1.2.0: ++ version "1.2.0" ++ resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" ++ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== ++ 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" ++ ++find-up@^5.0.0, find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== +@@ -1114,6 +2751,11 @@ flat-cache@^3.0.4: + keyv "^4.5.3" + rimraf "^3.0.2" + ++flat@^5.0.2: ++ version "5.0.2" ++ resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" ++ integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== ++ + flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" +@@ -1131,7 +2773,12 @@ for-each@^0.3.3: + dependencies: + is-callable "^1.1.3" + +-form-data@^4.0.0: ++form-data-encoder@^2.1.2: ++ version "2.1.4" ++ resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" ++ integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== ++ ++form-data@^4.0.0, form-data@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +@@ -1140,6 +2787,41 @@ form-data@^4.0.0: + combined-stream "^1.0.8" + mime-types "^2.1.12" + ++formidable@^3.5.1: ++ version "3.5.1" ++ resolved "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz" ++ integrity sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og== ++ dependencies: ++ dezalgo "^1.0.4" ++ hexoid "^1.0.0" ++ once "^1.4.0" ++ ++forwarded@0.2.0: ++ version "0.2.0" ++ resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" ++ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== ++ ++fresh@0.5.2: ++ version "0.5.2" ++ resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" ++ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== ++ ++fs-extra@11.1.1: ++ version "11.1.1" ++ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" ++ integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== ++ dependencies: ++ graceful-fs "^4.2.0" ++ jsonfile "^6.0.1" ++ universalify "^2.0.0" ++ ++fs-minipass@^2.0.0: ++ version "2.1.0" ++ resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" ++ integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== ++ dependencies: ++ minipass "^3.0.0" ++ + fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" +@@ -1165,11 +2847,31 @@ functions-have-names@^1.2.3: + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + ++gauge@^3.0.0: ++ version "3.0.2" ++ resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" ++ integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== ++ dependencies: ++ aproba "^1.0.3 || ^2.0.0" ++ color-support "^1.1.2" ++ console-control-strings "^1.0.0" ++ has-unicode "^2.0.1" ++ object-assign "^4.1.1" ++ signal-exit "^3.0.0" ++ string-width "^4.2.3" ++ strip-ansi "^6.0.1" ++ wide-align "^1.1.2" ++ + gensync@^1.0.0-beta.2: + 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== + ++get-caller-file@^2.0.5: ++ version "2.0.5" ++ resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" ++ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== ++ + get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" +@@ -1181,6 +2883,11 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@ + has-symbols "^1.0.3" + hasown "^2.0.0" + ++get-stream@^6.0.1: ++ version "6.0.1" ++ resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" ++ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== ++ + get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" +@@ -1197,7 +2904,14 @@ glob-parent@^6.0.2: + dependencies: + is-glob "^4.0.3" + +-glob@^7.1.3: ++glob-parent@~5.1.2: ++ version "5.1.2" ++ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" ++ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== ++ dependencies: ++ is-glob "^4.0.1" ++ ++glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +@@ -1209,12 +2923,23 @@ glob@^7.1.3: + once "^1.3.0" + path-is-absolute "^1.0.0" + ++glob@8.1.0: ++ version "8.1.0" ++ resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" ++ integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== ++ dependencies: ++ fs.realpath "^1.0.0" ++ inflight "^1.0.4" ++ inherits "2" ++ minimatch "^5.0.1" ++ once "^1.3.0" ++ + globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +-globals@^13.19.0: ++globals@^13.19.0, globals@^13.24.0: + version "13.24.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== +@@ -1236,7 +2961,24 @@ gopd@^1.0.1: + dependencies: + get-intrinsic "^1.1.3" + +-graceful-fs@^4.1.9: ++got@12.6.0: ++ version "12.6.0" ++ resolved "https://registry.npmjs.org/got/-/got-12.6.0.tgz" ++ integrity sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ== ++ dependencies: ++ "@sindresorhus/is" "^5.2.0" ++ "@szmarczak/http-timer" "^5.0.1" ++ cacheable-lookup "^7.0.0" ++ cacheable-request "^10.2.8" ++ decompress-response "^6.0.0" ++ form-data-encoder "^2.1.2" ++ get-stream "^6.0.1" ++ http2-wrapper "^2.1.10" ++ lowercase-keys "^3.0.0" ++ p-cancelable "^3.0.0" ++ responselike "^3.0.0" ++ ++graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: + 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== +@@ -1285,6 +3027,16 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + dependencies: + has-symbols "^1.0.3" + ++has-unicode@^2.0.1: ++ version "2.0.1" ++ resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" ++ integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== ++ ++hash-sum@2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" ++ integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== ++ + hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" +@@ -1292,6 +3044,97 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + dependencies: + function-bind "^1.1.2" + ++he@1.2.0: ++ version "1.2.0" ++ resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" ++ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== ++ ++help-me@^3.0.0: ++ version "3.0.0" ++ resolved "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz" ++ integrity sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ== ++ dependencies: ++ glob "^7.1.6" ++ readable-stream "^3.6.0" ++ ++hexoid@^1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz" ++ integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== ++ ++hpagent@1.2.0: ++ version "1.2.0" ++ resolved "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz" ++ integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== ++ ++htmlparser2@^6.1.0: ++ version "6.1.0" ++ resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" ++ integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== ++ dependencies: ++ domelementtype "^2.0.1" ++ domhandler "^4.0.0" ++ domutils "^2.5.2" ++ entities "^2.0.0" ++ ++http-cache-semantics@^4.1.1: ++ 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== ++ ++http-errors@2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" ++ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== ++ dependencies: ++ depd "2.0.0" ++ inherits "2.0.4" ++ setprototypeof "1.2.0" ++ statuses "2.0.1" ++ toidentifier "1.0.1" ++ ++http2-wrapper@^2.1.10: ++ version "2.2.1" ++ resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" ++ integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== ++ dependencies: ++ quick-lru "^5.1.1" ++ resolve-alpn "^1.2.0" ++ ++https-proxy-agent@^5.0.0, https-proxy-agent@5.0.1: ++ 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== ++ dependencies: ++ agent-base "6" ++ debug "4" ++ ++i18next@21.10.0: ++ version "21.10.0" ++ resolved "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz" ++ integrity sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg== ++ dependencies: ++ "@babel/runtime" "^7.17.2" ++ ++iconv-lite@0.4.24: ++ version "0.4.24" ++ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" ++ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== ++ dependencies: ++ safer-buffer ">= 2.1.2 < 3" ++ ++iconv-lite@0.6.3: ++ version "0.6.3" ++ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" ++ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== ++ dependencies: ++ safer-buffer ">= 2.1.2 < 3.0.0" ++ ++ieee754@^1.1.13: ++ version "1.2.1" ++ resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" ++ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ++ + ignore@^5.1.1, ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" +@@ -1318,7 +3161,7 @@ inflight@^1.0.4: + once "^1.3.0" + wrappy "1" + +-inherits@2: ++inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +@@ -1332,6 +3175,11 @@ internal-slot@^1.0.7: + hasown "^2.0.0" + side-channel "^1.0.4" + ++ipaddr.js@1.9.1: ++ 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== ++ + is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" +@@ -1347,6 +3195,13 @@ is-bigint@^1.0.1: + dependencies: + has-bigints "^1.0.1" + ++is-binary-path@~2.1.0: ++ version "2.1.0" ++ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" ++ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== ++ dependencies: ++ binary-extensions "^2.0.0" ++ + is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" +@@ -1386,7 +3241,12 @@ is-extglob@^2.1.1: + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +-is-glob@^4.0.0, is-glob@^4.0.3: ++is-fullwidth-code-point@^3.0.0: ++ 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== ++ ++is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== +@@ -1405,11 +3265,21 @@ is-number-object@^1.0.4: + dependencies: + has-tostringtag "^1.0.0" + ++is-number@^7.0.0: ++ version "7.0.0" ++ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" ++ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== ++ + is-path-inside@^3.0.3: + 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== + ++is-plain-obj@^2.1.0: ++ version "2.1.0" ++ resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" ++ integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== ++ + is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" +@@ -1446,6 +3316,16 @@ is-typed-array@^1.1.13: + dependencies: + which-typed-array "^1.1.14" + ++is-unicode-supported@^0.1.0: ++ version "0.1.0" ++ resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" ++ integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== ++ ++is-utf8@0.2.1: ++ version "0.2.1" ++ resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" ++ integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== ++ + is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" +@@ -1458,17 +3338,27 @@ isarray@^2.0.5: + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + ++isarray@~1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" ++ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== ++ + isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + ++js-sdsl@4.3.0: ++ version "4.3.0" ++ resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" ++ integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== ++ + js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +-js-yaml@^4.1.0: ++js-yaml@^4.1.0, js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +@@ -1513,6 +3403,11 @@ jsesc@^2.5.1: + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + ++jsesc@~0.5.0: ++ version "0.5.0" ++ resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" ++ integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== ++ + json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" +@@ -1523,6 +3418,11 @@ json-schema-traverse@^0.4.1: + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + ++json-schema-traverse@^1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" ++ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== ++ + json-schema@>=0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" +@@ -1533,6 +3433,11 @@ json-stable-stringify-without-jsonify@^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== + ++json-stringify-safe@^5.0.1, json-stringify-safe@5.0.1: ++ version "5.0.1" ++ resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" ++ integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== ++ + json5@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" +@@ -1545,6 +3450,25 @@ json5@^2.2.3: + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + ++jsonata@1.8.7: ++ version "1.8.7" ++ resolved "https://registry.npmjs.org/jsonata/-/jsonata-1.8.7.tgz" ++ integrity sha512-tOW2/hZ+nR2bcQZs+0T62LVe5CHaNa3laFFWb/262r39utN6whJGBF7IR2Wq1QXrDbhftolk5gggW8uUJYlBTQ== ++ ++jsonfile@^6.0.1: ++ version "6.1.0" ++ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" ++ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== ++ dependencies: ++ universalify "^2.0.0" ++ optionalDependencies: ++ graceful-fs "^4.1.6" ++ ++just-extend@^6.2.0: ++ version "6.2.0" ++ resolved "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz" ++ integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== ++ + keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" +@@ -1559,6 +3483,11 @@ klaw@^3.0.0: + dependencies: + graceful-fs "^4.1.9" + ++leven@^2.1.0: ++ version "2.1.0" ++ resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz" ++ integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== ++ + levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" +@@ -1581,6 +3510,21 @@ locate-path@^6.0.0: + dependencies: + p-locate "^5.0.0" + ++lodash.clonedeep@^4.5.0: ++ version "4.5.0" ++ resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" ++ integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== ++ ++lodash.debounce@^4.0.8: ++ version "4.0.8" ++ resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" ++ integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== ++ ++lodash.get@^4.4.2: ++ version "4.4.2" ++ resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" ++ integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== ++ + lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" +@@ -1591,6 +3535,27 @@ lodash@^4.17.15, lodash@^4.17.21: + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + ++log-symbols@4.1.0: ++ version "4.1.0" ++ resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" ++ integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== ++ dependencies: ++ chalk "^4.1.0" ++ is-unicode-supported "^0.1.0" ++ ++lowercase-keys@^3.0.0: ++ version "3.0.0" ++ resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" ++ integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== ++ ++lru-cache@^4.0.3: ++ version "4.1.5" ++ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" ++ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== ++ dependencies: ++ pseudomap "^1.0.2" ++ yallist "^2.1.2" ++ + lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" +@@ -1598,6 +3563,20 @@ lru-cache@^5.1.1: + dependencies: + yallist "^3.0.2" + ++lru-cache@^6.0.0: ++ version "6.0.0" ++ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" ++ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== ++ dependencies: ++ yallist "^4.0.0" ++ ++make-dir@^3.1.0: ++ 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== ++ dependencies: ++ semver "^6.0.0" ++ + markdown-it-anchor@^8.6.7: + version "8.6.7" + resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" +@@ -1625,18 +3604,71 @@ mdurl@^2.0.0: + resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + ++media-typer@0.3.0: ++ version "0.3.0" ++ resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" ++ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== ++ ++media-typer@1.1.0: ++ version "1.1.0" ++ resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" ++ integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== ++ ++memorystore@1.6.7: ++ version "1.6.7" ++ resolved "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz" ++ integrity sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw== ++ dependencies: ++ debug "^4.3.0" ++ lru-cache "^4.0.3" ++ ++merge-descriptors@1.0.1: ++ version "1.0.1" ++ resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" ++ integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== ++ ++methods@^1.1.2, methods@~1.1.2: ++ version "1.1.2" ++ resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" ++ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== ++ + mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +-mime-types@^2.1.12: ++mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~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== + dependencies: + mime-db "1.52.0" + ++mime@1.6.0: ++ version "1.6.0" ++ resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" ++ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== ++ ++mime@2.6.0: ++ version "2.6.0" ++ resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" ++ integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== ++ ++mime@3.0.0: ++ version "3.0.0" ++ resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" ++ integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== ++ ++mimic-response@^3.1.0: ++ version "3.1.0" ++ resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" ++ integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== ++ ++mimic-response@^4.0.0: ++ version "4.0.0" ++ resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" ++ integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== ++ + minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" +@@ -1644,36 +3676,320 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + dependencies: + brace-expansion "^1.1.7" + +-minimist@^1.2.0, minimist@^1.2.6: ++minimatch@^5.0.1, minimatch@5.0.1: ++ version "5.0.1" ++ resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" ++ integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== ++ dependencies: ++ brace-expansion "^2.0.1" ++ ++minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +-mkdirp@^1.0.4: ++minipass@^3.0.0: ++ version "3.3.6" ++ resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" ++ integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== ++ dependencies: ++ yallist "^4.0.0" ++ ++minipass@^5.0.0: ++ version "5.0.0" ++ resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" ++ integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== ++ ++minizlib@^2.1.1: ++ version "2.1.2" ++ resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" ++ integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== ++ dependencies: ++ minipass "^3.0.0" ++ yallist "^4.0.0" ++ ++mkdirp@^0.5.4: ++ version "0.5.6" ++ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" ++ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== ++ dependencies: ++ minimist "^1.2.6" ++ ++mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + ++mocha@^10.4.0: ++ version "10.4.0" ++ resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz" ++ integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== ++ dependencies: ++ ansi-colors "4.1.1" ++ browser-stdout "1.3.1" ++ chokidar "3.5.3" ++ debug "4.3.4" ++ diff "5.0.0" ++ escape-string-regexp "4.0.0" ++ find-up "5.0.0" ++ glob "8.1.0" ++ he "1.2.0" ++ js-yaml "4.1.0" ++ log-symbols "4.1.0" ++ minimatch "5.0.1" ++ ms "2.1.3" ++ serialize-javascript "6.0.0" ++ strip-json-comments "3.1.1" ++ supports-color "8.1.1" ++ workerpool "6.2.1" ++ yargs "16.2.0" ++ yargs-parser "20.2.4" ++ yargs-unparser "2.0.0" ++ ++moment-timezone@0.5.43: ++ version "0.5.43" ++ resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz" ++ integrity sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ== ++ dependencies: ++ moment "^2.29.4" ++ ++moment@^2.29.4, moment@2.29.4: ++ version "2.29.4" ++ resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" ++ integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== ++ ++mqtt-packet@^6.8.0: ++ version "6.10.0" ++ resolved "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz" ++ integrity sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA== ++ dependencies: ++ bl "^4.0.2" ++ debug "^4.1.1" ++ process-nextick-args "^2.0.1" ++ ++mqtt@4.3.7: ++ version "4.3.7" ++ resolved "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz" ++ integrity sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw== ++ dependencies: ++ commist "^1.0.0" ++ concat-stream "^2.0.0" ++ debug "^4.1.1" ++ duplexify "^4.1.1" ++ help-me "^3.0.0" ++ inherits "^2.0.3" ++ lru-cache "^6.0.0" ++ minimist "^1.2.5" ++ mqtt-packet "^6.8.0" ++ number-allocator "^1.0.9" ++ pump "^3.0.0" ++ readable-stream "^3.6.0" ++ reinterval "^1.1.0" ++ rfdc "^1.3.0" ++ split2 "^3.1.0" ++ ws "^7.5.5" ++ xtend "^4.0.2" ++ + ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +-ms@2.1.2: +- version "2.1.2" +- resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" +- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ++ms@2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" ++ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ++ ++ms@2.1.2: ++ version "2.1.2" ++ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" ++ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ++ ++ms@2.1.3: ++ version "2.1.3" ++ resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" ++ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== ++ ++multer@1.4.5-lts.1: ++ version "1.4.5-lts.1" ++ resolved "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz" ++ integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== ++ dependencies: ++ append-field "^1.0.0" ++ busboy "^1.0.0" ++ concat-stream "^1.5.2" ++ mkdirp "^0.5.4" ++ object-assign "^4.1.1" ++ type-is "^1.6.4" ++ xtend "^4.0.0" ++ ++mustache@^4.2.0, mustache@4.2.0: ++ version "4.2.0" ++ resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" ++ integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== ++ ++mute-stream@~0.0.4: ++ version "0.0.8" ++ resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" ++ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== ++ ++natural-compare@^1.4.0: ++ version "1.4.0" ++ resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" ++ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== ++ ++negotiator@0.6.3: ++ version "0.6.3" ++ resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" ++ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== ++ ++nise@^5.1.0: ++ version "5.1.9" ++ resolved "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz" ++ integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== ++ dependencies: ++ "@sinonjs/commons" "^3.0.0" ++ "@sinonjs/fake-timers" "^11.2.2" ++ "@sinonjs/text-encoding" "^0.7.2" ++ just-extend "^6.2.0" ++ path-to-regexp "^6.2.1" ++ ++nock@^13.5.4: ++ version "13.5.4" ++ resolved "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz" ++ integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== ++ dependencies: ++ debug "^4.1.0" ++ json-stringify-safe "^5.0.1" ++ propagate "^2.0.0" ++ ++node-addon-api@^5.0.0: ++ version "5.1.0" ++ resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" ++ integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== ++ ++node-fetch@^2.6.7: ++ version "2.7.0" ++ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" ++ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== ++ dependencies: ++ whatwg-url "^5.0.0" + +-natural-compare@^1.4.0: +- version "1.4.0" +- resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" +- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== ++node-red-admin@^3.1.3: ++ version "3.1.3" ++ resolved "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz" ++ integrity sha512-RRkjwLjriCKW3bqiU21y3j+wpZ4bDf2EH3IEqxwP6hT4ccIwEK8Nt9dPZRWD6NyWGbEVDSTM5H0/whaRdFCqSw== ++ dependencies: ++ ansi-colors "^4.1.3" ++ axios "^1.6.8" ++ bcryptjs "^2.4.3" ++ cli-table "^0.3.11" ++ enquirer "^2.3.6" ++ minimist "^1.2.8" ++ mustache "^4.2.0" ++ read "^1.0.7" ++ optionalDependencies: ++ bcrypt "5.1.1" ++ ++node-red-node-test-helper@^0.3.4: ++ version "0.3.4" ++ resolved "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.4.tgz" ++ integrity sha512-OFXGEkKZpLkgoijAgpUIjzn5RF8QnbwPX9RjfI2LWXq1ACfeXkXcW0i1ioiphrokdE3MiWQJtH5omLNnSNdyaQ== ++ dependencies: ++ body-parser "^1.20.2" ++ express "^4.19.2" ++ semver "^7.5.4" ++ should "^13.2.3" ++ should-sinon "^0.0.6" ++ sinon "^11.1.2" ++ stoppable "^1.1.0" ++ supertest "^7.0.0" ++ ++node-red@^3.1.9: ++ version "3.1.9" ++ resolved "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz" ++ integrity sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw== ++ dependencies: ++ "@node-red/editor-api" "3.1.9" ++ "@node-red/nodes" "3.1.9" ++ "@node-red/runtime" "3.1.9" ++ "@node-red/util" "3.1.9" ++ basic-auth "2.0.1" ++ bcryptjs "2.4.3" ++ express "4.19.2" ++ fs-extra "11.1.1" ++ node-red-admin "^3.1.3" ++ nopt "5.0.0" ++ semver "7.5.4" ++ optionalDependencies: ++ bcrypt "5.1.0" + + node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + ++node-watch@0.7.4: ++ version "0.7.4" ++ resolved "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz" ++ integrity sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ== ++ ++nopt@^5.0.0, nopt@5.0.0: ++ version "5.0.0" ++ resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" ++ integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== ++ dependencies: ++ abbrev "1" ++ ++normalize-path@^3.0.0, normalize-path@~3.0.0: ++ version "3.0.0" ++ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" ++ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== ++ ++normalize-url@^8.0.0: ++ version "8.0.1" ++ resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" ++ integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== ++ ++npmlog@^5.0.1: ++ version "5.0.1" ++ resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" ++ integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== ++ dependencies: ++ are-we-there-yet "^2.0.0" ++ console-control-strings "^1.1.0" ++ gauge "^3.0.0" ++ set-blocking "^2.0.0" ++ ++nth-check@^2.0.1: ++ 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== ++ dependencies: ++ boolbase "^1.0.0" ++ ++number-allocator@^1.0.9: ++ version "1.0.14" ++ resolved "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz" ++ integrity sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA== ++ dependencies: ++ debug "^4.3.1" ++ js-sdsl "4.3.0" ++ ++oauth2orize@1.11.1: ++ version "1.11.1" ++ resolved "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz" ++ integrity sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA== ++ dependencies: ++ debug "2.x.x" ++ uid2 "0.0.x" ++ utils-merge "1.x.x" ++ ++object-assign@^4, object-assign@^4.1.1: ++ version "4.1.1" ++ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" ++ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== ++ + object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" +@@ -1722,7 +4038,19 @@ object.values@^1.1.7: + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +-once@^1.3.0: ++on-finished@2.4.1: ++ version "2.4.1" ++ resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" ++ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== ++ dependencies: ++ ee-first "1.1.1" ++ ++on-headers@~1.0.2, on-headers@1.0.2: ++ 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== ++ ++once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== +@@ -1741,6 +4069,11 @@ optionator@^0.9.3: + type-check "^0.4.0" + word-wrap "^1.2.5" + ++p-cancelable@^3.0.0: ++ version "3.0.0" ++ resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" ++ integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== ++ + p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" +@@ -1762,6 +4095,51 @@ parent-module@^1.0.0: + dependencies: + callsites "^3.0.0" + ++parse5-htmlparser2-tree-adapter@^6.0.1: ++ version "6.0.1" ++ resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" ++ integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== ++ dependencies: ++ parse5 "^6.0.1" ++ ++parse5@^6.0.1: ++ version "6.0.1" ++ resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" ++ integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== ++ ++parseurl@~1.3.3: ++ version "1.3.3" ++ resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" ++ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== ++ ++passport-http-bearer@1.0.1: ++ version "1.0.1" ++ resolved "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz" ++ integrity sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw== ++ dependencies: ++ passport-strategy "1.x.x" ++ ++passport-oauth2-client-password@0.1.2: ++ version "0.1.2" ++ resolved "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz" ++ integrity sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ== ++ dependencies: ++ passport-strategy "1.x.x" ++ ++passport-strategy@1.x.x: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz" ++ integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== ++ ++passport@0.6.0: ++ version "0.6.0" ++ resolved "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz" ++ integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== ++ dependencies: ++ passport-strategy "1.x.x" ++ pause "0.0.1" ++ utils-merge "^1.0.1" ++ + path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" +@@ -1782,11 +4160,31 @@ path-parse@^1.0.7: + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + ++path-to-regexp@^6.2.1: ++ version "6.2.2" ++ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz" ++ integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== ++ ++path-to-regexp@0.1.7: ++ version "0.1.7" ++ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" ++ integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== ++ ++pause@0.0.1: ++ version "0.0.1" ++ resolved "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz" ++ integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== ++ + picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + ++picomatch@^2.0.4, picomatch@^2.2.1: ++ version "2.3.1" ++ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" ++ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== ++ + possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" +@@ -1809,26 +4207,171 @@ prettier@^2.8.8, prettier@>=2.0.0: + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + ++process-nextick-args@^2.0.1, process-nextick-args@~2.0.0: ++ 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== ++ ++propagate@^2.0.0: ++ version "2.0.1" ++ resolved "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz" ++ integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== ++ ++proxy-addr@~2.0.7: ++ 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== ++ dependencies: ++ forwarded "0.2.0" ++ ipaddr.js "1.9.1" ++ + proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + ++pseudomap@^1.0.2: ++ version "1.0.2" ++ resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" ++ integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== ++ ++psl@^1.1.33: ++ version "1.9.0" ++ resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" ++ integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== ++ ++pump@^3.0.0: ++ version "3.0.0" ++ resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" ++ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== ++ dependencies: ++ end-of-stream "^1.1.0" ++ once "^1.3.1" ++ + punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +-punycode@^2.1.0: ++punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + ++qs@^6.11.0, qs@6.11.0: ++ version "6.11.0" ++ resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" ++ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== ++ dependencies: ++ side-channel "^1.0.4" ++ ++querystringify@^2.1.1: ++ version "2.2.0" ++ resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" ++ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== ++ + queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + ++quick-lru@^5.1.1: ++ version "5.1.1" ++ resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" ++ integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== ++ ++rambda@^7.4.0: ++ version "7.5.0" ++ resolved "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz" ++ integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== ++ ++random-bytes@~1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz" ++ integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== ++ ++randombytes@^2.1.0: ++ version "2.1.0" ++ resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" ++ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== ++ dependencies: ++ safe-buffer "^5.1.0" ++ ++range-parser@~1.2.1: ++ version "1.2.1" ++ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" ++ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== ++ ++raw-body@2.5.2: ++ 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== ++ dependencies: ++ bytes "3.1.2" ++ http-errors "2.0.0" ++ iconv-lite "0.4.24" ++ unpipe "1.0.0" ++ ++read@^1.0.7: ++ version "1.0.7" ++ resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" ++ integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== ++ dependencies: ++ mute-stream "~0.0.4" ++ ++readable-stream@^2.2.2: ++ version "2.3.8" ++ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" ++ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== ++ dependencies: ++ core-util-is "~1.0.0" ++ inherits "~2.0.3" ++ isarray "~1.0.0" ++ process-nextick-args "~2.0.0" ++ safe-buffer "~5.1.1" ++ string_decoder "~1.1.1" ++ util-deprecate "~1.0.1" ++ ++readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^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== ++ dependencies: ++ inherits "^2.0.3" ++ string_decoder "^1.1.1" ++ util-deprecate "^1.0.1" ++ ++readdirp@~3.6.0: ++ version "3.6.0" ++ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" ++ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== ++ dependencies: ++ picomatch "^2.2.1" ++ ++regenerate-unicode-properties@^10.1.0: ++ version "10.1.1" ++ resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" ++ integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== ++ dependencies: ++ regenerate "^1.4.2" ++ ++regenerate@^1.4.2: ++ version "1.4.2" ++ resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" ++ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== ++ ++regenerator-runtime@^0.14.0: ++ version "0.14.1" ++ resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" ++ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== ++ ++regenerator-transform@^0.15.2: ++ version "0.15.2" ++ resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" ++ integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== ++ dependencies: ++ "@babel/runtime" "^7.8.4" ++ + regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz" +@@ -1844,6 +4387,45 @@ regexpp@^3.0.0: + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + ++regexpu-core@^5.3.1: ++ version "5.3.2" ++ resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" ++ integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== ++ dependencies: ++ "@babel/regjsgen" "^0.8.0" ++ regenerate "^1.4.2" ++ regenerate-unicode-properties "^10.1.0" ++ regjsparser "^0.9.1" ++ unicode-match-property-ecmascript "^2.0.0" ++ unicode-match-property-value-ecmascript "^2.1.0" ++ ++regjsparser@^0.9.1: ++ version "0.9.1" ++ resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" ++ integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== ++ dependencies: ++ jsesc "~0.5.0" ++ ++reinterval@^1.1.0: ++ version "1.1.0" ++ resolved "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz" ++ integrity sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ== ++ ++require-directory@^2.1.1: ++ 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== ++ ++require-from-string@^2.0.2: ++ 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== ++ ++requires-port@^1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" ++ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== ++ + requizzle@^0.2.3: + version "0.2.4" + resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz" +@@ -1851,12 +4433,17 @@ requizzle@^0.2.3: + dependencies: + lodash "^4.17.21" + ++resolve-alpn@^1.2.0: ++ version "1.2.1" ++ resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" ++ integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== ++ + resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +-resolve@^1.22.1, resolve@^1.22.4: ++resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== +@@ -1865,11 +4452,23 @@ resolve@^1.22.1, resolve@^1.22.4: + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + ++responselike@^3.0.0: ++ version "3.0.0" ++ resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" ++ integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== ++ dependencies: ++ lowercase-keys "^3.0.0" ++ + reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + ++rfdc@^1.3.0: ++ version "1.3.1" ++ resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz" ++ integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== ++ + rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" +@@ -1894,6 +4493,21 @@ safe-array-concat@^1.1.2: + has-symbols "^1.0.3" + isarray "^2.0.5" + ++safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2: ++ version "5.1.2" ++ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" ++ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== ++ ++safe-buffer@~5.2.0: ++ version "5.2.1" ++ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" ++ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== ++ ++safe-buffer@5.2.1: ++ version "5.2.1" ++ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" ++ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== ++ + safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" +@@ -1903,16 +4517,79 @@ safe-regex-test@^1.0.3: + es-errors "^1.3.0" + is-regex "^1.1.4" + ++"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": ++ version "2.1.2" ++ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" ++ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== ++ ++sax@>=0.6.0: ++ version "1.3.0" ++ resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" ++ integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== ++ ++semver@^6.0.0: ++ version "6.3.1" ++ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" ++ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== ++ + semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +-semver@^7.0.0, semver@^7.3.8, semver@^7.5.1: ++semver@^7.0.0, semver@^7.3.5, semver@^7.3.8, semver@^7.5.1, semver@^7.5.4: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + ++semver@7.5.4: ++ version "7.5.4" ++ resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" ++ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== ++ dependencies: ++ lru-cache "^6.0.0" ++ ++send@0.18.0: ++ version "0.18.0" ++ resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" ++ integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== ++ dependencies: ++ debug "2.6.9" ++ depd "2.0.0" ++ destroy "1.2.0" ++ encodeurl "~1.0.2" ++ escape-html "~1.0.3" ++ etag "~1.8.1" ++ fresh "0.5.2" ++ http-errors "2.0.0" ++ mime "1.6.0" ++ ms "2.1.3" ++ on-finished "2.4.1" ++ range-parser "~1.2.1" ++ statuses "2.0.1" ++ ++serialize-javascript@6.0.0: ++ version "6.0.0" ++ resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" ++ integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== ++ dependencies: ++ randombytes "^2.1.0" ++ ++serve-static@1.15.0: ++ version "1.15.0" ++ resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" ++ integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== ++ dependencies: ++ encodeurl "~1.0.2" ++ escape-html "~1.0.3" ++ parseurl "~1.3.3" ++ send "0.18.0" ++ ++set-blocking@^2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" ++ integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== ++ + set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" +@@ -1935,6 +4612,11 @@ set-function-name@^2.0.1: + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + ++setprototypeof@1.2.0: ++ version "1.2.0" ++ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" ++ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== ++ + shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" +@@ -1947,6 +4629,55 @@ shebang-regex@^3.0.0: + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + ++should-equal@^2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz" ++ integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== ++ dependencies: ++ should-type "^1.4.0" ++ ++should-format@^3.0.3: ++ version "3.0.3" ++ resolved "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz" ++ integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== ++ dependencies: ++ should-type "^1.3.0" ++ should-type-adaptors "^1.0.1" ++ ++should-sinon@^0.0.6: ++ version "0.0.6" ++ resolved "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz" ++ integrity sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g== ++ ++should-type-adaptors@^1.0.1: ++ version "1.1.0" ++ resolved "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz" ++ integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== ++ dependencies: ++ should-type "^1.3.0" ++ should-util "^1.0.0" ++ ++should-type@^1.3.0, should-type@^1.4.0: ++ version "1.4.0" ++ resolved "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz" ++ integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== ++ ++should-util@^1.0.0: ++ version "1.0.1" ++ resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz" ++ integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== ++ ++should@^13.2.3, "should@>= 8.x": ++ version "13.2.3" ++ resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz" ++ integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== ++ dependencies: ++ should-equal "^2.0.0" ++ should-format "^3.0.3" ++ should-type "^1.4.0" ++ should-type-adaptors "^1.0.1" ++ should-util "^1.0.0" ++ + side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" +@@ -1957,6 +4688,23 @@ side-channel@^1.0.4: + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + ++signal-exit@^3.0.0: ++ version "3.0.7" ++ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" ++ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== ++ ++sinon@^11.1.2: ++ version "11.1.2" ++ resolved "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz" ++ integrity sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw== ++ dependencies: ++ "@sinonjs/commons" "^1.8.3" ++ "@sinonjs/fake-timers" "^7.1.2" ++ "@sinonjs/samsam" "^6.0.2" ++ diff "^5.0.0" ++ nise "^5.1.0" ++ supports-color "^7.2.0" ++ + spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" +@@ -1975,6 +4723,56 @@ spdx-license-ids@^3.0.0: + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== + ++split2@^3.1.0: ++ version "3.2.2" ++ resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" ++ integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== ++ dependencies: ++ readable-stream "^3.0.0" ++ ++statuses@2.0.1: ++ version "2.0.1" ++ resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" ++ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== ++ ++stoppable@^1.1.0: ++ version "1.1.0" ++ resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz" ++ integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== ++ ++stream-shift@^1.0.2: ++ version "1.0.3" ++ resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz" ++ integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== ++ ++streamsearch@^1.1.0: ++ version "1.1.0" ++ resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" ++ integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== ++ ++string_decoder@^1.1.1: ++ 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== ++ dependencies: ++ safe-buffer "~5.2.0" ++ ++string_decoder@~1.1.1: ++ version "1.1.1" ++ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" ++ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== ++ dependencies: ++ safe-buffer "~5.1.0" ++ ++"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: ++ version "4.2.3" ++ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" ++ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== ++ dependencies: ++ emoji-regex "^8.0.0" ++ is-fullwidth-code-point "^3.0.0" ++ strip-ansi "^6.0.1" ++ + string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" +@@ -2003,7 +4801,7 @@ string.prototype.trimstart@^1.0.8: + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +-strip-ansi@^6.0.1: ++strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +@@ -2015,11 +4813,34 @@ strip-bom@^3.0.0: + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +-strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: ++strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@3.1.1: + 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== + ++superagent@^9.0.1: ++ version "9.0.2" ++ resolved "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz" ++ integrity sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w== ++ dependencies: ++ component-emitter "^1.3.0" ++ cookiejar "^2.1.4" ++ debug "^4.3.4" ++ fast-safe-stringify "^2.1.1" ++ form-data "^4.0.0" ++ formidable "^3.5.1" ++ methods "^1.1.2" ++ mime "2.6.0" ++ qs "^6.11.0" ++ ++supertest@^7.0.0: ++ version "7.0.0" ++ resolved "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz" ++ integrity sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA== ++ dependencies: ++ methods "^1.1.2" ++ superagent "^9.0.1" ++ + supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" +@@ -2027,18 +4848,37 @@ supports-color@^5.3.0: + dependencies: + has-flag "^3.0.0" + +-supports-color@^7.1.0: ++supports-color@^7.1.0, supports-color@^7.2.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== + dependencies: + has-flag "^4.0.0" + ++supports-color@8.1.1: ++ version "8.1.1" ++ resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" ++ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== ++ dependencies: ++ has-flag "^4.0.0" ++ + supports-preserve-symlinks-flag@^1.0.0: + 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== + ++tar@^6.1.11, tar@6.2.1: ++ version "6.2.1" ++ resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" ++ integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== ++ dependencies: ++ chownr "^2.0.0" ++ fs-minipass "^2.0.0" ++ minipass "^5.0.0" ++ minizlib "^2.1.1" ++ mkdirp "^1.0.3" ++ yallist "^4.0.0" ++ + text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" +@@ -2049,6 +4889,33 @@ to-fast-properties@^2.0.0: + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + ++to-regex-range@^5.0.1: ++ 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== ++ dependencies: ++ is-number "^7.0.0" ++ ++toidentifier@1.0.1: ++ version "1.0.1" ++ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" ++ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== ++ ++tough-cookie@4.1.3: ++ version "4.1.3" ++ resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" ++ integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== ++ dependencies: ++ psl "^1.1.33" ++ punycode "^2.1.1" ++ universalify "^0.2.0" ++ url-parse "^1.5.3" ++ ++tr46@~0.0.3: ++ version "0.0.3" ++ resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" ++ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ++ + tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" +@@ -2059,6 +4926,11 @@ tsconfig-paths@^3.15.0: + minimist "^1.2.6" + strip-bom "^3.0.0" + ++tslib@^2.2.0, tslib@^2.4.0: ++ version "2.6.2" ++ resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" ++ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== ++ + type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" +@@ -2066,11 +4938,24 @@ type-check@^0.4.0, type-check@~0.4.0: + dependencies: + prelude-ls "^1.2.1" + ++type-detect@^4.0.8, type-detect@4.0.8: ++ version "4.0.8" ++ resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" ++ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== ++ + type-fest@^0.20.2: + 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== + ++type-is@^1.6.4, type-is@~1.6.18: ++ version "1.6.18" ++ resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" ++ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== ++ dependencies: ++ media-typer "0.3.0" ++ mime-types "~2.1.24" ++ + typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" +@@ -2115,11 +5000,33 @@ typed-array-length@^1.0.6: + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + ++typedarray@^0.0.6: ++ version "0.0.6" ++ resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" ++ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== ++ + uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + ++uglify-js@3.17.4: ++ version "3.17.4" ++ resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" ++ integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== ++ ++uid-safe@~2.1.5: ++ version "2.1.5" ++ resolved "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz" ++ integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== ++ dependencies: ++ random-bytes "~1.0.0" ++ ++uid2@0.0.x: ++ version "0.0.4" ++ resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz" ++ integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== ++ + unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" +@@ -2135,6 +5042,44 @@ underscore@~1.13.2: + resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== + ++unicode-canonical-property-names-ecmascript@^2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" ++ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== ++ ++unicode-match-property-ecmascript@^2.0.0: ++ 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== ++ dependencies: ++ unicode-canonical-property-names-ecmascript "^2.0.0" ++ unicode-property-aliases-ecmascript "^2.0.0" ++ ++unicode-match-property-value-ecmascript@^2.1.0: ++ version "2.1.0" ++ resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" ++ integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== ++ ++unicode-property-aliases-ecmascript@^2.0.0: ++ 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== ++ ++universalify@^0.2.0: ++ version "0.2.0" ++ resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" ++ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== ++ ++universalify@^2.0.0: ++ version "2.0.1" ++ resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" ++ integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== ++ ++unpipe@~1.0.0, unpipe@1.0.0: ++ version "1.0.0" ++ resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" ++ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== ++ + update-browserslist-db@^1.0.13: + version "1.0.16" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz" +@@ -2150,6 +5095,47 @@ uri-js@^4.2.2: + dependencies: + punycode "^2.1.0" + ++url-parse@^1.5.3: ++ version "1.5.10" ++ resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" ++ integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== ++ dependencies: ++ querystringify "^2.1.1" ++ requires-port "^1.0.0" ++ ++util-deprecate@^1.0.1, util-deprecate@~1.0.1: ++ version "1.0.2" ++ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" ++ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== ++ ++utils-merge@^1.0.1, utils-merge@1.0.1, utils-merge@1.x.x: ++ version "1.0.1" ++ resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" ++ integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== ++ ++uuid@9.0.0: ++ version "9.0.0" ++ resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" ++ integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== ++ ++vary@^1, vary@~1.1.2: ++ version "1.1.2" ++ resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" ++ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== ++ ++webidl-conversions@^3.0.0: ++ version "3.0.1" ++ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" ++ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== ++ ++whatwg-url@^5.0.0: ++ version "5.0.0" ++ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" ++ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== ++ dependencies: ++ tr46 "~0.0.3" ++ webidl-conversions "^3.0.0" ++ + which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" +@@ -2179,26 +5165,113 @@ which@^2.0.1: + dependencies: + isexe "^2.0.0" + ++wide-align@^1.1.2: ++ version "1.1.5" ++ resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" ++ integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== ++ dependencies: ++ string-width "^1.0.2 || 2 || 3 || 4" ++ + word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + ++workerpool@6.2.1: ++ version "6.2.1" ++ resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" ++ integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== ++ ++wrap-ansi@^7.0.0: ++ version "7.0.0" ++ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" ++ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== ++ dependencies: ++ ansi-styles "^4.0.0" ++ string-width "^4.1.0" ++ strip-ansi "^6.0.0" ++ + wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + ++ws@^7.5.5, ws@7.5.6: ++ version "7.5.6" ++ resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" ++ integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== ++ ++xml2js@0.6.2: ++ version "0.6.2" ++ resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz" ++ integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== ++ dependencies: ++ sax ">=0.6.0" ++ xmlbuilder "~11.0.0" ++ ++xmlbuilder@~11.0.0: ++ version "11.0.1" ++ resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" ++ integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== ++ + xmlcreate@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz" + integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== + ++xtend@^4.0.0, xtend@^4.0.2: ++ version "4.0.2" ++ resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" ++ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== ++ ++y18n@^5.0.5: ++ version "5.0.8" ++ resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" ++ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== ++ ++yallist@^2.1.2: ++ version "2.1.2" ++ resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" ++ integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== ++ + yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + ++yallist@^4.0.0: ++ version "4.0.0" ++ resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" ++ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== ++ ++yargs-parser@^20.2.2, yargs-parser@20.2.4: ++ version "20.2.4" ++ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" ++ integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== ++ ++yargs-unparser@2.0.0: ++ version "2.0.0" ++ resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" ++ integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== ++ dependencies: ++ camelcase "^6.0.0" ++ decamelize "^4.0.0" ++ flat "^5.0.2" ++ is-plain-obj "^2.1.0" ++ ++yargs@16.2.0: ++ version "16.2.0" ++ resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" ++ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== ++ 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" ++ + yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" diff --git a/package-lock.json b/package-lock.json index 6963ae6..c16e217 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,30 +1,36 @@ { "name": "node-red-contrib-oauth2", - "version": "5.2.7", + "version": "6.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "node-red-contrib-oauth2", - "version": "5.2.7", - "license": "MIT License", + "version": "6.0.0", + "license": "MIT", "dependencies": { "axios": ">=1.3.3", - "json-schema": ">=0.4.0" + "mocha": "^10.4.0" }, "devDependencies": { - "@babel/eslint-parser": "^7.21.8", - "eslint": "^8.41.0", + "@babel/eslint-parser": "^7.24.5", + "@babel/preset-env": "^7.24.5", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.8.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsdoc": "^44.2.4", + "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^15.7.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jsdoc": "^4.0.3", "json-schema": ">=0.4.0", - "prettier": "^2.8.8" + "nock": "^13.5.4", + "node-red": "^3.1.9", + "node-red-node-test-helper": "^0.3.4", + "prettier": "^2.8.8", + "should": "^13.2.3" }, "engines": { "node": ">=12.0.0" @@ -49,7 +55,6 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, - "peer": true, "dependencies": { "@babel/highlight": "^7.24.2", "picocolors": "^1.0.0" @@ -63,7 +68,6 @@ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -127,7 +131,6 @@ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz", "integrity": "sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==", "dev": true, - "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -177,12 +180,35 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, - "peer": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -199,17 +225,89 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "peer": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", + "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.24.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -219,7 +317,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "peer": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -233,7 +330,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -241,12 +337,23 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", + "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.24.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.24.0" }, @@ -259,7 +366,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.24.3", @@ -274,12 +380,66 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", + "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/helper-simple-access": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.24.5" }, @@ -287,12 +447,23 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.24.5" }, @@ -305,7 +476,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -315,7 +485,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -325,7 +494,20 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, - "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", + "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.23.0", + "@babel/template": "^7.24.0", + "@babel/types": "^7.24.5" + }, "engines": { "node": ">=6.9.0" } @@ -350,7 +532,6 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.24.5", "chalk": "^2.4.2", @@ -366,7 +547,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -379,7 +559,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -394,7 +573,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -403,15 +581,13 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@babel/highlight/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, - "peer": true, "engines": { "node": ">=0.8.0" } @@ -421,7 +597,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "peer": true, "engines": { "node": ">=4" } @@ -431,7 +606,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -451,1201 +625,4210 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", + "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", "dev": true, - "peer": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", "dev": true, - "peer": true, "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", "dev": true, - "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@es-joy/jsdoccomment": { - "version": "0.39.4", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", - "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "license": "MIT", - "dependencies": { - "comment-parser": "1.3.1", - "esquery": "^1.5.0", - "jsdoc-type-pratt-parser": "~4.0.0" - }, "engines": { - "node": ">=16" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "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": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "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", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "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": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "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" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "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", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "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": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@babel/helper-plugin-utils": "^7.8.3" }, - "engines": { - "node": ">=10.10.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", "dev": true, - "license": "Apache-2.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/object-schema": { - "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==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", "dev": true, - "peer": true, "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "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, - "peer": true, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "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, - "peer": true, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "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, - "peer": true + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@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, - "peer": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jsdoc/salty": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", - "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { - "lodash": "^4.17.21" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=v12.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "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": { - "eslint-scope": "5.1.1" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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==", + "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": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "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": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@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": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", - "dev": true - }, - "node_modules/@types/markdown-it": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", - "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", "dev": true, "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", - "dev": true - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", "dev": true, - "license": "ISC" + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "engines": { - "node": ">=0.4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", + "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", "dev": true, - "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" + "@babel/helper-plugin-utils": "^7.24.5" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/are-docs-informative": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", - "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", + "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.24.5", + "globals": "^11.1.0" + }, "engines": { - "node": ">=14" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "Python-2.0" + "engines": { + "node": ">=4" + } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", + "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", "dev": true, - "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "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==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", "dev": true, - "license": "MIT", "dependencies": { - "possible-typed-array-names": "^1.0.0" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/axios": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", - "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", - "license": "MIT", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dev": true, "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/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/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", "dev": true, - "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", "dev": true, - "license": "MIT", "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, "engines": { - "node": ">=6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001620", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", - "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true - }, - "node_modules/catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", "dev": true, "dependencies": { - "lodash": "^4.17.15" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { - "node": ">=7.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", "dev": true, - "license": "MIT" - }, - "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==", - "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { - "node": ">= 0.8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, "engines": { - "node": ">= 12.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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/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, - "peer": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", + "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "2.1.2" + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.5" }, "engines": { - "node": ">=6.0" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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/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==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", "dev": true, - "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", "dev": true, - "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", + "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, "engines": { - "node": ">=0.4.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", + "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.24.5" }, "engines": { - "node": ">=0.10.0" - } + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/electron-to-chromium": { - "version": "1.4.775", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", - "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", "dev": true, - "peer": true + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", + "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.5", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, "engines": { - "node": ">=0.12" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", "dev": true, - "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4" + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", "dev": true, - "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", "dev": true, - "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", "dev": true, - "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", "dev": true, - "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", + "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", "dev": true, - "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.5" + }, "engines": { - "node": ">=6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", "dev": true, - "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@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.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", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "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.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": ">=7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", "dev": true, - "funding": [ - { + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz", + "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.5", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.5", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.5", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.5", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.5", + "@babel/plugin-transform-parameters": "^7.24.5", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.5", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", + "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/types": "^7.24.5", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", + "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.1", + "@babel/helper-validator-identifier": "^7.24.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.39.4", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", + "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "1.3.1", + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "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.6.0", + "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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "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==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "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, + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsdoc/salty": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v12.0.0" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dev": true, + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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/@nicolo-ribaudo/eslint-scope-5-internals/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/@node-red/editor-api": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz", + "integrity": "sha512-HHhFiwxmD8V5+U/xe+Gl9T0oAnwFeA7zisG8VW+Ruh3apGQvV9l5UoL9Yg00jEPDOhL99k/wqcXI42lakEkiKw==", + "dev": true, + "dependencies": { + "@node-red/editor-client": "3.1.9", + "@node-red/util": "3.1.9", + "bcryptjs": "2.4.3", + "body-parser": "1.20.2", + "clone": "2.1.2", + "cors": "2.8.5", + "express": "4.19.2", + "express-session": "1.17.3", + "memorystore": "1.6.7", + "mime": "3.0.0", + "multer": "1.4.5-lts.1", + "mustache": "4.2.0", + "oauth2orize": "1.11.1", + "passport": "0.6.0", + "passport-http-bearer": "1.0.1", + "passport-oauth2-client-password": "0.1.2", + "ws": "7.5.6" + }, + "optionalDependencies": { + "bcrypt": "5.1.0" + } + }, + "node_modules/@node-red/editor-client": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.9.tgz", + "integrity": "sha512-k8ik9fqcUxwsjEL0bBywNRYoFk7VZxdcoXRKCtcB3H8T/KRgQBDZu4j27dtff/5WPqnvtmXOQBbdDrhluMO0ng==", + "dev": true + }, + "node_modules/@node-red/nodes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.9.tgz", + "integrity": "sha512-H0ZJjgmc7tbDBExF8WWIab7VJ1PBJxqExc6HWfb5FJQcOyA9mzCXwBduirWGxWAbQzZvq5GLgzy5ECzDJIjbSQ==", + "dev": true, + "dependencies": { + "acorn": "8.8.2", + "acorn-walk": "8.2.0", + "ajv": "8.12.0", + "body-parser": "1.20.2", + "cheerio": "1.0.0-rc.10", + "content-type": "1.0.5", + "cookie": "0.5.0", + "cookie-parser": "1.4.6", + "cors": "2.8.5", + "cronosjs": "1.7.1", + "denque": "2.1.0", + "form-data": "4.0.0", + "fs-extra": "11.1.1", + "got": "12.6.0", + "hash-sum": "2.0.0", + "hpagent": "1.2.0", + "https-proxy-agent": "5.0.1", + "iconv-lite": "0.6.3", + "is-utf8": "0.2.1", + "js-yaml": "4.1.0", + "media-typer": "1.1.0", + "mqtt": "4.3.7", + "multer": "1.4.5-lts.1", + "mustache": "4.2.0", + "node-watch": "0.7.4", + "on-headers": "1.0.2", + "raw-body": "2.5.2", + "tough-cookie": "4.1.3", + "uuid": "9.0.0", + "ws": "7.5.6", + "xml2js": "0.6.2" + } + }, + "node_modules/@node-red/nodes/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@node-red/nodes/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@node-red/nodes/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/@node-red/registry": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.9.tgz", + "integrity": "sha512-lm1jNGO5ebax5kw5A2stOymMVQpuAGJ24M+3bfPYj3djzgBq4qKbNX6EAJLtyLHlCKecAybJoXDNpNcCnl7BXQ==", + "dev": true, + "dependencies": { + "@node-red/util": "3.1.9", + "clone": "2.1.2", + "fs-extra": "11.1.1", + "semver": "7.5.4", + "tar": "6.2.1", + "uglify-js": "3.17.4" + } + }, + "node_modules/@node-red/registry/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@node-red/registry/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/@node-red/registry/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@node-red/runtime": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.9.tgz", + "integrity": "sha512-tpuHE5gEqLx9OoRjSxsyh683yGCnBlAAwbjkVv5lonqYqLJwE3DCJnMuHYj1lPUDzSc0QzhE9efm+LIhAhBU4g==", + "dev": true, + "dependencies": { + "@node-red/registry": "3.1.9", + "@node-red/util": "3.1.9", + "async-mutex": "0.4.0", + "clone": "2.1.2", + "express": "4.19.2", + "fs-extra": "11.1.1", + "json-stringify-safe": "5.0.1" + } + }, + "node_modules/@node-red/util": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@node-red/util/-/util-3.1.9.tgz", + "integrity": "sha512-BT7mMds8MFrXwgGuNjmk/vY0X621hirLcqAOp5/ZrrFuzPVoK4PDgoNx5igYD/HVQbVcJTHfN1cRopSFPfdF2Q==", + "dev": true, + "dependencies": { + "fs-extra": "11.1.1", + "i18next": "21.10.0", + "json-stringify-safe": "5.0.1", + "jsonata": "1.8.7", + "lodash.clonedeep": "^4.5.0", + "moment": "2.29.4", + "moment-timezone": "0.5.43" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true + }, + "node_modules/@types/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", + "dev": true, + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "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 + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.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, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "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/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "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": "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": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "dev": true + }, + "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, + "optional": true + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "dev": true, + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "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": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", + "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.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==", + "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": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bcrypt": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", + "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.10", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/cheerio": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", + "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", + "dev": true, + "dependencies": { + "cheerio-select": "^1.5.0", + "dom-serializer": "^1.3.2", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", + "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", + "dev": true, + "dependencies": { + "css-select": "^4.3.0", + "css-what": "^6.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.3.1", + "domutils": "^2.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "dev": true, + "dependencies": { + "colors": "1.0.3" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "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==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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, + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/commist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", + "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", + "dev": true, + "dependencies": { + "leven": "^2.1.0", + "minimist": "^1.1.0" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "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, + "optional": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "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, + "peer": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dev": true, + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-parser/node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cronosjs": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz", + "integrity": "sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-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": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "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, + "optional": true + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.775", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", + "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "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": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@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.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", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "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", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/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": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/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": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/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": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-import/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/eslint-plugin-jsdoc": { + "version": "44.2.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", + "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "~0.39.4", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.5.0", + "semver": "^7.5.1", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-mocha": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", + "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "globals": "^13.24.0", + "rambda": "^7.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "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": { + "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/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "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": "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/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": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/espree": { + "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.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "dev": true, + "dependencies": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express-session/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express-session/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { "type": "github", "url": "https://github.com/sponsors/feross" }, @@ -1654,572 +4837,1106 @@ "url": "https://www.patreon.com/feross" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "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-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "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/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/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==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "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.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "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==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" } ], "license": "MIT", "engines": { - "node": ">=12.0.0" + "node": ">=4.0" }, - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", - "eslint-plugin-promise": "^6.0.0" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "is-callable": "^1.1.3" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "dev": true, + "engines": { + "node": ">= 14.17" + } + }, + "node_modules/formidable": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", + "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", + "dev": true, + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "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, + "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": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "dev": true, + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "debug": "^3.2.7" + "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": ">=4" + "node": "*" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "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": "MIT", + "license": "ISC", "dependencies": { - "ms": "^2.1.1" + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "node_modules/globals": { + "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": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=8.10.0" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "node_modules/got": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", + "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", "dev": true, - "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=14.16" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/eslint-plugin-import/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": { - "ms": "^2.1.1" - } + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/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/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-jsdoc": { - "version": "44.2.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", - "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@es-joy/jsdoccomment": "~0.39.4", - "are-docs-informative": "^0.0.2", - "comment-parser": "1.3.1", - "debug": "^4.3.4", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.5.0", - "semver": "^7.5.1", - "spdx-expression-parse": "^3.0.1" - }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { - "node": ">=16" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "node": ">=8" } }, - "node_modules/eslint-plugin-n": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", - "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "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": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=12.22.0" + "es-define-property": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "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": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "has-symbols": "^1.0.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "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, + "optional": true + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "function-bind": "^1.1.2" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "node": ">= 0.4" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/help-me": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz", + "integrity": "sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "readable-stream": "^3.6.0" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": ">=8" } }, - "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==", + "node_modules/hpagent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", + "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, + "node": ">=14" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/eslint/node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-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": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.8" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=10.19.0" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "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": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=0.10" + "node": ">= 6" } }, - "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==", + "node_modules/i18next": { + "version": "21.10.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", + "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", "dev": true, - "license": "BSD-2-Clause", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], "dependencies": { - "estraverse": "^5.2.0" + "@babel/runtime": "^7.17.2" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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, - "license": "BSD-2-Clause", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">= 4" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" + "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==", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } }, - "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==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } }, - "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==", + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, - "license": "MIT" + "engines": { + "node": ">= 0.10" + } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8" } }, - "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==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "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", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "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==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "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-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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, - "license": "ISC" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "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==", + "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==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2228,38 +5945,46 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2268,16 +5993,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -2286,865 +6009,1220 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "license": "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" - }, + "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==", "engines": { - "node": "*" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=10.13.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, + "license": "ISC" + }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "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==", + "dev": true + }, + "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==", "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" + "argparse": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, - "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" }, - "engines": { - "node": ">= 0.4" + "bin": { + "jsdoc": "jsdoc.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12.0.0" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "peer": true, + "bin": { + "jsesc": "bin/jsesc" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "node_modules/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/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "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": "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-bigints": { + "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 + }, + "node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jsonata": { + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.8.7.tgz", + "integrity": "sha512-tOW2/hZ+nR2bcQZs+0T62LVe5CHaNa3laFFWb/262r39utN6whJGBF7IR2Wq1QXrDbhftolk5gggW8uUJYlBTQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "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==", + "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": { - "es-define-property": "^1.0.0" + "universalify": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/just-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "dev": true + }, + "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/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "graceful-fs": "^4.1.9" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/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": { - "has-symbols": "^1.0.3" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, - "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" + "uc.micro": "^2.0.0" } }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, + "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==", "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">= 4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "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", + "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==", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.8.19" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "yallist": "^3.0.2" } }, - "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/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/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", + "optional": true, "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "semver": "^6.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "node_modules/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==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optional": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, - "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "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==", + "dev": true, + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 12" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/memorystore": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz", + "integrity": "sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw==", "dev": true, - "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "debug": "^4.3.0", + "lru-cache": "^4.0.3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/memorystore/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": "MIT", "dependencies": { - "is-typed-array": "^1.1.13" - }, + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/memorystore/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 + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.0.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "mime-db": "1.52.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "has-tostringtag": "^1.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.4" - }, + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 8" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/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": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", + "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "8.1.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "license": "MIT", + "node_modules/mocha/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==", "dependencies": { - "has-symbols": "^1.0.2" + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "license": "MIT", + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dependencies": { - "which-typed-array": "^1.1.14" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "license": "MIT", + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/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==", "dependencies": { - "call-bind": "^1.0.2" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, - "license": "MIT" + "engines": { + "node": "*" + } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "node_modules/moment-timezone": { + "version": "0.5.43", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", + "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", "dev": true, - "license": "ISC" + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } }, - "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==", + "node_modules/mqtt": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz", + "integrity": "sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw==", + "dev": true, + "dependencies": { + "commist": "^1.0.0", + "concat-stream": "^2.0.0", + "debug": "^4.1.1", + "duplexify": "^4.1.1", + "help-me": "^3.0.0", + "inherits": "^2.0.3", + "lru-cache": "^6.0.0", + "minimist": "^1.2.5", + "mqtt-packet": "^6.8.0", + "number-allocator": "^1.0.9", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "reinterval": "^1.1.0", + "rfdc": "^1.3.0", + "split2": "^3.1.0", + "ws": "^7.5.5", + "xtend": "^4.0.2" + }, + "bin": { + "mqtt": "bin/mqtt.js", + "mqtt_pub": "bin/pub.js", + "mqtt_sub": "bin/sub.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mqtt-packet": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz", + "integrity": "sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==", "dev": true, - "peer": true + "dependencies": { + "bl": "^4.0.2", + "debug": "^4.1.1", + "process-nextick-args": "^2.0.1" + } }, - "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==", + "node_modules/mqtt/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", "dependencies": { - "argparse": "^2.0.1" + "yallist": "^4.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=10" } }, - "node_modules/js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "node_modules/mqtt/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", "dev": true, "dependencies": { - "xmlcreate": "^2.0.4" + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" } }, - "node_modules/jsdoc": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", - "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "node_modules/multer/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, + "engines": [ + "node >= 0.8" + ], "dependencies": { - "@babel/parser": "^7.20.15", - "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^14.1.1", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^3.0.0", - "markdown-it": "^14.1.0", - "markdown-it-anchor": "^8.6.7", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "underscore": "~1.13.2" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/multer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/multer/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" }, "bin": { - "jsdoc": "jsdoc.js" - }, - "engines": { - "node": ">=12.0.0" + "mkdirp": "bin/cmd.js" } }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", - "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "node_modules/multer/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", - "engines": { - "node": ">=12.0.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/jsdoc/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/multer/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, - "engines": { - "node": ">=8" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "dev": true, - "peer": true, "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" + "mustache": "bin/mustache" } }, - "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-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/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true }, - "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==", + "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/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==", + "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/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/nise": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", + "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", "dev": true, - "license": "MIT", "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" } }, - "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==", + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "type-detect": "4.0.8" } }, - "node_modules/klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.9" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/nise/node_modules/path-to-regexp": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", + "dev": true + }, + "node_modules/nock": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", + "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", "dev": true, - "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 10.13" } }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", "dev": true, + "optional": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "optional": true, "dependencies": { - "uc.micro": "^2.0.0" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "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==", + "node_modules/node-red": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz", + "integrity": "sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "@node-red/editor-api": "3.1.9", + "@node-red/nodes": "3.1.9", + "@node-red/runtime": "3.1.9", + "@node-red/util": "3.1.9", + "basic-auth": "2.0.1", + "bcryptjs": "2.4.3", + "express": "4.19.2", + "fs-extra": "11.1.1", + "node-red-admin": "^3.1.3", + "nopt": "5.0.0", + "semver": "7.5.4" + }, + "bin": { + "node-red": "red.js", + "node-red-pi": "bin/node-red-pi" }, "engines": { - "node": ">=10" + "node": ">=14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "bcrypt": "5.1.0" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "node_modules/node-red-admin": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz", + "integrity": "sha512-RRkjwLjriCKW3bqiU21y3j+wpZ4bDf2EH3IEqxwP6hT4ccIwEK8Nt9dPZRWD6NyWGbEVDSTM5H0/whaRdFCqSw==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.3", + "axios": "^1.6.8", + "bcryptjs": "^2.4.3", + "cli-table": "^0.3.11", + "enquirer": "^2.3.6", + "minimist": "^1.2.8", + "mustache": "^4.2.0", + "read": "^1.0.7" + }, + "bin": { + "node-red-admin": "node-red-admin.js" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "bcrypt": "5.1.1" + } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "node_modules/node-red-admin/node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=6" + } }, - "node_modules/lru-cache": { + "node_modules/node-red-admin/node_modules/bcrypt": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", "dev": true, - "peer": true, + "hasInstallScript": true, + "optional": true, "dependencies": { - "yallist": "^3.0.2" + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" } }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "node_modules/node-red-node-test-helper": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.4.tgz", + "integrity": "sha512-OFXGEkKZpLkgoijAgpUIjzn5RF8QnbwPX9RjfI2LWXq1ACfeXkXcW0i1ioiphrokdE3MiWQJtH5omLNnSNdyaQ==", "dev": true, "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" + "body-parser": "^1.20.2", + "express": "^4.19.2", + "semver": "^7.5.4", + "should": "^13.2.3", + "should-sinon": "^0.0.6", + "sinon": "^11.1.2", + "stoppable": "^1.1.0", + "supertest": "^7.0.0" }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" + "engines": { + "node": ">=14" } }, - "node_modules/markdown-it-anchor": { - "version": "8.6.7", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", - "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "node_modules/node-red/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, - "peerDependencies": { - "@types/markdown-it": "*", - "markdown-it": "*" + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "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==", + "node_modules/node-red/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": { - "marked": "bin/marked.js" + "semver": "bin/semver.js" }, "engines": { - "node": ">= 12" + "node": ">=10" } }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "node_modules/node-red/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/node-watch": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz", + "integrity": "sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, "dependencies": { - "mime-db": "1.52.0" + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, "engines": { - "node": "*" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", "dev": true, - "license": "MIT", + "optional": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/number-allocator": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz", + "integrity": "sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==", + "dev": true, + "dependencies": { + "debug": "^4.3.1", + "js-sdsl": "4.3.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/oauth2orize": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz", + "integrity": "sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "debug": "2.x.x", + "uid2": "0.0.x", + "utils-merge": "1.x.x" }, "engines": { - "node": ">=10" + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/oauth2orize/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/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/oauth2orize/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "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, - "peer": true + "engines": { + "node": ">=0.10.0" + } }, "node_modules/object-inspect": { "version": "1.13.1", @@ -3237,11 +7315,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -3265,11 +7363,19 @@ "node": ">= 0.8.0" } }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -3285,7 +7391,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, "license": "MIT", "dependencies": { "p-limit": "^3.0.2" @@ -3310,11 +7415,85 @@ "node": ">=6" } }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/passport": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz", + "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==", + "dev": true, + "dependencies": { + "passport-strategy": "1.x.x", + "pause": "0.0.1", + "utils-merge": "^1.0.1" + }, + "engines": { + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" + } + }, + "node_modules/passport-http-bearer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz", + "integrity": "sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw==", + "dev": true, + "dependencies": { + "passport-strategy": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/passport-oauth2-client-password": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz", + "integrity": "sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ==", + "dev": true, + "dependencies": { + "passport-strategy": "1.x.x" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3347,12 +7526,34 @@ "dev": true, "license": "MIT" }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==", + "dev": true + }, "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true, - "peer": true + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/possible-typed-array-names": { "version": "1.0.0", @@ -3385,68 +7586,280 @@ "engines": { "node": ">=10.13.0" }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true, + "engines": { + "node": ">= 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, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "license": "MIT" + }, + "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 + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", + "dev": true + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=6.0.0" + "node": ">= 6" } }, - "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==", - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, "engines": { - "node": ">=6" + "node": ">=8.10.0" } }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "dependencies": { + "@babel/runtime": "^7.8.4" + } }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", @@ -3480,6 +7893,73 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/reinterval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", + "integrity": "sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, "node_modules/requizzle": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", @@ -3507,6 +7987,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -3517,6 +8003,21 @@ "node": ">=4" } }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -3528,6 +8029,12 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -3587,6 +8094,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/safe-regex-test": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", @@ -3605,6 +8117,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true + }, "node_modules/semver": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", @@ -3618,6 +8142,93 @@ "node": ">=10" } }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-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, + "optional": true + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -3652,6 +8263,12 @@ "node": ">= 0.4" } }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3675,6 +8292,69 @@ "node": ">=8" } }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-sinon": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz", + "integrity": "sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g==", + "dev": true, + "peerDependencies": { + "should": ">= 8.x" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", + "dev": true + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -3694,6 +8374,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "optional": true + }, + "node_modules/sinon": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "deprecated": "16.1.1", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", @@ -3701,24 +8407,109 @@ "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", + "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": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "dev": true, + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/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==", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true, - "license": "CC0-1.0" - }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -3775,7 +8566,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -3798,7 +8588,6 @@ "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": { "node": ">=8" @@ -3807,11 +8596,55 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/superagent": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", + "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^3.5.1", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supertest": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz", + "integrity": "sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==", + "dev": true, + "dependencies": { + "methods": "^1.1.2", + "superagent": "^9.0.1" + }, + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -3833,6 +8666,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -3845,11 +8701,61 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "peer": true, "engines": { "node": ">=4" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "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, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "optional": true + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -3863,6 +8769,12 @@ "strip-bom": "^3.0.0" } }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -3876,6 +8788,15 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -3889,6 +8810,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", @@ -3966,12 +8909,48 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dev": true, + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uid2": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz", + "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==", + "dev": true + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -3994,6 +8973,64 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", "dev": true }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", @@ -4013,7 +9050,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "escalade": "^3.1.2", "picocolors": "^1.0.1" @@ -4035,6 +9071,67 @@ "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, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "optional": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "optional": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4088,6 +9185,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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, + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -4098,31 +9205,148 @@ "node": ">=0.10.0" } }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "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==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/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": "7.5.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", + "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "dev": true, + "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/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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, + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", "dev": true }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "peer": true + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "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/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" diff --git a/package.json b/package.json index 298d084..e4a92a3 100644 --- a/package.json +++ b/package.json @@ -38,12 +38,14 @@ "mocha": "^10.4.0" }, "devDependencies": { - "@babel/eslint-parser": "^7.21.8", - "eslint": "^8.41.0", + "@babel/eslint-parser": "^7.24.5", + "@babel/preset-env": "^7.24.5", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.8.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsdoc": "^44.2.4", + "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^15.7.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", @@ -59,7 +61,7 @@ "extends": "./.eslintrc.yml" }, "scripts": { - "fix": "npx eslint ./src/. && npx eslint ./src/. --fix", + "fix": "prettier --plugin-search-dir . --write ./src/. && npx eslint ./src/. --fix", "lint": "prettier --plugin-search-dir . --check ./src/. && npx eslint ./src/.", "format": "prettier --plugin-search-dir . --write ./src/.", "doc": "jsdoc -c jsdoc.json", diff --git a/src/oauth2.js b/src/oauth2.js index 9bea803..6b063c6 100644 --- a/src/oauth2.js +++ b/src/oauth2.js @@ -3,26 +3,9 @@ module.exports = function (RED) { const axios = require('axios'); const { URL } = require('url'); - const crypto = require('crypto'); const http = require('http'); const https = require('https'); - /** - * Replaces circular references in an object to allow safe stringification. - * - * @returns {Function} A replacer function for JSON.stringify. - */ - const getCircularReplacer = () => { - const seen = new WeakSet(); - return (key, value) => { - if (typeof value === 'object' && value !== null) { - if (seen.has(value)) return; - seen.add(value); - } - return value; - }; - }; - /** * Class representing an OAuth2 Node. */ @@ -76,7 +59,6 @@ module.exports = function (RED) { this.configureProxy(); // Configure proxy settings // console.log('Configured proxy settings:', this.proxy); - delete msg.oauth2Request; // Remove oauth2Request from msg options.form = this.cleanForm(options.form); // Clean the form data @@ -105,7 +87,7 @@ module.exports = function (RED) { 'Content-Type': 'application/x-www-form-urlencoded', Accept: 'application/json' }; - + // Set options based on grant type if (msg.oauth2Request) { const creds = msg.oauth2Request.credentials; @@ -115,21 +97,21 @@ module.exports = function (RED) { resource: creds.resource || this.resource, state: creds.state || this.state }; - + if (creds.grant_type === 'password') { form.username = creds.username || this.username; form.password = creds.password || this.password; } else if (creds.grant_type === 'refresh_token') { form.refresh_token = creds.refresh_token; } - + if (this.client_credentials_in_body) { form.client_id = creds.client_id || this.client_id; form.client_secret = creds.client_secret || this.client_secret; } else { headers.Authorization = 'Basic ' + Buffer.from(`${creds.client_id}:${creds.client_secret}`).toString('base64'); } - + url = msg.oauth2Request.access_token_url || this.access_token_url; } else { form = { @@ -138,7 +120,7 @@ module.exports = function (RED) { resource: this.resource, state: this.state }; - + if (this.grant_type === 'password') { form.username = this.username; form.password = this.password; @@ -158,7 +140,7 @@ module.exports = function (RED) { form.redirect_uri = this.redirect_uri; } } - + if (this.client_credentials_in_body) { form.client_id = this.client_id; form.client_secret = this.client_secret; @@ -166,7 +148,7 @@ module.exports = function (RED) { headers.Authorization = 'Basic ' + Buffer.from(`${this.client_id}:${this.client_secret}`).toString('base64'); } } - + return { method: 'POST', url: url, @@ -175,7 +157,7 @@ module.exports = function (RED) { form: form }; } - + /** * Configures proxy settings. */ @@ -207,12 +189,22 @@ module.exports = function (RED) { * @returns {Promise} - The response from the request. */ async makePostRequest(options) { - return axios.post(options.url, options.form, { + const axiosOptions = { + method: options.method, + url: options.url, headers: options.headers, - proxy: this.proxy, - httpAgent: new http.Agent({ rejectUnauthorized: this.rejectUnauthorized }), - httpsAgent: new https.Agent({ rejectUnauthorized: this.rejectUnauthorized }) - }); + data: new URLSearchParams(options.form).toString(), + proxy: false, + httpAgent: new http.Agent({ rejectUnauthorized: options.rejectUnauthorized }), + httpsAgent: new https.Agent({ rejectUnauthorized: options.rejectUnauthorized }) + }; + + if (this.proxy) { + const HttpsProxyAgent = require('https-proxy-agent'); + axiosOptions.httpsAgent = new HttpsProxyAgent(this.proxy); + } + + return axios(axiosOptions); } /** @@ -223,6 +215,7 @@ module.exports = function (RED) { */ handleResponse(response, msg, send) { msg.oauth2Response = response.data || {}; + msg.headers = response.headers || {}; // Include headers in the message this.setStatus('green', `HTTP ${response.status}, ok`); send(msg); } @@ -243,7 +236,7 @@ module.exports = function (RED) { send([null, msg]); } } - + /** * Sets the status of the node. * @param {string} color - The color of the status indicator. diff --git a/test/oauth2_spec.js b/test/oauth2_spec.js index 8d40067..012ee33 100644 --- a/test/oauth2_spec.js +++ b/test/oauth2_spec.js @@ -1,35 +1,34 @@ -/* eslint-disable no-unused-vars */ const should = require('should'); // eslint-disable-line no-unused-vars -/* eslint-enable no-unused-vars */const helper = require('node-red-node-test-helper'); +const helper = require('node-red-node-test-helper'); const nock = require('nock'); const oauth2Node = require('../src/oauth2.js'); helper.init(require.resolve('node-red')); describe('OAuth2 Node', function () { - this.timeout(10000); // Increase timeout to 10000ms for more room + this.timeout(5000); // Increase timeout to 10000ms for more room - before(function(done) { + before(function (done) { console.log('Starting Node-RED server...'); helper.startServer(done); }); - after(function(done) { + after(function (done) { console.log('Stopping Node-RED server...'); helper.stopServer(done); }); - afterEach(function(done) { + afterEach(function (done) { console.log('Unloading flows...'); - helper.unload().then(function() { + helper.unload().then(function () { done(); }); }); - it('should be loaded', function(done) { + it('should be loaded', function (done) { console.log('Testing if node loads correctly...'); const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; - helper.load(oauth2Node, flow, function() { + helper.load(oauth2Node, flow, function () { const n1 = helper.getNode('n1'); try { n1.should.have.property('name', 'oauth2'); @@ -42,7 +41,7 @@ describe('OAuth2 Node', function () { }); }); - it('should handle input and make POST request', function(done) { + it('should handle input and make POST request', function (done) { console.log('Testing input handling and POST request...'); const flow = [ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, @@ -53,16 +52,14 @@ describe('OAuth2 Node', function () { clientSecret: 'testClientSecret' }; - helper.load(oauth2Node, flow, credentials, function() { + helper.load(oauth2Node, flow, credentials, function () { const n1 = helper.getNode('n1'); const n2 = helper.getNode('n2'); console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com') - .post('/oauth2/token') - .reply(200, { access_token: 'mocked_access_token' }); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - n2.on('input', function(msg) { + n2.on('input', function (msg) { console.log('Received input on helper node'); try { msg.should.have.property('oauth2Response'); @@ -90,7 +87,7 @@ describe('OAuth2 Node', function () { }); }); - it('should handle errors', function(done) { + it('should handle errors', function (done) { console.log('Testing error handling...'); const flow = [ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, @@ -101,16 +98,14 @@ describe('OAuth2 Node', function () { clientSecret: 'testClientSecret' }; - helper.load(oauth2Node, flow, credentials, function() { + helper.load(oauth2Node, flow, credentials, function () { const n1 = helper.getNode('n1'); const n3 = helper.getNode('n3'); console.log('Setting up nock for invalid-url.com...'); - const scope = nock('https://invalid-url.com') - .post('/') - .replyWithError('mocked error'); + const scope = nock('https://invalid-url.com').post('/').replyWithError('mocked error'); - n3.on('input', function(msg) { + n3.on('input', function (msg) { console.log('Received input on error helper node'); try { msg.should.have.property('oauth2Error'); @@ -136,4 +131,338 @@ describe('OAuth2 Node', function () { }); }); }); + + it('should handle invalid client credentials', function (done) { + console.log('Testing invalid client credentials handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'invalidClientId', + clientSecret: 'invalidClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(401, { error: 'invalid_client' }); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('status', 401); + msg.oauth2Error.data.should.have.property('error', 'invalid_client'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed invalid client credentials handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'invalidClientId', + client_secret: 'invalidClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + it('should handle authorization_code grant type', function (done) { + console.log('Testing authorization_code grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { + access_token: 'mocked_access_token', + refresh_token: 'mocked_refresh_token' + }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed authorization_code grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'authorization_code', + code: 'testAuthorizationCode', + redirect_uri: 'https://example.com/redirect', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); + + it('should handle refresh_token grant type', function (done) { + console.log('Testing refresh_token grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'new_mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'new_mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed refresh_token grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'refresh_token', + refresh_token: 'testRefreshToken', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); + + it('should handle network failure', function (done) { + console.log('Testing network failure handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').replyWithError('Network error'); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('message', 'Network error'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed network failure handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + it('should handle custom headers in response', function (done) { + console.log('Testing custom headers handling...'); + const flow = [ + { + id: 'n1', + type: 'oauth2', + name: 'test name', + wires: [['n2']], + access_token_url: 'https://example.com/oauth2/token', + headers: { 'X-Custom-Header': 'CustomValue' } + }, + { id: 'n2', type: 'helper' } + ]; + + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }, { 'x-custom-header': 'CustomValue' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('headers'); + msg.headers.should.have.property('x-custom-header', 'CustomValue'); + scope.done(); + done(); + } catch (err) { + console.error('Failed custom headers handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); + + it('should handle multiple scopes', function (done) { + console.log('Testing multiple scopes handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed multiple scopes handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'scope1 scope2' + } + } + }); + }); + }); + it('should handle proxy settings', function (done) { + console.log('Testing proxy settings handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], access_token_url: 'https://example.com/oauth2/token' }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + const proxySettings = { + prox: 'http://proxy.example.com:8080' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + n1.prox = proxySettings.prox; + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); + done(); + } catch (err) { + console.error('Failed proxy settings handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); }); diff --git a/yarn.lock b/yarn.lock index 842e60f..5bf38fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,12 +18,12 @@ "@babel/highlight" "^7.24.2" picocolors "^1.0.0" -"@babel/compat-data@^7.23.5": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": version "7.24.4" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== -"@babel/core@^7.0.0", "@babel/core@^7.11.0": +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": version "7.24.5" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== @@ -44,7 +44,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/eslint-parser@^7.21.8": +"@babel/eslint-parser@^7.24.5": version "7.24.5" resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz" integrity sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ== @@ -63,7 +63,21 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.23.6": +"@babel/helper-annotate-as-pure@^7.22.5": + 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== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": version "7.23.6" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== @@ -74,6 +88,41 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4", "@babel/helper-create-class-features-plugin@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz" + integrity sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.24.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.24.5" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + "@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" @@ -94,14 +143,21 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.24.3": +"@babel/helper-member-expression-to-functions@^7.23.0", "@babel/helper-member-expression-to-functions@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz" + integrity sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA== + dependencies: + "@babel/types" "^7.24.5" + +"@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": version "7.24.3" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== dependencies: "@babel/types" "^7.24.0" -"@babel/helper-module-transforms@^7.24.5": +"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.5": version "7.24.5" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz" integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== @@ -112,13 +168,50 @@ "@babel/helper-split-export-declaration" "^7.24.5" "@babel/helper-validator-identifier" "^7.24.5" -"@babel/helper-simple-access@^7.24.5": +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz" + integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== + +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz" + integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5", "@babel/helper-simple-access@^7.24.5": version "7.24.5" resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz" integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== dependencies: "@babel/types" "^7.24.5" +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-split-export-declaration@^7.24.5": version "7.24.5" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz" @@ -131,7 +224,7 @@ resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== -"@babel/helper-validator-identifier@^7.24.5": +"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": version "7.24.5" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz" integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== @@ -141,6 +234,15 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== +"@babel/helper-wrap-function@^7.22.20": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz" + integrity sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw== + dependencies: + "@babel/helper-function-name" "^7.23.0" + "@babel/template" "^7.24.0" + "@babel/types" "^7.24.5" + "@babel/helpers@^7.24.5": version "7.24.5" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz" @@ -165,6 +267,665 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz" integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz" + integrity sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz" + integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz" + integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.24.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz" + integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + 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== + +"@babel/plugin-syntax-async-generators@^7.8.4": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz" + integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-attributes@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz" + integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-import-meta@^7.10.4": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + 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== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz" + integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-async-generator-functions@^7.24.3": + version "7.24.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz" + integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz" + integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== + dependencies: + "@babel/helper-module-imports" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-remap-async-to-generator" "^7.22.20" + +"@babel/plugin-transform-block-scoped-functions@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz" + integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-block-scoping@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz" + integrity sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-class-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz" + integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-class-static-block@^7.24.4": + version "7.24.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz" + integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.4" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz" + integrity sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-split-export-declaration" "^7.24.5" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz" + integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/template" "^7.24.0" + +"@babel/plugin-transform-destructuring@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz" + integrity sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-dotall-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz" + integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-duplicate-keys@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz" + integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-dynamic-import@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz" + integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz" + integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-export-namespace-from@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz" + integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz" + integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz" + integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-json-strings@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz" + integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz" + integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz" + integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz" + integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-modules-amd@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz" + integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-modules-commonjs@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz" + integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-modules-systemjs@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz" + integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/plugin-transform-modules-umd@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz" + integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-new-target@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz" + integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz" + integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz" + integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz" + integrity sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA== + dependencies: + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.5" + +"@babel/plugin-transform-object-super@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz" + integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-replace-supers" "^7.24.1" + +"@babel/plugin-transform-optional-catch-binding@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz" + integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.1", "@babel/plugin-transform-optional-chaining@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz" + integrity sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz" + integrity sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-private-methods@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz" + integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.1" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-private-property-in-object@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz" + integrity sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz" + integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-regenerator@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz" + integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz" + integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-shorthand-properties@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz" + integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-spread@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz" + integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz" + integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-template-literals@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz" + integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-typeof-symbol@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz" + integrity sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + +"@babel/plugin-transform-unicode-escapes@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz" + integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-property-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz" + integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz" + integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.1": + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz" + integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/preset-env@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz" + integrity sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ== + dependencies: + "@babel/compat-data" "^7.24.4" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.1" + "@babel/plugin-syntax-import-attributes" "^7.24.1" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.1" + "@babel/plugin-transform-async-generator-functions" "^7.24.3" + "@babel/plugin-transform-async-to-generator" "^7.24.1" + "@babel/plugin-transform-block-scoped-functions" "^7.24.1" + "@babel/plugin-transform-block-scoping" "^7.24.5" + "@babel/plugin-transform-class-properties" "^7.24.1" + "@babel/plugin-transform-class-static-block" "^7.24.4" + "@babel/plugin-transform-classes" "^7.24.5" + "@babel/plugin-transform-computed-properties" "^7.24.1" + "@babel/plugin-transform-destructuring" "^7.24.5" + "@babel/plugin-transform-dotall-regex" "^7.24.1" + "@babel/plugin-transform-duplicate-keys" "^7.24.1" + "@babel/plugin-transform-dynamic-import" "^7.24.1" + "@babel/plugin-transform-exponentiation-operator" "^7.24.1" + "@babel/plugin-transform-export-namespace-from" "^7.24.1" + "@babel/plugin-transform-for-of" "^7.24.1" + "@babel/plugin-transform-function-name" "^7.24.1" + "@babel/plugin-transform-json-strings" "^7.24.1" + "@babel/plugin-transform-literals" "^7.24.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" + "@babel/plugin-transform-member-expression-literals" "^7.24.1" + "@babel/plugin-transform-modules-amd" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-modules-systemjs" "^7.24.1" + "@babel/plugin-transform-modules-umd" "^7.24.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.24.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" + "@babel/plugin-transform-numeric-separator" "^7.24.1" + "@babel/plugin-transform-object-rest-spread" "^7.24.5" + "@babel/plugin-transform-object-super" "^7.24.1" + "@babel/plugin-transform-optional-catch-binding" "^7.24.1" + "@babel/plugin-transform-optional-chaining" "^7.24.5" + "@babel/plugin-transform-parameters" "^7.24.5" + "@babel/plugin-transform-private-methods" "^7.24.1" + "@babel/plugin-transform-private-property-in-object" "^7.24.5" + "@babel/plugin-transform-property-literals" "^7.24.1" + "@babel/plugin-transform-regenerator" "^7.24.1" + "@babel/plugin-transform-reserved-words" "^7.24.1" + "@babel/plugin-transform-shorthand-properties" "^7.24.1" + "@babel/plugin-transform-spread" "^7.24.1" + "@babel/plugin-transform-sticky-regex" "^7.24.1" + "@babel/plugin-transform-template-literals" "^7.24.1" + "@babel/plugin-transform-typeof-symbol" "^7.24.5" + "@babel/plugin-transform-unicode-escapes" "^7.24.1" + "@babel/plugin-transform-unicode-property-regex" "^7.24.1" + "@babel/plugin-transform-unicode-regex" "^7.24.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz" + integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.15", "@babel/template@^7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" @@ -190,7 +951,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5": +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.4.4": version "7.24.5" resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz" integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== @@ -298,6 +1059,21 @@ dependencies: lodash "^4.17.21" +"@mapbox/node-pre-gyp@^1.0.10", "@mapbox/node-pre-gyp@^1.0.11": + version "1.0.11" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz" @@ -305,6 +1081,111 @@ dependencies: eslint-scope "5.1.1" +"@node-red/editor-api@3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz" + integrity sha512-HHhFiwxmD8V5+U/xe+Gl9T0oAnwFeA7zisG8VW+Ruh3apGQvV9l5UoL9Yg00jEPDOhL99k/wqcXI42lakEkiKw== + dependencies: + "@node-red/editor-client" "3.1.9" + "@node-red/util" "3.1.9" + bcryptjs "2.4.3" + body-parser "1.20.2" + clone "2.1.2" + cors "2.8.5" + express "4.19.2" + express-session "1.17.3" + memorystore "1.6.7" + mime "3.0.0" + multer "1.4.5-lts.1" + mustache "4.2.0" + oauth2orize "1.11.1" + passport "0.6.0" + passport-http-bearer "1.0.1" + passport-oauth2-client-password "0.1.2" + ws "7.5.6" + optionalDependencies: + bcrypt "5.1.0" + +"@node-red/editor-client@3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.9.tgz" + integrity sha512-k8ik9fqcUxwsjEL0bBywNRYoFk7VZxdcoXRKCtcB3H8T/KRgQBDZu4j27dtff/5WPqnvtmXOQBbdDrhluMO0ng== + +"@node-red/nodes@3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.9.tgz" + integrity sha512-H0ZJjgmc7tbDBExF8WWIab7VJ1PBJxqExc6HWfb5FJQcOyA9mzCXwBduirWGxWAbQzZvq5GLgzy5ECzDJIjbSQ== + dependencies: + acorn "8.8.2" + acorn-walk "8.2.0" + ajv "8.12.0" + body-parser "1.20.2" + cheerio "1.0.0-rc.10" + content-type "1.0.5" + cookie "0.5.0" + cookie-parser "1.4.6" + cors "2.8.5" + cronosjs "1.7.1" + denque "2.1.0" + form-data "4.0.0" + fs-extra "11.1.1" + got "12.6.0" + hash-sum "2.0.0" + hpagent "1.2.0" + https-proxy-agent "5.0.1" + iconv-lite "0.6.3" + is-utf8 "0.2.1" + js-yaml "4.1.0" + media-typer "1.1.0" + mqtt "4.3.7" + multer "1.4.5-lts.1" + mustache "4.2.0" + node-watch "0.7.4" + on-headers "1.0.2" + raw-body "2.5.2" + tough-cookie "4.1.3" + uuid "9.0.0" + ws "7.5.6" + xml2js "0.6.2" + +"@node-red/registry@3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.9.tgz" + integrity sha512-lm1jNGO5ebax5kw5A2stOymMVQpuAGJ24M+3bfPYj3djzgBq4qKbNX6EAJLtyLHlCKecAybJoXDNpNcCnl7BXQ== + dependencies: + "@node-red/util" "3.1.9" + clone "2.1.2" + fs-extra "11.1.1" + semver "7.5.4" + tar "6.2.1" + uglify-js "3.17.4" + +"@node-red/runtime@3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.9.tgz" + integrity sha512-tpuHE5gEqLx9OoRjSxsyh683yGCnBlAAwbjkVv5lonqYqLJwE3DCJnMuHYj1lPUDzSc0QzhE9efm+LIhAhBU4g== + dependencies: + "@node-red/registry" "3.1.9" + "@node-red/util" "3.1.9" + async-mutex "0.4.0" + clone "2.1.2" + express "4.19.2" + fs-extra "11.1.1" + json-stringify-safe "5.0.1" + +"@node-red/util@3.1.9": + version "3.1.9" + resolved "https://registry.npmjs.org/@node-red/util/-/util-3.1.9.tgz" + integrity sha512-BT7mMds8MFrXwgGuNjmk/vY0X621hirLcqAOp5/ZrrFuzPVoK4PDgoNx5igYD/HVQbVcJTHfN1cRopSFPfdF2Q== + dependencies: + fs-extra "11.1.1" + i18next "21.10.0" + json-stringify-safe "5.0.1" + jsonata "1.8.7" + lodash.clonedeep "^4.5.0" + moment "2.29.4" + moment-timezone "0.5.43" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -326,6 +1207,65 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": + version "1.8.6" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^11.2.2": + version "11.2.2" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz" + integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@sinonjs/fake-timers@^7.1.2": + version "7.1.2" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz" + integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/samsam@^6.0.2": + version "6.1.3" + resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz" + integrity sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ== + dependencies: + "@sinonjs/commons" "^1.6.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.2": + version "0.7.2" + resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== + +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + +"@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" @@ -354,16 +1294,46 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + 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== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== +acorn-walk@8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: version "8.11.3" resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@8.8.2: + version "8.8.2" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +agent-base@6: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" @@ -374,6 +1344,26 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@8.12.0: + version "8.12.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@^4.1.1, ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^4.1.3: + 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== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -386,18 +1376,44 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" +anymatch@~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== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" + integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== + +"aproba@^1.0.3 || ^2.0.0": + 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== + are-docs-informative@^0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz" integrity sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" @@ -411,6 +1427,11 @@ array-buffer-byte-length@^1.0.1: call-bind "^1.0.5" is-array-buffer "^3.0.4" +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + array-includes@^3.1.7: version "3.1.8" resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" @@ -469,6 +1490,18 @@ arraybuffer.prototype.slice@^1.0.3: is-array-buffer "^3.0.4" is-shared-array-buffer "^1.0.2" +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +async-mutex@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz" + integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== + dependencies: + tslib "^2.4.0" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -481,7 +1514,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@>=1.3.3: +axios@^1.6.8, axios@>=1.3.3: version "1.7.1" resolved "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz" integrity sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q== @@ -490,16 +1523,110 @@ axios@>=1.3.3: form-data "^4.0.0" proxy-from-env "^1.1.0" +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +basic-auth@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +bcrypt@5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz" + integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.10" + node-addon-api "^5.0.0" + +bcrypt@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz" + integrity sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.11" + node-addon-api "^5.0.0" + +bcryptjs@^2.4.3, bcryptjs@2.4.3: + version "2.4.3" + resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz" + integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^4.0.2: + version "4.1.0" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + bluebird@^3.7.2: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +body-parser@^1.20.2, body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -508,7 +1635,26 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -browserslist@^4.22.2, "browserslist@>= 4.21.0": +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@~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== + dependencies: + fill-range "^7.1.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": version "4.23.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -518,6 +1664,19 @@ browserslist@^4.22.2, "browserslist@>= 4.21.0": node-releases "^2.0.14" update-browserslist-db "^1.0.13" +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + builtins@^5.0.1: version "5.1.0" resolved "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz" @@ -525,6 +1684,36 @@ builtins@^5.0.1: dependencies: semver "^7.0.0" +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@types/http-cache-semantics" "^4.0.2" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.3" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" @@ -541,6 +1730,11 @@ callsites@^3.0.0: resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + caniuse-lite@^1.0.30001587: version "1.0.30001620" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz" @@ -562,7 +1756,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -570,6 +1764,71 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +cheerio-select@^1.5.0: + version "1.6.0" + resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz" + integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== + dependencies: + css-select "^4.3.0" + css-what "^6.0.1" + domelementtype "^2.2.0" + domhandler "^4.3.1" + domutils "^2.8.0" + +cheerio@1.0.0-rc.10: + version "1.0.0-rc.10" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz" + integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== + dependencies: + cheerio-select "^1.5.0" + dom-serializer "^1.3.2" + domhandler "^4.2.0" + htmlparser2 "^6.1.0" + parse5 "^6.0.1" + parse5-htmlparser2-tree-adapter "^6.0.1" + tslib "^2.2.0" + +chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + 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" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +cli-table@^0.3.11: + version "0.3.11" + resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz" + integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== + dependencies: + colors "1.0.3" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -594,6 +1853,16 @@ color-name@1.1.3: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-support@^1.1.2: + 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== + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -601,21 +1870,134 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -comment-parser@1.3.1: +comment-parser@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz" + integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== + +commist@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz" + integrity sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg== + dependencies: + leven "^2.1.0" + minimist "^1.1.0" + +component-emitter@^1.3.0: version "1.3.1" - resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz" - integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5, content-type@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + convert-source-map@^2.0.0: 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== +cookie-parser@1.4.6: + version "1.4.6" + resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz" + integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== + dependencies: + cookie "0.4.1" + cookie-signature "1.0.6" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +cookiejar@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== + +core-js-compat@^3.31.0, core-js-compat@^3.36.1: + version "3.37.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz" + integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== + dependencies: + browserslist "^4.23.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@2.8.5: + version "2.8.5" + resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cronosjs@1.7.1: + version "1.7.1" + resolved "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz" + integrity sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q== + cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -625,6 +2007,22 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +css-select@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + data-view-buffer@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" @@ -659,18 +2057,49 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4, debug@4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@2.x.x: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-is@^0.1.3: 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== +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" @@ -694,6 +2123,44 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +denque@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@~2.0.0, depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + +dezalgo@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + +diff@^5.0.0, diff@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" @@ -708,11 +2175,86 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dom-serializer@^1.0.1, dom-serializer@^1.3.2: + version "1.4.1" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.5.2, domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +duplexify@^4.1.1: + version "4.1.3" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" + integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.0.2" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + electron-to-chromium@^1.4.668: version "1.4.775" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz" integrity sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + 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== + dependencies: + once "^1.4.0" + +enquirer@^2.3.6: + version "2.4.1" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + entities@^4.4.0: version "4.5.0" resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" @@ -814,11 +2356,16 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.1.2: +escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" @@ -829,7 +2376,7 @@ escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: +escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -905,6 +2452,15 @@ eslint-plugin-jsdoc@^44.2.4: semver "^7.5.1" spdx-expression-parse "^3.0.1" +eslint-plugin-mocha@^10.4.3: + version "10.4.3" + resolved "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz" + integrity sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ== + dependencies: + eslint-utils "^3.0.0" + globals "^13.24.0" + rambda "^7.4.0" + "eslint-plugin-n@^15.0.0 || ^16.0.0 ", eslint-plugin-n@^15.7.0: version "15.7.0" resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz" @@ -981,7 +2537,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.1, eslint@^8.41.0, eslint@>=4.19.1, eslint@>=5, eslint@>=7.0.0, eslint@>=7.28.0: +"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.1, eslint@^8.57.0, eslint@>=4.19.1, eslint@>=5, eslint@>=7.0.0, eslint@>=7.28.0: version "8.57.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -1063,6 +2619,62 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +express-session@1.17.3: + version "1.17.3" + resolved "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz" + integrity sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw== + dependencies: + cookie "0.4.2" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~2.0.0" + on-headers "~1.0.2" + parseurl "~1.3.3" + safe-buffer "5.2.1" + uid-safe "~2.1.5" + +express@^4.19.2, express@4.19.2: + version "4.19.2" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" @@ -1083,6 +2695,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + fastq@^1.6.0: version "1.17.1" resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" @@ -1097,7 +2714,27 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -find-up@^5.0.0: +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + 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" + +find-up@^5.0.0, find-up@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -1114,6 +2751,11 @@ flat-cache@^3.0.4: keyv "^4.5.3" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^3.2.9: version "3.3.1" resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" @@ -1131,7 +2773,12 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -form-data@^4.0.0: +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + +form-data@^4.0.0, form-data@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== @@ -1140,6 +2787,41 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +formidable@^3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz" + integrity sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og== + dependencies: + dezalgo "^1.0.4" + hexoid "^1.0.0" + once "^1.4.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@11.1.1: + version "11.1.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -1165,11 +2847,31 @@ functions-have-names@^1.2.3: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + gensync@^1.0.0-beta.2: 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== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" @@ -1181,6 +2883,11 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" @@ -1197,7 +2904,14 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^7.1.3: +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3, glob@^7.1.6: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -1209,12 +2923,23 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: +globals@^13.19.0, globals@^13.24.0: version "13.24.0" resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== @@ -1236,7 +2961,24 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.9: +got@12.6.0: + version "12.6.0" + resolved "https://registry.npmjs.org/got/-/got-12.6.0.tgz" + integrity sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: 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== @@ -1285,6 +3027,16 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +hash-sum@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" @@ -1292,6 +3044,97 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: dependencies: function-bind "^1.1.2" +he@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +help-me@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz" + integrity sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ== + dependencies: + glob "^7.1.6" + readable-stream "^3.6.0" + +hexoid@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz" + integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== + +hpagent@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz" + integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-cache-semantics@^4.1.1: + 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== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http2-wrapper@^2.1.10: + version "2.2.1" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +https-proxy-agent@^5.0.0, https-proxy-agent@5.0.1: + 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== + dependencies: + agent-base "6" + debug "4" + +i18next@21.10.0: + version "21.10.0" + resolved "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz" + integrity sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg== + dependencies: + "@babel/runtime" "^7.17.2" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^5.1.1, ignore@^5.2.0: version "5.3.1" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" @@ -1318,7 +3161,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1332,6 +3175,11 @@ internal-slot@^1.0.7: hasown "^2.0.0" side-channel "^1.0.4" +ipaddr.js@1.9.1: + 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== + is-array-buffer@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" @@ -1347,6 +3195,13 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" @@ -1386,7 +3241,12 @@ is-extglob@^2.1.1: resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-glob@^4.0.0, is-glob@^4.0.3: +is-fullwidth-code-point@^3.0.0: + 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== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1405,11 +3265,21 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + is-path-inside@^3.0.3: 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== +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" @@ -1446,6 +3316,16 @@ is-typed-array@^1.1.13: dependencies: which-typed-array "^1.1.14" +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-utf8@0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" @@ -1458,17 +3338,27 @@ isarray@^2.0.5: resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +js-sdsl@4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^4.1.0: +js-yaml@^4.1.0, js-yaml@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -1513,6 +3403,11 @@ jsesc@^2.5.1: resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + json-buffer@3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" @@ -1523,6 +3418,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@>=0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" @@ -1533,6 +3433,11 @@ json-stable-stringify-without-jsonify@^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== +json-stringify-safe@^5.0.1, json-stringify-safe@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + json5@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" @@ -1545,6 +3450,25 @@ json5@^2.2.3: resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +jsonata@1.8.7: + version "1.8.7" + resolved "https://registry.npmjs.org/jsonata/-/jsonata-1.8.7.tgz" + integrity sha512-tOW2/hZ+nR2bcQZs+0T62LVe5CHaNa3laFFWb/262r39utN6whJGBF7IR2Wq1QXrDbhftolk5gggW8uUJYlBTQ== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +just-extend@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz" + integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== + keyv@^4.5.3: version "4.5.4" resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" @@ -1559,6 +3483,11 @@ klaw@^3.0.0: dependencies: graceful-fs "^4.1.9" +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz" + integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== + levn@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" @@ -1581,6 +3510,21 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" @@ -1591,6 +3535,27 @@ lodash@^4.17.15, lodash@^4.17.21: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^4.0.3: + version "4.1.5" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" @@ -1598,6 +3563,20 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.1.0: + 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== + dependencies: + semver "^6.0.0" + markdown-it-anchor@^8.6.7: version "8.6.7" resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" @@ -1625,18 +3604,71 @@ mdurl@^2.0.0: resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +media-typer@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" + integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== + +memorystore@1.6.7: + version "1.6.7" + resolved "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz" + integrity sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw== + dependencies: + debug "^4.3.0" + lru-cache "^4.0.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@^1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + mime-db@1.52.0: version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~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== dependencies: mime-db "1.52.0" +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mime@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" @@ -1644,36 +3676,320 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.6: +minimatch@^5.0.1, minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mkdirp@^1.0.4: +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^0.5.4: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mocha@^10.4.0: + version "10.4.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz" + integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "8.1.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +moment-timezone@0.5.43: + version "0.5.43" + resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz" + integrity sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ== + dependencies: + moment "^2.29.4" + +moment@^2.29.4, moment@2.29.4: + version "2.29.4" + resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +mqtt-packet@^6.8.0: + version "6.10.0" + resolved "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz" + integrity sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA== + dependencies: + bl "^4.0.2" + debug "^4.1.1" + process-nextick-args "^2.0.1" + +mqtt@4.3.7: + version "4.3.7" + resolved "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz" + integrity sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw== + dependencies: + commist "^1.0.0" + concat-stream "^2.0.0" + debug "^4.1.1" + duplexify "^4.1.1" + help-me "^3.0.0" + inherits "^2.0.3" + lru-cache "^6.0.0" + minimist "^1.2.5" + mqtt-packet "^6.8.0" + number-allocator "^1.0.9" + pump "^3.0.0" + readable-stream "^3.6.0" + reinterval "^1.1.0" + rfdc "^1.3.0" + split2 "^3.1.0" + ws "^7.5.5" + xtend "^4.0.2" + ms@^2.1.1: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@1.4.5-lts.1: + version "1.4.5-lts.1" + resolved "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz" + integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== + dependencies: + append-field "^1.0.0" + busboy "^1.0.0" + concat-stream "^1.5.2" + mkdirp "^0.5.4" + object-assign "^4.1.1" + type-is "^1.6.4" + xtend "^4.0.0" + +mustache@^4.2.0, mustache@4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +nise@^5.1.0: + version "5.1.9" + resolved "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz" + integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^11.2.2" + "@sinonjs/text-encoding" "^0.7.2" + just-extend "^6.2.0" + path-to-regexp "^6.2.1" + +nock@^13.5.4: + version "13.5.4" + resolved "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz" + integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== + dependencies: + debug "^4.1.0" + json-stringify-safe "^5.0.1" + propagate "^2.0.0" + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +node-red-admin@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz" + integrity sha512-RRkjwLjriCKW3bqiU21y3j+wpZ4bDf2EH3IEqxwP6hT4ccIwEK8Nt9dPZRWD6NyWGbEVDSTM5H0/whaRdFCqSw== + dependencies: + ansi-colors "^4.1.3" + axios "^1.6.8" + bcryptjs "^2.4.3" + cli-table "^0.3.11" + enquirer "^2.3.6" + minimist "^1.2.8" + mustache "^4.2.0" + read "^1.0.7" + optionalDependencies: + bcrypt "5.1.1" + +node-red-node-test-helper@^0.3.4: + version "0.3.4" + resolved "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.4.tgz" + integrity sha512-OFXGEkKZpLkgoijAgpUIjzn5RF8QnbwPX9RjfI2LWXq1ACfeXkXcW0i1ioiphrokdE3MiWQJtH5omLNnSNdyaQ== + dependencies: + body-parser "^1.20.2" + express "^4.19.2" + semver "^7.5.4" + should "^13.2.3" + should-sinon "^0.0.6" + sinon "^11.1.2" + stoppable "^1.1.0" + supertest "^7.0.0" + +node-red@^3.1.9: + version "3.1.9" + resolved "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz" + integrity sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw== + dependencies: + "@node-red/editor-api" "3.1.9" + "@node-red/nodes" "3.1.9" + "@node-red/runtime" "3.1.9" + "@node-red/util" "3.1.9" + basic-auth "2.0.1" + bcryptjs "2.4.3" + express "4.19.2" + fs-extra "11.1.1" + node-red-admin "^3.1.3" + nopt "5.0.0" + semver "7.5.4" + optionalDependencies: + bcrypt "5.1.0" node-releases@^2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-watch@0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz" + integrity sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ== + +nopt@^5.0.0, nopt@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^8.0.0: + version "8.0.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" + integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +nth-check@^2.0.1: + 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== + dependencies: + boolbase "^1.0.0" + +number-allocator@^1.0.9: + version "1.0.14" + resolved "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz" + integrity sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA== + dependencies: + debug "^4.3.1" + js-sdsl "4.3.0" + +oauth2orize@1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz" + integrity sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA== + dependencies: + debug "2.x.x" + uid2 "0.0.x" + utils-merge "1.x.x" + +object-assign@^4, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" @@ -1722,7 +4038,19 @@ object.values@^1.1.7: define-properties "^1.2.1" es-object-atoms "^1.0.0" -once@^1.3.0: +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2, on-headers@1.0.2: + 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== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -1741,6 +4069,11 @@ optionator@^0.9.3: type-check "^0.4.0" word-wrap "^1.2.5" +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + p-limit@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" @@ -1762,6 +4095,51 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse5-htmlparser2-tree-adapter@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +passport-http-bearer@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz" + integrity sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw== + dependencies: + passport-strategy "1.x.x" + +passport-oauth2-client-password@0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz" + integrity sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ== + dependencies: + passport-strategy "1.x.x" + +passport-strategy@1.x.x: + version "1.0.0" + resolved "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz" + integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== + +passport@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz" + integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + utils-merge "^1.0.1" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" @@ -1782,11 +4160,31 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@^6.2.1: + version "6.2.2" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz" + integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz" + integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== + picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" @@ -1809,26 +4207,171 @@ prettier@^2.8.8, prettier@>=2.0.0: resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +process-nextick-args@^2.0.1, process-nextick-args@~2.0.0: + 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== + +propagate@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + +proxy-addr@~2.0.7: + 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== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + punycode.js@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +qs@^6.11.0, qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +rambda@^7.4.0: + version "7.5.0" + resolved "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz" + integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== + +random-bytes@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz" + integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + 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== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +read@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== + dependencies: + mute-stream "~0.0.4" + +readable-stream@^2.2.2: + version "2.3.8" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^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== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + regexp.prototype.flags@^1.5.2: version "1.5.2" resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz" @@ -1844,6 +4387,45 @@ regexpp@^3.0.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +reinterval@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz" + integrity sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ== + +require-directory@^2.1.1: + 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== + +require-from-string@^2.0.2: + 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== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + requizzle@^0.2.3: version "0.2.4" resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz" @@ -1851,12 +4433,17 @@ requizzle@^0.2.3: dependencies: lodash "^4.17.21" +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.22.1, resolve@^1.22.4: +resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.4: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -1865,11 +4452,23 @@ resolve@^1.22.1, resolve@^1.22.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.1" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" @@ -1894,6 +4493,21 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" +safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-regex-test@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" @@ -1903,16 +4517,79 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@>=0.6.0: + version "1.3.0" + resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" + integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + +semver@^6.0.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.8, semver@^7.5.1: +semver@^7.0.0, semver@^7.3.5, semver@^7.3.8, semver@^7.5.1, semver@^7.5.4: version "7.6.2" resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== +semver@7.5.4: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + set-function-length@^1.2.1: version "1.2.2" resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" @@ -1935,6 +4612,11 @@ set-function-name@^2.0.1: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -1947,6 +4629,55 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +should-equal@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz" + integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== + dependencies: + should-type "^1.4.0" + +should-format@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz" + integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== + dependencies: + should-type "^1.3.0" + should-type-adaptors "^1.0.1" + +should-sinon@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz" + integrity sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g== + +should-type-adaptors@^1.0.1: + version "1.1.0" + resolved "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz" + integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== + dependencies: + should-type "^1.3.0" + should-util "^1.0.0" + +should-type@^1.3.0, should-type@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz" + integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== + +should-util@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz" + integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== + +should@^13.2.3, "should@>= 8.x": + version "13.2.3" + resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz" + integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== + dependencies: + should-equal "^2.0.0" + should-format "^3.0.3" + should-type "^1.4.0" + should-type-adaptors "^1.0.1" + should-util "^1.0.0" + side-channel@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" @@ -1957,6 +4688,23 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" +signal-exit@^3.0.0: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sinon@^11.1.2: + version "11.1.2" + resolved "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz" + integrity sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw== + dependencies: + "@sinonjs/commons" "^1.8.3" + "@sinonjs/fake-timers" "^7.1.2" + "@sinonjs/samsam" "^6.0.2" + diff "^5.0.0" + nise "^5.1.0" + supports-color "^7.2.0" + spdx-exceptions@^2.1.0: version "2.5.0" resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" @@ -1975,6 +4723,56 @@ spdx-license-ids@^3.0.0: resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz" integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== +split2@^3.1.0: + version "3.2.2" + resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + +stream-shift@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz" + integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string_decoder@^1.1.1: + 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== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string.prototype.trim@^1.2.9: version "1.2.9" resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" @@ -2003,7 +4801,7 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -2015,11 +4813,34 @@ strip-bom@^3.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@3.1.1: 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== +superagent@^9.0.1: + version "9.0.2" + resolved "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz" + integrity sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.4" + debug "^4.3.4" + fast-safe-stringify "^2.1.1" + form-data "^4.0.0" + formidable "^3.5.1" + methods "^1.1.2" + mime "2.6.0" + qs "^6.11.0" + +supertest@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz" + integrity sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA== + dependencies: + methods "^1.1.2" + superagent "^9.0.1" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -2027,18 +4848,37 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.1.0, supports-color@^7.2.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== dependencies: has-flag "^4.0.0" +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: 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== +tar@^6.1.11, tar@6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" @@ -2049,6 +4889,33 @@ to-fast-properties@^2.0.0: resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== +to-regex-range@^5.0.1: + 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== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@4.1.3: + version "4.1.3" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" @@ -2059,6 +4926,11 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" +tslib@^2.2.0, tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" @@ -2066,11 +4938,24 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-detect@^4.0.8, type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + type-fest@^0.20.2: 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== +type-is@^1.6.4, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + typed-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" @@ -2115,11 +5000,33 @@ typed-array-length@^1.0.6: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== +uglify-js@3.17.4: + version "3.17.4" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +uid-safe@~2.1.5: + version "2.1.5" + resolved "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz" + integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== + dependencies: + random-bytes "~1.0.0" + +uid2@0.0.x: + version "0.0.4" + resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz" + integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" @@ -2135,6 +5042,44 @@ underscore@~1.13.2: resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + 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== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + 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== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@~1.0.0, unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + update-browserslist-db@^1.0.13: version "1.0.16" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz" @@ -2150,6 +5095,47 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@^1.0.1, utils-merge@1.0.1, utils-merge@1.x.x: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" @@ -2179,26 +5165,113 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + word-wrap@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +ws@^7.5.5, ws@7.5.6: + version "7.5.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + +xml2js@0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz" + integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + xmlcreate@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz" integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== +xtend@^4.0.0, xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2, yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + 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" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" From dba90407c41b4375a7b299a79d5326178c2a930d Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Tue, 21 May 2024 17:53:01 -0300 Subject: [PATCH 2/8] remove diff --- diff | 15111 --------------------------------------------------------- 1 file changed, 15111 deletions(-) delete mode 100644 diff diff --git a/diff b/diff deleted file mode 100644 index b4d400b..0000000 --- a/diff +++ /dev/null @@ -1,15111 +0,0 @@ -diff --git a/.eslintrc.yml b/.eslintrc.yml -index 9412df7..4bfe8d6 100644 ---- a/.eslintrc.yml -+++ b/.eslintrc.yml -@@ -1,25 +1,30 @@ --extends: "eslint:recommended" --parserOptions: -- ecmaVersion: 2017 - env: -+ browser: true - es6: true - node: true -- jasmine: true --overrides: -- - files: ["test/**/*.js"] -- rules: -- no-console: "off" -- # - files: -- # - "*.js" -- rules: -- # Exemplo de regras personalizadas para arquivos JavaScript -- semi: [2, 'always'] # Verificar se há ponto e vírgula ausente -- indent: [error, 2] # Verificar se a indentação está com 2 espaços -- quotes: [error, "single"] # Verificar se as aspas estão usando 'single' (simples) -- no-unused-vars: error # Verificar se há variáveis não utilizadas -- no-console: warn # Mostrar um aviso quando console.log é usado --ignorePatterns: -- - "*.json" -- - "*.md" -- - "*.yml" -+ mocha: true -+extends: -+ - "eslint:recommended" -+ - "plugin:prettier/recommended" -+parser: "@babel/eslint-parser" -+parserOptions: -+ requireConfigFile: false -+ babelOptions: -+ configFile: "./babel.config.js" -+rules: -+ indent: -+ - error -+ - 2 -+ linebreak-style: -+ - error -+ - unix -+ quotes: -+ - error -+ - single -+ semi: -+ - error -+ - always -+ no-console: "off" -+plugins: -+ - mocha - -diff --git a/package-lock.json b/package-lock.json -index 6963ae6..c16e217 100644 ---- a/package-lock.json -+++ b/package-lock.json -@@ -1,30 +1,36 @@ - { - "name": "node-red-contrib-oauth2", -- "version": "5.2.7", -+ "version": "6.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "node-red-contrib-oauth2", -- "version": "5.2.7", -- "license": "MIT License", -+ "version": "6.0.0", -+ "license": "MIT", - "dependencies": { - "axios": ">=1.3.3", -- "json-schema": ">=0.4.0" -+ "mocha": "^10.4.0" - }, - "devDependencies": { -- "@babel/eslint-parser": "^7.21.8", -- "eslint": "^8.41.0", -+ "@babel/eslint-parser": "^7.24.5", -+ "@babel/preset-env": "^7.24.5", -+ "eslint": "^8.57.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^44.2.4", -+ "eslint-plugin-mocha": "^10.4.3", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", - "jsdoc": "^4.0.3", - "json-schema": ">=0.4.0", -- "prettier": "^2.8.8" -+ "nock": "^13.5.4", -+ "node-red": "^3.1.9", -+ "node-red-node-test-helper": "^0.3.4", -+ "prettier": "^2.8.8", -+ "should": "^13.2.3" - }, - "engines": { - "node": ">=12.0.0" -@@ -49,7 +55,6 @@ - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" -@@ -63,7 +68,6 @@ - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", - "dev": true, -- "peer": true, - "engines": { - "node": ">=6.9.0" - } -@@ -127,7 +131,6 @@ - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz", - "integrity": "sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ==", - "dev": true, -- "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", -@@ -177,12 +180,35 @@ - "node": ">=6.9.0" - } - }, -+ "node_modules/@babel/helper-annotate-as-pure": { -+ "version": "7.22.5", -+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", -+ "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", -+ "dev": true, -+ "dependencies": { -+ "@babel/types": "^7.22.5" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { -+ "version": "7.22.15", -+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", -+ "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", -+ "dev": true, -+ "dependencies": { -+ "@babel/types": "^7.22.15" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", -@@ -199,17 +225,89 @@ - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, -- "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, -+ "node_modules/@babel/helper-create-class-features-plugin": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", -+ "integrity": "sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-annotate-as-pure": "^7.22.5", -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-function-name": "^7.23.0", -+ "@babel/helper-member-expression-to-functions": "^7.24.5", -+ "@babel/helper-optimise-call-expression": "^7.22.5", -+ "@babel/helper-replace-supers": "^7.24.1", -+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", -+ "@babel/helper-split-export-declaration": "^7.24.5", -+ "semver": "^6.3.1" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" -+ } -+ }, -+ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { -+ "version": "6.3.1", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", -+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", -+ "dev": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ } -+ }, -+ "node_modules/@babel/helper-create-regexp-features-plugin": { -+ "version": "7.22.15", -+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", -+ "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-annotate-as-pure": "^7.22.5", -+ "regexpu-core": "^5.3.1", -+ "semver": "^6.3.1" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" -+ } -+ }, -+ "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { -+ "version": "6.3.1", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", -+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", -+ "dev": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ } -+ }, -+ "node_modules/@babel/helper-define-polyfill-provider": { -+ "version": "0.6.2", -+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", -+ "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-compilation-targets": "^7.22.6", -+ "@babel/helper-plugin-utils": "^7.22.5", -+ "debug": "^4.1.1", -+ "lodash.debounce": "^4.0.8", -+ "resolve": "^1.14.2" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" -+ } -+ }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, -- "peer": true, - "engines": { - "node": ">=6.9.0" - } -@@ -219,7 +317,6 @@ - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" -@@ -233,7 +330,6 @@ - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, -@@ -241,12 +337,23 @@ - "node": ">=6.9.0" - } - }, -+ "node_modules/@babel/helper-member-expression-to-functions": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz", -+ "integrity": "sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==", -+ "dev": true, -+ "dependencies": { -+ "@babel/types": "^7.24.5" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/types": "^7.24.0" - }, -@@ -259,7 +366,6 @@ - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", -@@ -274,12 +380,66 @@ - "@babel/core": "^7.0.0" - } - }, -+ "node_modules/@babel/helper-optimise-call-expression": { -+ "version": "7.22.5", -+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", -+ "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", -+ "dev": true, -+ "dependencies": { -+ "@babel/types": "^7.22.5" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@babel/helper-plugin-utils": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", -+ "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@babel/helper-remap-async-to-generator": { -+ "version": "7.22.20", -+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", -+ "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-annotate-as-pure": "^7.22.5", -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-wrap-function": "^7.22.20" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" -+ } -+ }, -+ "node_modules/@babel/helper-replace-supers": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", -+ "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-member-expression-to-functions": "^7.23.0", -+ "@babel/helper-optimise-call-expression": "^7.22.5" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" -+ } -+ }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/types": "^7.24.5" - }, -@@ -287,12 +447,23 @@ - "node": ">=6.9.0" - } - }, -+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": { -+ "version": "7.22.5", -+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", -+ "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", -+ "dev": true, -+ "dependencies": { -+ "@babel/types": "^7.22.5" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/types": "^7.24.5" - }, -@@ -305,7 +476,6 @@ - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true, -- "peer": true, - "engines": { - "node": ">=6.9.0" - } -@@ -315,7 +485,6 @@ - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", - "dev": true, -- "peer": true, - "engines": { - "node": ">=6.9.0" - } -@@ -325,7 +494,20 @@ - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, -- "peer": true, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@babel/helper-wrap-function": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz", -+ "integrity": "sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-function-name": "^7.23.0", -+ "@babel/template": "^7.24.0", -+ "@babel/types": "^7.24.5" -+ }, - "engines": { - "node": ">=6.9.0" - } -@@ -350,7 +532,6 @@ - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", - "dev": true, -- "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", -@@ -366,7 +547,6 @@ - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, -- "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, -@@ -379,7 +559,6 @@ - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, -- "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", -@@ -394,7 +573,6 @@ - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, -- "peer": true, - "dependencies": { - "color-name": "1.1.3" - } -@@ -403,15 +581,13 @@ - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", -- "dev": true, -- "peer": true -+ "dev": true - }, - "node_modules/@babel/highlight/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, -- "peer": true, - "engines": { - "node": ">=0.8.0" - } -@@ -421,7 +597,6 @@ - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, -- "peer": true, - "engines": { - "node": ">=4" - } -@@ -431,7 +606,6 @@ - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, -- "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, -@@ -451,1201 +625,4210 @@ - "node": ">=6.0.0" - } - }, -- "node_modules/@babel/template": { -- "version": "7.24.0", -- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", -- "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", -+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz", -+ "integrity": "sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==", - "dev": true, -- "peer": true, - "dependencies": { -- "@babel/code-frame": "^7.23.5", -- "@babel/parser": "^7.24.0", -- "@babel/types": "^7.24.0" -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-plugin-utils": "^7.24.5" - }, - "engines": { - "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" - } - }, -- "node_modules/@babel/traverse": { -- "version": "7.24.5", -- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", -- "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", -+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", -+ "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", - "dev": true, -- "peer": true, - "dependencies": { -- "@babel/code-frame": "^7.24.2", -- "@babel/generator": "^7.24.5", -- "@babel/helper-environment-visitor": "^7.22.20", -- "@babel/helper-function-name": "^7.23.0", -- "@babel/helper-hoist-variables": "^7.22.5", -- "@babel/helper-split-export-declaration": "^7.24.5", -- "@babel/parser": "^7.24.5", -- "@babel/types": "^7.24.5", -- "debug": "^4.3.1", -- "globals": "^11.1.0" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" - } - }, -- "node_modules/@babel/traverse/node_modules/globals": { -- "version": "11.12.0", -- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", -- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", -+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", -+ "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", - "dev": true, -- "peer": true, -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", -+ "@babel/plugin-transform-optional-chaining": "^7.24.1" -+ }, - "engines": { -- "node": ">=4" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.13.0" - } - }, -- "node_modules/@babel/types": { -- "version": "7.24.5", -- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", -- "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", -+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", -+ "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", - "dev": true, -- "peer": true, - "dependencies": { -- "@babel/helper-string-parser": "^7.24.1", -- "@babel/helper-validator-identifier": "^7.24.5", -- "to-fast-properties": "^2.0.0" -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" - } - }, -- "node_modules/@es-joy/jsdoccomment": { -- "version": "0.39.4", -- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", -- "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", -+ "node_modules/@babel/plugin-proposal-private-property-in-object": { -+ "version": "7.21.0-placeholder-for-preset-env.2", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", -+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, -- "license": "MIT", -- "dependencies": { -- "comment-parser": "1.3.1", -- "esquery": "^1.5.0", -- "jsdoc-type-pratt-parser": "~4.0.0" -- }, - "engines": { -- "node": ">=16" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@eslint-community/eslint-utils": { -- "version": "4.4.0", -- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", -- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", -+ "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": { -- "eslint-visitor-keys": "^3.3.0" -- }, -- "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { -- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@eslint-community/regexpp": { -- "version": "4.10.0", -- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", -- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", -+ "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", -- "engines": { -- "node": "^12.0.0 || ^14.0.0 || >=16.0.0" -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.12.13" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@eslint/eslintrc": { -- "version": "2.1.4", -- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", -- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", -+ "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": { -- "ajv": "^6.12.4", -- "debug": "^4.3.2", -- "espree": "^9.6.0", -- "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" -+ "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://opencollective.com/eslint" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@eslint/js": { -- "version": "8.57.0", -- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", -- "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", -+ "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", -- "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.8.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@humanwhocodes/config-array": { -- "version": "0.11.14", -- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", -- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", -+ "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": "Apache-2.0", - "dependencies": { -- "@humanwhocodes/object-schema": "^2.0.2", -- "debug": "^4.3.1", -- "minimatch": "^3.0.5" -+ "@babel/helper-plugin-utils": "^7.8.3" - }, -- "engines": { -- "node": ">=10.10.0" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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==", -+ "node_modules/@babel/plugin-syntax-import-assertions": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", -+ "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", - "dev": true, -- "license": "Apache-2.0", -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, - "engines": { -- "node": ">=12.22" -+ "node": ">=6.9.0" - }, -- "funding": { -- "type": "github", -- "url": "https://github.com/sponsors/nzakas" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@humanwhocodes/object-schema": { -- "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==", -- "dev": true, -- "license": "BSD-3-Clause" -- }, -- "node_modules/@jridgewell/gen-mapping": { -- "version": "0.3.5", -- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", -- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", -+ "node_modules/@babel/plugin-syntax-import-attributes": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", -+ "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", - "dev": true, -- "peer": true, - "dependencies": { -- "@jridgewell/set-array": "^1.2.1", -- "@jridgewell/sourcemap-codec": "^1.4.10", -- "@jridgewell/trace-mapping": "^0.3.24" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">=6.0.0" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@jridgewell/resolve-uri": { -- "version": "3.1.2", -- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", -- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", -+ "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, -- "peer": true, -- "engines": { -- "node": ">=6.0.0" -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.10.4" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@jridgewell/set-array": { -- "version": "1.2.1", -- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", -- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", -+ "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, -- "peer": true, -- "engines": { -- "node": ">=6.0.0" -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.8.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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==", -+ "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, -- "peer": true -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.10.4" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" -+ } - }, -- "node_modules/@jridgewell/trace-mapping": { -- "version": "0.3.25", -- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", -- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", -+ "node_modules/@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, -- "peer": true, - "dependencies": { -- "@jridgewell/resolve-uri": "^3.1.0", -- "@jridgewell/sourcemap-codec": "^1.4.14" -+ "@babel/helper-plugin-utils": "^7.8.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@jsdoc/salty": { -- "version": "0.2.8", -- "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", -- "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", -+ "node_modules/@babel/plugin-syntax-numeric-separator": { -+ "version": "7.10.4", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", -+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { -- "lodash": "^4.17.21" -+ "@babel/helper-plugin-utils": "^7.10.4" - }, -- "engines": { -- "node": ">=v12.0.0" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { -- "version": "5.1.1-v1", -- "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", -- "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", -+ "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": { -- "eslint-scope": "5.1.1" -+ "@babel/helper-plugin-utils": "^7.8.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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==", -+ "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": "BSD-2-Clause", - "dependencies": { -- "esrecurse": "^4.3.0", -- "estraverse": "^4.1.1" -+ "@babel/helper-plugin-utils": "^7.8.0" - }, -- "engines": { -- "node": ">=8.0.0" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { -- "version": "4.3.0", -- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", -- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", -+ "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": "BSD-2-Clause", -- "engines": { -- "node": ">=4.0" -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.8.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@nodelib/fs.scandir": { -- "version": "2.1.5", -- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", -- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", -+ "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": { -- "@nodelib/fs.stat": "2.0.5", -- "run-parallel": "^1.1.9" -+ "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { -- "node": ">= 8" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@nodelib/fs.stat": { -- "version": "2.0.5", -- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", -- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", -+ "node_modules/@babel/plugin-syntax-top-level-await": { -+ "version": "7.14.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", -+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.14.5" -+ }, - "engines": { -- "node": ">= 8" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@nodelib/fs.walk": { -- "version": "1.2.8", -- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", -- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", -+ "node_modules/@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": { -- "@nodelib/fs.scandir": "2.1.5", -- "fastq": "^1.6.0" -+ "@babel/helper-create-regexp-features-plugin": "^7.18.6", -+ "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { -- "node": ">= 8" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" - } - }, -- "node_modules/@types/json5": { -- "version": "0.0.29", -- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", -- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", -- "dev": true, -- "license": "MIT" -- }, -- "node_modules/@types/linkify-it": { -- "version": "5.0.0", -- "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", -- "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", -- "dev": true -- }, -- "node_modules/@types/markdown-it": { -- "version": "14.1.1", -- "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", -- "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", -+ "node_modules/@babel/plugin-transform-arrow-functions": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", -+ "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", - "dev": true, - "dependencies": { -- "@types/linkify-it": "^5", -- "@types/mdurl": "^2" -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/@types/mdurl": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", -- "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", -- "dev": true -- }, -- "node_modules/@ungap/structured-clone": { -- "version": "1.2.0", -- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", -- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", -+ "node_modules/@babel/plugin-transform-async-generator-functions": { -+ "version": "7.24.3", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", -+ "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", - "dev": true, -- "license": "ISC" -+ "dependencies": { -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-remap-async-to-generator": "^7.22.20", -+ "@babel/plugin-syntax-async-generators": "^7.8.4" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" -+ } - }, -- "node_modules/acorn": { -- "version": "8.11.3", -- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", -- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", -+ "node_modules/@babel/plugin-transform-async-to-generator": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", -+ "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", - "dev": true, -- "license": "MIT", -- "bin": { -- "acorn": "bin/acorn" -+ "dependencies": { -+ "@babel/helper-module-imports": "^7.24.1", -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { -- "node": ">=0.4.0" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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==", -+ "node_modules/@babel/plugin-transform-block-scoped-functions": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", -+ "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, - "peerDependencies": { -- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/ajv": { -- "version": "6.12.6", -- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", -- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", -+ "node_modules/@babel/plugin-transform-block-scoping": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz", -+ "integrity": "sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==", - "dev": true, -- "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" -+ "@babel/helper-plugin-utils": "^7.24.5" - }, -- "funding": { -- "type": "github", -- "url": "https://github.com/sponsors/epoberezkin" -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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==", -+ "node_modules/@babel/plugin-transform-class-properties": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", -+ "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-create-class-features-plugin": "^7.24.1", -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, - "engines": { -- "node": ">=8" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/ansi-styles": { -- "version": "4.3.0", -- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", -+ "node_modules/@babel/plugin-transform-class-static-block": { -+ "version": "7.24.4", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", -+ "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "color-convert": "^2.0.1" -+ "@babel/helper-create-class-features-plugin": "^7.24.4", -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { -- "node": ">=8" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/chalk/ansi-styles?sponsor=1" -+ "peerDependencies": { -+ "@babel/core": "^7.12.0" - } - }, -- "node_modules/are-docs-informative": { -- "version": "0.0.2", -- "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", -- "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", -+ "node_modules/@babel/plugin-transform-classes": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz", -+ "integrity": "sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-annotate-as-pure": "^7.22.5", -+ "@babel/helper-compilation-targets": "^7.23.6", -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-function-name": "^7.23.0", -+ "@babel/helper-plugin-utils": "^7.24.5", -+ "@babel/helper-replace-supers": "^7.24.1", -+ "@babel/helper-split-export-declaration": "^7.24.5", -+ "globals": "^11.1.0" -+ }, - "engines": { -- "node": ">=14" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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==", -+ "node_modules/@babel/plugin-transform-classes/node_modules/globals": { -+ "version": "11.12.0", -+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", -+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, -- "license": "Python-2.0" -+ "engines": { -+ "node": ">=4" -+ } - }, -- "node_modules/array-buffer-byte-length": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", -- "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", -+ "node_modules/@babel/plugin-transform-computed-properties": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", -+ "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.5", -- "is-array-buffer": "^3.0.4" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/template": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/array-includes": { -- "version": "3.1.8", -- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", -- "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", -+ "node_modules/@babel/plugin-transform-destructuring": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz", -+ "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.7", -- "define-properties": "^1.2.1", -- "es-abstract": "^1.23.2", -- "es-object-atoms": "^1.0.0", -- "get-intrinsic": "^1.2.4", -- "is-string": "^1.0.7" -+ "@babel/helper-plugin-utils": "^7.24.5" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/array.prototype.findlastindex": { -- "version": "1.2.5", -- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", -- "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", -+ "node_modules/@babel/plugin-transform-dotall-regex": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", -+ "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.7", -- "define-properties": "^1.2.1", -- "es-abstract": "^1.23.2", -- "es-errors": "^1.3.0", -- "es-object-atoms": "^1.0.0", -- "es-shim-unscopables": "^1.0.2" -+ "@babel/helper-create-regexp-features-plugin": "^7.22.15", -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/array.prototype.flat": { -- "version": "1.3.2", -- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", -- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", -+ "node_modules/@babel/plugin-transform-duplicate-keys": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", -+ "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.2", -- "define-properties": "^1.2.0", -- "es-abstract": "^1.22.1", -- "es-shim-unscopables": "^1.0.0" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/array.prototype.flatmap": { -- "version": "1.3.2", -- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", -- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", -+ "node_modules/@babel/plugin-transform-dynamic-import": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", -+ "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.2", -- "define-properties": "^1.2.0", -- "es-abstract": "^1.22.1", -- "es-shim-unscopables": "^1.0.0" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/arraybuffer.prototype.slice": { -- "version": "1.0.3", -- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", -- "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", -+ "node_modules/@babel/plugin-transform-exponentiation-operator": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", -+ "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "array-buffer-byte-length": "^1.0.1", -- "call-bind": "^1.0.5", -- "define-properties": "^1.2.1", -- "es-abstract": "^1.22.3", -- "es-errors": "^1.2.1", -- "get-intrinsic": "^1.2.3", -- "is-array-buffer": "^3.0.4", -- "is-shared-array-buffer": "^1.0.2" -+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/asynckit": { -- "version": "0.4.0", -- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", -- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", -- "license": "MIT" -- }, -- "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==", -+ "node_modules/@babel/plugin-transform-export-namespace-from": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", -+ "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "possible-typed-array-names": "^1.0.0" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/axios": { -- "version": "1.7.1", -- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", -- "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", -- "license": "MIT", -+ "node_modules/@babel/plugin-transform-for-of": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", -+ "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", -+ "dev": true, - "dependencies": { -- "follow-redirects": "^1.15.6", -- "form-data": "^4.0.0", -- "proxy-from-env": "^1.1.0" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/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/bluebird": { -- "version": "3.7.2", -- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", -- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", -- "dev": true -- }, -- "node_modules/brace-expansion": { -- "version": "1.1.11", -- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", -+ "node_modules/@babel/plugin-transform-function-name": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", -+ "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "balanced-match": "^1.0.0", -- "concat-map": "0.0.1" -+ "@babel/helper-compilation-targets": "^7.23.6", -+ "@babel/helper-function-name": "^7.23.0", -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/browserslist": { -- "version": "4.23.0", -- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", -- "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", -+ "node_modules/@babel/plugin-transform-json-strings": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", -+ "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", - "dev": true, -- "funding": [ -- { -- "type": "opencollective", -- "url": "https://opencollective.com/browserslist" -- }, -- { -- "type": "tidelift", -- "url": "https://tidelift.com/funding/github/npm/browserslist" -- }, -- { -- "type": "github", -- "url": "https://github.com/sponsors/ai" -- } -- ], -- "peer": true, - "dependencies": { -- "caniuse-lite": "^1.0.30001587", -- "electron-to-chromium": "^1.4.668", -- "node-releases": "^2.0.14", -- "update-browserslist-db": "^1.0.13" -- }, -- "bin": { -- "browserslist": "cli.js" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { -- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/builtins": { -- "version": "5.1.0", -- "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", -- "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", -+ "node_modules/@babel/plugin-transform-literals": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", -+ "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "semver": "^7.0.0" -- } -- }, -- "node_modules/call-bind": { -- "version": "1.0.7", -- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", -- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", -- "dev": true, -- "license": "MIT", -- "dependencies": { -- "es-define-property": "^1.0.0", -- "es-errors": "^1.3.0", -- "function-bind": "^1.1.2", -- "get-intrinsic": "^1.2.4", -- "set-function-length": "^1.2.1" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/callsites": { -- "version": "3.1.0", -- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", -- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", -+ "node_modules/@babel/plugin-transform-logical-assignment-operators": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", -+ "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" -+ }, - "engines": { -- "node": ">=6" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/caniuse-lite": { -- "version": "1.0.30001620", -- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", -- "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", -- "dev": true, -- "funding": [ -- { -- "type": "opencollective", -- "url": "https://opencollective.com/browserslist" -- }, -- { -- "type": "tidelift", -- "url": "https://tidelift.com/funding/github/npm/caniuse-lite" -- }, -- { -- "type": "github", -- "url": "https://github.com/sponsors/ai" -- } -- ], -- "peer": true -- }, -- "node_modules/catharsis": { -- "version": "0.9.0", -- "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", -- "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", -+ "node_modules/@babel/plugin-transform-member-expression-literals": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", -+ "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", - "dev": true, - "dependencies": { -- "lodash": "^4.17.15" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 10" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/chalk": { -- "version": "4.1.2", -- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", -+ "node_modules/@babel/plugin-transform-modules-amd": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", -+ "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "ansi-styles": "^4.1.0", -- "supports-color": "^7.1.0" -+ "@babel/helper-module-transforms": "^7.23.3", -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">=10" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/chalk/chalk?sponsor=1" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/color-convert": { -- "version": "2.0.1", -- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", -+ "node_modules/@babel/plugin-transform-modules-commonjs": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", -+ "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "color-name": "~1.1.4" -+ "@babel/helper-module-transforms": "^7.23.3", -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { -- "node": ">=7.0.0" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/color-name": { -- "version": "1.1.4", -- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -+ "node_modules/@babel/plugin-transform-modules-systemjs": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", -+ "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", - "dev": true, -- "license": "MIT" -- }, -- "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==", -- "license": "MIT", - "dependencies": { -- "delayed-stream": "~1.0.0" -+ "@babel/helper-hoist-variables": "^7.22.5", -+ "@babel/helper-module-transforms": "^7.23.3", -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { -- "node": ">= 0.8" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/comment-parser": { -- "version": "1.3.1", -- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", -- "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", -+ "node_modules/@babel/plugin-transform-modules-umd": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", -+ "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-module-transforms": "^7.23.3", -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, - "engines": { -- "node": ">= 12.0.0" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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/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, -- "peer": true -- }, -- "node_modules/cross-spawn": { -- "version": "7.0.3", -- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", -- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", -+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { -+ "version": "7.22.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", -+ "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "path-key": "^3.1.0", -- "shebang-command": "^2.0.0", -- "which": "^2.0.1" -+ "@babel/helper-create-regexp-features-plugin": "^7.22.5", -+ "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { -- "node": ">= 8" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" - } - }, -- "node_modules/data-view-buffer": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", -- "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", -+ "node_modules/@babel/plugin-transform-new-target": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", -+ "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.6", -- "es-errors": "^1.3.0", -- "is-data-view": "^1.0.1" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/data-view-byte-length": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", -- "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", -+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", -+ "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.7", -- "es-errors": "^1.3.0", -- "is-data-view": "^1.0.1" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/data-view-byte-offset": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", -- "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", -+ "node_modules/@babel/plugin-transform-numeric-separator": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", -+ "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.6", -- "es-errors": "^1.3.0", -- "is-data-view": "^1.0.1" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/debug": { -- "version": "4.3.4", -- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", -- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", -+ "node_modules/@babel/plugin-transform-object-rest-spread": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz", -+ "integrity": "sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "ms": "2.1.2" -+ "@babel/helper-compilation-targets": "^7.23.6", -+ "@babel/helper-plugin-utils": "^7.24.5", -+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", -+ "@babel/plugin-transform-parameters": "^7.24.5" - }, - "engines": { -- "node": ">=6.0" -+ "node": ">=6.9.0" - }, -- "peerDependenciesMeta": { -- "supports-color": { -- "optional": true -- } -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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/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==", -+ "node_modules/@babel/plugin-transform-object-super": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", -+ "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "es-define-property": "^1.0.0", -- "es-errors": "^1.3.0", -- "gopd": "^1.0.1" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-replace-supers": "^7.24.1" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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==", -+ "node_modules/@babel/plugin-transform-optional-catch-binding": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", -+ "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "define-data-property": "^1.0.1", -- "has-property-descriptors": "^1.0.0", -- "object-keys": "^1.1.1" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/delayed-stream": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", -- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", -- "license": "MIT", -+ "node_modules/@babel/plugin-transform-optional-chaining": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz", -+ "integrity": "sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.5", -+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", -+ "@babel/plugin-syntax-optional-chaining": "^7.8.3" -+ }, - "engines": { -- "node": ">=0.4.0" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/doctrine": { -- "version": "2.1.0", -- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", -- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", -+ "node_modules/@babel/plugin-transform-parameters": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz", -+ "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==", - "dev": true, -- "license": "Apache-2.0", - "dependencies": { -- "esutils": "^2.0.2" -+ "@babel/helper-plugin-utils": "^7.24.5" - }, - "engines": { -- "node": ">=0.10.0" -- } -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" -+ } - }, -- "node_modules/electron-to-chromium": { -- "version": "1.4.775", -- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", -- "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==", -+ "node_modules/@babel/plugin-transform-private-methods": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", -+ "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", - "dev": true, -- "peer": true -+ "dependencies": { -+ "@babel/helper-create-class-features-plugin": "^7.24.1", -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" -+ } - }, -- "node_modules/entities": { -- "version": "4.5.0", -- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", -- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", -+ "node_modules/@babel/plugin-transform-private-property-in-object": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz", -+ "integrity": "sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==", - "dev": true, -+ "dependencies": { -+ "@babel/helper-annotate-as-pure": "^7.22.5", -+ "@babel/helper-create-class-features-plugin": "^7.24.5", -+ "@babel/helper-plugin-utils": "^7.24.5", -+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5" -+ }, - "engines": { -- "node": ">=0.12" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/fb55/entities?sponsor=1" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/es-abstract": { -- "version": "1.23.3", -- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", -- "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", -+ "node_modules/@babel/plugin-transform-property-literals": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", -+ "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "array-buffer-byte-length": "^1.0.1", -- "arraybuffer.prototype.slice": "^1.0.3", -- "available-typed-arrays": "^1.0.7", -- "call-bind": "^1.0.7", -- "data-view-buffer": "^1.0.1", -- "data-view-byte-length": "^1.0.1", -- "data-view-byte-offset": "^1.0.0", -- "es-define-property": "^1.0.0", -- "es-errors": "^1.3.0", -- "es-object-atoms": "^1.0.0", -- "es-set-tostringtag": "^2.0.3", -- "es-to-primitive": "^1.2.1", -- "function.prototype.name": "^1.1.6", -- "get-intrinsic": "^1.2.4", -- "get-symbol-description": "^1.0.2", -- "globalthis": "^1.0.3", -- "gopd": "^1.0.1", -- "has-property-descriptors": "^1.0.2", -- "has-proto": "^1.0.3", -- "has-symbols": "^1.0.3", -- "hasown": "^2.0.2", -- "internal-slot": "^1.0.7", -- "is-array-buffer": "^3.0.4", -- "is-callable": "^1.2.7", -- "is-data-view": "^1.0.1", -- "is-negative-zero": "^2.0.3", -- "is-regex": "^1.1.4", -- "is-shared-array-buffer": "^1.0.3", -- "is-string": "^1.0.7", -- "is-typed-array": "^1.1.13", -- "is-weakref": "^1.0.2", -- "object-inspect": "^1.13.1", -- "object-keys": "^1.1.1", -- "object.assign": "^4.1.5", -- "regexp.prototype.flags": "^1.5.2", -- "safe-array-concat": "^1.1.2", -- "safe-regex-test": "^1.0.3", -- "string.prototype.trim": "^1.2.9", -- "string.prototype.trimend": "^1.0.8", -- "string.prototype.trimstart": "^1.0.8", -- "typed-array-buffer": "^1.0.2", -- "typed-array-byte-length": "^1.0.1", -- "typed-array-byte-offset": "^1.0.2", -- "typed-array-length": "^1.0.6", -- "unbox-primitive": "^1.0.2", -- "which-typed-array": "^1.1.15" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/es-define-property": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", -- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", -+ "node_modules/@babel/plugin-transform-regenerator": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", -+ "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "get-intrinsic": "^1.2.4" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "regenerator-transform": "^0.15.2" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "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==", -+ "node_modules/@babel/plugin-transform-reserved-words": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", -+ "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/es-object-atoms": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", -- "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", -+ "node_modules/@babel/plugin-transform-shorthand-properties": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", -+ "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "es-errors": "^1.3.0" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/es-set-tostringtag": { -- "version": "2.0.3", -- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", -- "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", -+ "node_modules/@babel/plugin-transform-spread": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", -+ "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "get-intrinsic": "^1.2.4", -- "has-tostringtag": "^1.0.2", -- "hasown": "^2.0.1" -+ "@babel/helper-plugin-utils": "^7.24.0", -+ "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/es-shim-unscopables": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", -- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", -+ "node_modules/@babel/plugin-transform-sticky-regex": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", -+ "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "hasown": "^2.0.0" -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/es-to-primitive": { -- "version": "1.2.1", -- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", -- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", -+ "node_modules/@babel/plugin-transform-template-literals": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", -+ "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "is-callable": "^1.1.4", -- "is-date-object": "^1.0.1", -- "is-symbol": "^1.0.2" -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/escalade": { -- "version": "3.1.2", -- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", -- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", -+ "node_modules/@babel/plugin-transform-typeof-symbol": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz", -+ "integrity": "sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==", - "dev": true, -- "peer": true, -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.5" -+ }, - "engines": { -- "node": ">=6" -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/escape-string-regexp": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", -- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", -+ "node_modules/@babel/plugin-transform-unicode-escapes": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", -+ "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", - "dev": true, -- "license": "MIT", -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, - "engines": { -- "node": ">=10" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/sindresorhus" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/eslint": { -- "version": "8.57.0", -- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", -- "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", -+ "node_modules/@babel/plugin-transform-unicode-property-regex": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", -+ "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "@eslint-community/eslint-utils": "^4.2.0", -- "@eslint-community/regexpp": "^4.6.1", -- "@eslint/eslintrc": "^2.1.4", -- "@eslint/js": "8.57.0", -- "@humanwhocodes/config-array": "^0.11.14", -- "@humanwhocodes/module-importer": "^1.0.1", -- "@nodelib/fs.walk": "^1.2.8", -- "@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.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", -- "file-entry-cache": "^6.0.1", -- "find-up": "^5.0.0", -- "glob-parent": "^6.0.2", -- "globals": "^13.19.0", -- "graphemer": "^1.4.0", -- "ignore": "^5.2.0", -- "imurmurhash": "^0.1.4", -- "is-glob": "^4.0.0", -- "is-path-inside": "^3.0.3", -- "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.3", -- "strip-ansi": "^6.0.1", -- "text-table": "^0.2.0" -- }, -- "bin": { -- "eslint": "bin/eslint.js" -+ "@babel/helper-create-regexp-features-plugin": "^7.22.15", -+ "@babel/helper-plugin-utils": "^7.24.0" - }, - "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ "node": ">=6.9.0" - }, -- "funding": { -- "url": "https://opencollective.com/eslint" -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/eslint-config-prettier": { -- "version": "8.10.0", -- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", -- "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", -+ "node_modules/@babel/plugin-transform-unicode-regex": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", -+ "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", - "dev": true, -- "license": "MIT", -- "bin": { -- "eslint-config-prettier": "bin/cli.js" -+ "dependencies": { -+ "@babel/helper-create-regexp-features-plugin": "^7.22.15", -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" - }, - "peerDependencies": { -- "eslint": ">=7.0.0" -+ "@babel/core": "^7.0.0-0" - } - }, -- "node_modules/eslint-config-standard": { -- "version": "17.1.0", -- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", -- "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", -+ "node_modules/@babel/plugin-transform-unicode-sets-regex": { -+ "version": "7.24.1", -+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", -+ "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", - "dev": true, -- "funding": [ -- { -+ "dependencies": { -+ "@babel/helper-create-regexp-features-plugin": "^7.22.15", -+ "@babel/helper-plugin-utils": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0" -+ } -+ }, -+ "node_modules/@babel/preset-env": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz", -+ "integrity": "sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==", -+ "dev": true, -+ "dependencies": { -+ "@babel/compat-data": "^7.24.4", -+ "@babel/helper-compilation-targets": "^7.23.6", -+ "@babel/helper-plugin-utils": "^7.24.5", -+ "@babel/helper-validator-option": "^7.23.5", -+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.5", -+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", -+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", -+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", -+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", -+ "@babel/plugin-syntax-async-generators": "^7.8.4", -+ "@babel/plugin-syntax-class-properties": "^7.12.13", -+ "@babel/plugin-syntax-class-static-block": "^7.14.5", -+ "@babel/plugin-syntax-dynamic-import": "^7.8.3", -+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3", -+ "@babel/plugin-syntax-import-assertions": "^7.24.1", -+ "@babel/plugin-syntax-import-attributes": "^7.24.1", -+ "@babel/plugin-syntax-import-meta": "^7.10.4", -+ "@babel/plugin-syntax-json-strings": "^7.8.3", -+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", -+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", -+ "@babel/plugin-syntax-numeric-separator": "^7.10.4", -+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", -+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", -+ "@babel/plugin-syntax-optional-chaining": "^7.8.3", -+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", -+ "@babel/plugin-syntax-top-level-await": "^7.14.5", -+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", -+ "@babel/plugin-transform-arrow-functions": "^7.24.1", -+ "@babel/plugin-transform-async-generator-functions": "^7.24.3", -+ "@babel/plugin-transform-async-to-generator": "^7.24.1", -+ "@babel/plugin-transform-block-scoped-functions": "^7.24.1", -+ "@babel/plugin-transform-block-scoping": "^7.24.5", -+ "@babel/plugin-transform-class-properties": "^7.24.1", -+ "@babel/plugin-transform-class-static-block": "^7.24.4", -+ "@babel/plugin-transform-classes": "^7.24.5", -+ "@babel/plugin-transform-computed-properties": "^7.24.1", -+ "@babel/plugin-transform-destructuring": "^7.24.5", -+ "@babel/plugin-transform-dotall-regex": "^7.24.1", -+ "@babel/plugin-transform-duplicate-keys": "^7.24.1", -+ "@babel/plugin-transform-dynamic-import": "^7.24.1", -+ "@babel/plugin-transform-exponentiation-operator": "^7.24.1", -+ "@babel/plugin-transform-export-namespace-from": "^7.24.1", -+ "@babel/plugin-transform-for-of": "^7.24.1", -+ "@babel/plugin-transform-function-name": "^7.24.1", -+ "@babel/plugin-transform-json-strings": "^7.24.1", -+ "@babel/plugin-transform-literals": "^7.24.1", -+ "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", -+ "@babel/plugin-transform-member-expression-literals": "^7.24.1", -+ "@babel/plugin-transform-modules-amd": "^7.24.1", -+ "@babel/plugin-transform-modules-commonjs": "^7.24.1", -+ "@babel/plugin-transform-modules-systemjs": "^7.24.1", -+ "@babel/plugin-transform-modules-umd": "^7.24.1", -+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", -+ "@babel/plugin-transform-new-target": "^7.24.1", -+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", -+ "@babel/plugin-transform-numeric-separator": "^7.24.1", -+ "@babel/plugin-transform-object-rest-spread": "^7.24.5", -+ "@babel/plugin-transform-object-super": "^7.24.1", -+ "@babel/plugin-transform-optional-catch-binding": "^7.24.1", -+ "@babel/plugin-transform-optional-chaining": "^7.24.5", -+ "@babel/plugin-transform-parameters": "^7.24.5", -+ "@babel/plugin-transform-private-methods": "^7.24.1", -+ "@babel/plugin-transform-private-property-in-object": "^7.24.5", -+ "@babel/plugin-transform-property-literals": "^7.24.1", -+ "@babel/plugin-transform-regenerator": "^7.24.1", -+ "@babel/plugin-transform-reserved-words": "^7.24.1", -+ "@babel/plugin-transform-shorthand-properties": "^7.24.1", -+ "@babel/plugin-transform-spread": "^7.24.1", -+ "@babel/plugin-transform-sticky-regex": "^7.24.1", -+ "@babel/plugin-transform-template-literals": "^7.24.1", -+ "@babel/plugin-transform-typeof-symbol": "^7.24.5", -+ "@babel/plugin-transform-unicode-escapes": "^7.24.1", -+ "@babel/plugin-transform-unicode-property-regex": "^7.24.1", -+ "@babel/plugin-transform-unicode-regex": "^7.24.1", -+ "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", -+ "@babel/preset-modules": "0.1.6-no-external-plugins", -+ "babel-plugin-polyfill-corejs2": "^0.4.10", -+ "babel-plugin-polyfill-corejs3": "^0.10.4", -+ "babel-plugin-polyfill-regenerator": "^0.6.1", -+ "core-js-compat": "^3.31.0", -+ "semver": "^6.3.1" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0" -+ } -+ }, -+ "node_modules/@babel/preset-env/node_modules/semver": { -+ "version": "6.3.1", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", -+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", -+ "dev": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ } -+ }, -+ "node_modules/@babel/preset-modules": { -+ "version": "0.1.6-no-external-plugins", -+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", -+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-plugin-utils": "^7.0.0", -+ "@babel/types": "^7.4.4", -+ "esutils": "^2.0.2" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" -+ } -+ }, -+ "node_modules/@babel/regjsgen": { -+ "version": "0.8.0", -+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", -+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", -+ "dev": true -+ }, -+ "node_modules/@babel/runtime": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", -+ "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", -+ "dev": true, -+ "dependencies": { -+ "regenerator-runtime": "^0.14.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@babel/template": { -+ "version": "7.24.0", -+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", -+ "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", -+ "dev": true, -+ "dependencies": { -+ "@babel/code-frame": "^7.23.5", -+ "@babel/parser": "^7.24.0", -+ "@babel/types": "^7.24.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@babel/traverse": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", -+ "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "@babel/code-frame": "^7.24.2", -+ "@babel/generator": "^7.24.5", -+ "@babel/helper-environment-visitor": "^7.22.20", -+ "@babel/helper-function-name": "^7.23.0", -+ "@babel/helper-hoist-variables": "^7.22.5", -+ "@babel/helper-split-export-declaration": "^7.24.5", -+ "@babel/parser": "^7.24.5", -+ "@babel/types": "^7.24.5", -+ "debug": "^4.3.1", -+ "globals": "^11.1.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@babel/traverse/node_modules/globals": { -+ "version": "11.12.0", -+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", -+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/@babel/types": { -+ "version": "7.24.5", -+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", -+ "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-string-parser": "^7.24.1", -+ "@babel/helper-validator-identifier": "^7.24.5", -+ "to-fast-properties": "^2.0.0" -+ }, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/@es-joy/jsdoccomment": { -+ "version": "0.39.4", -+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", -+ "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "comment-parser": "1.3.1", -+ "esquery": "^1.5.0", -+ "jsdoc-type-pratt-parser": "~4.0.0" -+ }, -+ "engines": { -+ "node": ">=16" -+ } -+ }, -+ "node_modules/@eslint-community/eslint-utils": { -+ "version": "4.4.0", -+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", -+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "eslint-visitor-keys": "^3.3.0" -+ }, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" -+ } -+ }, -+ "node_modules/@eslint-community/regexpp": { -+ "version": "4.10.0", -+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", -+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" -+ } -+ }, -+ "node_modules/@eslint/eslintrc": { -+ "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.6.0", -+ "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" -+ }, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://opencollective.com/eslint" -+ } -+ }, -+ "node_modules/@eslint/js": { -+ "version": "8.57.0", -+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", -+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ } -+ }, -+ "node_modules/@humanwhocodes/config-array": { -+ "version": "0.11.14", -+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", -+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", -+ "dev": true, -+ "license": "Apache-2.0", -+ "dependencies": { -+ "@humanwhocodes/object-schema": "^2.0.2", -+ "debug": "^4.3.1", -+ "minimatch": "^3.0.5" -+ }, -+ "engines": { -+ "node": ">=10.10.0" -+ } -+ }, -+ "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": { -+ "node": ">=12.22" -+ }, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/nzakas" -+ } -+ }, -+ "node_modules/@humanwhocodes/object-schema": { -+ "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==", -+ "dev": true, -+ "license": "BSD-3-Clause" -+ }, -+ "node_modules/@jridgewell/gen-mapping": { -+ "version": "0.3.5", -+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", -+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "@jridgewell/set-array": "^1.2.1", -+ "@jridgewell/sourcemap-codec": "^1.4.10", -+ "@jridgewell/trace-mapping": "^0.3.24" -+ }, -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, -+ "node_modules/@jridgewell/resolve-uri": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", -+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, -+ "node_modules/@jridgewell/set-array": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", -+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, -+ "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, -+ "peer": true -+ }, -+ "node_modules/@jridgewell/trace-mapping": { -+ "version": "0.3.25", -+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", -+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", -+ "dev": true, -+ "peer": true, -+ "dependencies": { -+ "@jridgewell/resolve-uri": "^3.1.0", -+ "@jridgewell/sourcemap-codec": "^1.4.14" -+ } -+ }, -+ "node_modules/@jsdoc/salty": { -+ "version": "0.2.8", -+ "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", -+ "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", -+ "dev": true, -+ "dependencies": { -+ "lodash": "^4.17.21" -+ }, -+ "engines": { -+ "node": ">=v12.0.0" -+ } -+ }, -+ "node_modules/@mapbox/node-pre-gyp": { -+ "version": "1.0.11", -+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", -+ "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", -+ "dev": true, -+ "optional": true, -+ "dependencies": { -+ "detect-libc": "^2.0.0", -+ "https-proxy-agent": "^5.0.0", -+ "make-dir": "^3.1.0", -+ "node-fetch": "^2.6.7", -+ "nopt": "^5.0.0", -+ "npmlog": "^5.0.1", -+ "rimraf": "^3.0.2", -+ "semver": "^7.3.5", -+ "tar": "^6.1.11" -+ }, -+ "bin": { -+ "node-pre-gyp": "bin/node-pre-gyp" -+ } -+ }, -+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { -+ "version": "5.1.1-v1", -+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", -+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "eslint-scope": "5.1.1" -+ } -+ }, -+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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/@nicolo-ribaudo/eslint-scope-5-internals/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/@node-red/editor-api": { -+ "version": "3.1.9", -+ "resolved": "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz", -+ "integrity": "sha512-HHhFiwxmD8V5+U/xe+Gl9T0oAnwFeA7zisG8VW+Ruh3apGQvV9l5UoL9Yg00jEPDOhL99k/wqcXI42lakEkiKw==", -+ "dev": true, -+ "dependencies": { -+ "@node-red/editor-client": "3.1.9", -+ "@node-red/util": "3.1.9", -+ "bcryptjs": "2.4.3", -+ "body-parser": "1.20.2", -+ "clone": "2.1.2", -+ "cors": "2.8.5", -+ "express": "4.19.2", -+ "express-session": "1.17.3", -+ "memorystore": "1.6.7", -+ "mime": "3.0.0", -+ "multer": "1.4.5-lts.1", -+ "mustache": "4.2.0", -+ "oauth2orize": "1.11.1", -+ "passport": "0.6.0", -+ "passport-http-bearer": "1.0.1", -+ "passport-oauth2-client-password": "0.1.2", -+ "ws": "7.5.6" -+ }, -+ "optionalDependencies": { -+ "bcrypt": "5.1.0" -+ } -+ }, -+ "node_modules/@node-red/editor-client": { -+ "version": "3.1.9", -+ "resolved": "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.9.tgz", -+ "integrity": "sha512-k8ik9fqcUxwsjEL0bBywNRYoFk7VZxdcoXRKCtcB3H8T/KRgQBDZu4j27dtff/5WPqnvtmXOQBbdDrhluMO0ng==", -+ "dev": true -+ }, -+ "node_modules/@node-red/nodes": { -+ "version": "3.1.9", -+ "resolved": "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.9.tgz", -+ "integrity": "sha512-H0ZJjgmc7tbDBExF8WWIab7VJ1PBJxqExc6HWfb5FJQcOyA9mzCXwBduirWGxWAbQzZvq5GLgzy5ECzDJIjbSQ==", -+ "dev": true, -+ "dependencies": { -+ "acorn": "8.8.2", -+ "acorn-walk": "8.2.0", -+ "ajv": "8.12.0", -+ "body-parser": "1.20.2", -+ "cheerio": "1.0.0-rc.10", -+ "content-type": "1.0.5", -+ "cookie": "0.5.0", -+ "cookie-parser": "1.4.6", -+ "cors": "2.8.5", -+ "cronosjs": "1.7.1", -+ "denque": "2.1.0", -+ "form-data": "4.0.0", -+ "fs-extra": "11.1.1", -+ "got": "12.6.0", -+ "hash-sum": "2.0.0", -+ "hpagent": "1.2.0", -+ "https-proxy-agent": "5.0.1", -+ "iconv-lite": "0.6.3", -+ "is-utf8": "0.2.1", -+ "js-yaml": "4.1.0", -+ "media-typer": "1.1.0", -+ "mqtt": "4.3.7", -+ "multer": "1.4.5-lts.1", -+ "mustache": "4.2.0", -+ "node-watch": "0.7.4", -+ "on-headers": "1.0.2", -+ "raw-body": "2.5.2", -+ "tough-cookie": "4.1.3", -+ "uuid": "9.0.0", -+ "ws": "7.5.6", -+ "xml2js": "0.6.2" -+ } -+ }, -+ "node_modules/@node-red/nodes/node_modules/acorn": { -+ "version": "8.8.2", -+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", -+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", -+ "dev": true, -+ "bin": { -+ "acorn": "bin/acorn" -+ }, -+ "engines": { -+ "node": ">=0.4.0" -+ } -+ }, -+ "node_modules/@node-red/nodes/node_modules/ajv": { -+ "version": "8.12.0", -+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", -+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", -+ "dev": true, -+ "dependencies": { -+ "fast-deep-equal": "^3.1.1", -+ "json-schema-traverse": "^1.0.0", -+ "require-from-string": "^2.0.2", -+ "uri-js": "^4.2.2" -+ }, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/epoberezkin" -+ } -+ }, -+ "node_modules/@node-red/nodes/node_modules/json-schema-traverse": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", -+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", -+ "dev": true -+ }, -+ "node_modules/@node-red/registry": { -+ "version": "3.1.9", -+ "resolved": "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.9.tgz", -+ "integrity": "sha512-lm1jNGO5ebax5kw5A2stOymMVQpuAGJ24M+3bfPYj3djzgBq4qKbNX6EAJLtyLHlCKecAybJoXDNpNcCnl7BXQ==", -+ "dev": true, -+ "dependencies": { -+ "@node-red/util": "3.1.9", -+ "clone": "2.1.2", -+ "fs-extra": "11.1.1", -+ "semver": "7.5.4", -+ "tar": "6.2.1", -+ "uglify-js": "3.17.4" -+ } -+ }, -+ "node_modules/@node-red/registry/node_modules/lru-cache": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", -+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", -+ "dev": true, -+ "dependencies": { -+ "yallist": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/@node-red/registry/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/@node-red/registry/node_modules/yallist": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", -+ "dev": true -+ }, -+ "node_modules/@node-red/runtime": { -+ "version": "3.1.9", -+ "resolved": "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.9.tgz", -+ "integrity": "sha512-tpuHE5gEqLx9OoRjSxsyh683yGCnBlAAwbjkVv5lonqYqLJwE3DCJnMuHYj1lPUDzSc0QzhE9efm+LIhAhBU4g==", -+ "dev": true, -+ "dependencies": { -+ "@node-red/registry": "3.1.9", -+ "@node-red/util": "3.1.9", -+ "async-mutex": "0.4.0", -+ "clone": "2.1.2", -+ "express": "4.19.2", -+ "fs-extra": "11.1.1", -+ "json-stringify-safe": "5.0.1" -+ } -+ }, -+ "node_modules/@node-red/util": { -+ "version": "3.1.9", -+ "resolved": "https://registry.npmjs.org/@node-red/util/-/util-3.1.9.tgz", -+ "integrity": "sha512-BT7mMds8MFrXwgGuNjmk/vY0X621hirLcqAOp5/ZrrFuzPVoK4PDgoNx5igYD/HVQbVcJTHfN1cRopSFPfdF2Q==", -+ "dev": true, -+ "dependencies": { -+ "fs-extra": "11.1.1", -+ "i18next": "21.10.0", -+ "json-stringify-safe": "5.0.1", -+ "jsonata": "1.8.7", -+ "lodash.clonedeep": "^4.5.0", -+ "moment": "2.29.4", -+ "moment-timezone": "0.5.43" -+ } -+ }, -+ "node_modules/@nodelib/fs.scandir": { -+ "version": "2.1.5", -+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", -+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "@nodelib/fs.stat": "2.0.5", -+ "run-parallel": "^1.1.9" -+ }, -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/@nodelib/fs.stat": { -+ "version": "2.0.5", -+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", -+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/@nodelib/fs.walk": { -+ "version": "1.2.8", -+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", -+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "@nodelib/fs.scandir": "2.1.5", -+ "fastq": "^1.6.0" -+ }, -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/@sindresorhus/is": { -+ "version": "5.6.0", -+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", -+ "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", -+ "dev": true, -+ "engines": { -+ "node": ">=14.16" -+ }, -+ "funding": { -+ "url": "https://github.com/sindresorhus/is?sponsor=1" -+ } -+ }, -+ "node_modules/@sinonjs/commons": { -+ "version": "1.8.6", -+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", -+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", -+ "dev": true, -+ "dependencies": { -+ "type-detect": "4.0.8" -+ } -+ }, -+ "node_modules/@sinonjs/fake-timers": { -+ "version": "7.1.2", -+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", -+ "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", -+ "dev": true, -+ "dependencies": { -+ "@sinonjs/commons": "^1.7.0" -+ } -+ }, -+ "node_modules/@sinonjs/samsam": { -+ "version": "6.1.3", -+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", -+ "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", -+ "dev": true, -+ "dependencies": { -+ "@sinonjs/commons": "^1.6.0", -+ "lodash.get": "^4.4.2", -+ "type-detect": "^4.0.8" -+ } -+ }, -+ "node_modules/@sinonjs/text-encoding": { -+ "version": "0.7.2", -+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", -+ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", -+ "dev": true -+ }, -+ "node_modules/@szmarczak/http-timer": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", -+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", -+ "dev": true, -+ "dependencies": { -+ "defer-to-connect": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">=14.16" -+ } -+ }, -+ "node_modules/@types/http-cache-semantics": { -+ "version": "4.0.4", -+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", -+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", -+ "dev": true -+ }, -+ "node_modules/@types/json5": { -+ "version": "0.0.29", -+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", -+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", -+ "dev": true, -+ "license": "MIT" -+ }, -+ "node_modules/@types/linkify-it": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", -+ "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", -+ "dev": true -+ }, -+ "node_modules/@types/markdown-it": { -+ "version": "14.1.1", -+ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz", -+ "integrity": "sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==", -+ "dev": true, -+ "dependencies": { -+ "@types/linkify-it": "^5", -+ "@types/mdurl": "^2" -+ } -+ }, -+ "node_modules/@types/mdurl": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", -+ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", -+ "dev": true -+ }, -+ "node_modules/@ungap/structured-clone": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", -+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", -+ "dev": true, -+ "license": "ISC" -+ }, -+ "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 -+ }, -+ "node_modules/accepts": { -+ "version": "1.3.8", -+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", -+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", -+ "dev": true, -+ "dependencies": { -+ "mime-types": "~2.1.34", -+ "negotiator": "0.6.3" -+ }, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/acorn": { -+ "version": "8.11.3", -+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", -+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", -+ "dev": true, -+ "license": "MIT", -+ "bin": { -+ "acorn": "bin/acorn" -+ }, -+ "engines": { -+ "node": ">=0.4.0" -+ } -+ }, -+ "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": "8.2.0", -+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", -+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.4.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, -+ "dependencies": { -+ "debug": "4" -+ }, -+ "engines": { -+ "node": ">= 6.0.0" -+ } -+ }, -+ "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/ansi-colors": { -+ "version": "4.1.1", -+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", -+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "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": "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": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/ansi-styles?sponsor=1" -+ } -+ }, -+ "node_modules/anymatch": { -+ "version": "3.1.3", -+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", -+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", -+ "dependencies": { -+ "normalize-path": "^3.0.0", -+ "picomatch": "^2.0.4" -+ }, -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/append-field": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", -+ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", -+ "dev": true -+ }, -+ "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, -+ "optional": true -+ }, -+ "node_modules/are-docs-informative": { -+ "version": "0.0.2", -+ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", -+ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": ">=14" -+ } -+ }, -+ "node_modules/are-we-there-yet": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", -+ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", -+ "deprecated": "This package is no longer supported.", -+ "dev": true, -+ "optional": true, -+ "dependencies": { -+ "delegates": "^1.0.0", -+ "readable-stream": "^3.6.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "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==", -+ "license": "Python-2.0" -+ }, -+ "node_modules/array-buffer-byte-length": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", -+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.5", -+ "is-array-buffer": "^3.0.4" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array-flatten": { -+ "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", -+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", -+ "dev": true -+ }, -+ "node_modules/array-includes": { -+ "version": "3.1.8", -+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", -+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2", -+ "es-object-atoms": "^1.0.0", -+ "get-intrinsic": "^1.2.4", -+ "is-string": "^1.0.7" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array.prototype.findlastindex": { -+ "version": "1.2.5", -+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", -+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.23.2", -+ "es-errors": "^1.3.0", -+ "es-object-atoms": "^1.0.0", -+ "es-shim-unscopables": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array.prototype.flat": { -+ "version": "1.3.2", -+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", -+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "define-properties": "^1.2.0", -+ "es-abstract": "^1.22.1", -+ "es-shim-unscopables": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/array.prototype.flatmap": { -+ "version": "1.3.2", -+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", -+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "define-properties": "^1.2.0", -+ "es-abstract": "^1.22.1", -+ "es-shim-unscopables": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/arraybuffer.prototype.slice": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", -+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "array-buffer-byte-length": "^1.0.1", -+ "call-bind": "^1.0.5", -+ "define-properties": "^1.2.1", -+ "es-abstract": "^1.22.3", -+ "es-errors": "^1.2.1", -+ "get-intrinsic": "^1.2.3", -+ "is-array-buffer": "^3.0.4", -+ "is-shared-array-buffer": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/asap": { -+ "version": "2.0.6", -+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", -+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", -+ "dev": true -+ }, -+ "node_modules/async-mutex": { -+ "version": "0.4.0", -+ "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", -+ "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", -+ "dev": true, -+ "dependencies": { -+ "tslib": "^2.4.0" -+ } -+ }, -+ "node_modules/asynckit": { -+ "version": "0.4.0", -+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", -+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", -+ "license": "MIT" -+ }, -+ "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": { -+ "possible-typed-array-names": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/axios": { -+ "version": "1.7.1", -+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", -+ "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", -+ "license": "MIT", -+ "dependencies": { -+ "follow-redirects": "^1.15.6", -+ "form-data": "^4.0.0", -+ "proxy-from-env": "^1.1.0" -+ } -+ }, -+ "node_modules/babel-plugin-polyfill-corejs2": { -+ "version": "0.4.11", -+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", -+ "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", -+ "dev": true, -+ "dependencies": { -+ "@babel/compat-data": "^7.22.6", -+ "@babel/helper-define-polyfill-provider": "^0.6.2", -+ "semver": "^6.3.1" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" -+ } -+ }, -+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { -+ "version": "6.3.1", -+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", -+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", -+ "dev": true, -+ "bin": { -+ "semver": "bin/semver.js" -+ } -+ }, -+ "node_modules/babel-plugin-polyfill-corejs3": { -+ "version": "0.10.4", -+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", -+ "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-define-polyfill-provider": "^0.6.1", -+ "core-js-compat": "^3.36.1" -+ }, -+ "peerDependencies": { -+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" -+ } -+ }, -+ "node_modules/babel-plugin-polyfill-regenerator": { -+ "version": "0.6.2", -+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", -+ "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", -+ "dev": true, -+ "dependencies": { -+ "@babel/helper-define-polyfill-provider": "^0.6.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==", -+ "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": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/basic-auth": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", -+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", -+ "dev": true, -+ "dependencies": { -+ "safe-buffer": "5.1.2" -+ }, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/bcrypt": { -+ "version": "5.1.0", -+ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", -+ "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", -+ "dev": true, -+ "hasInstallScript": true, -+ "optional": true, -+ "dependencies": { -+ "@mapbox/node-pre-gyp": "^1.0.10", -+ "node-addon-api": "^5.0.0" -+ }, -+ "engines": { -+ "node": ">= 10.0.0" -+ } -+ }, -+ "node_modules/bcryptjs": { -+ "version": "2.4.3", -+ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", -+ "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", -+ "dev": true -+ }, -+ "node_modules/binary-extensions": { -+ "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", -+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", -+ "engines": { -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/bl": { -+ "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", -+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", -+ "dev": true, -+ "dependencies": { -+ "buffer": "^5.5.0", -+ "inherits": "^2.0.4", -+ "readable-stream": "^3.4.0" -+ } -+ }, -+ "node_modules/bluebird": { -+ "version": "3.7.2", -+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", -+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", -+ "dev": true -+ }, -+ "node_modules/body-parser": { -+ "version": "1.20.2", -+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", -+ "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", -+ "dev": true, -+ "dependencies": { -+ "bytes": "3.1.2", -+ "content-type": "~1.0.5", -+ "debug": "2.6.9", -+ "depd": "2.0.0", -+ "destroy": "1.2.0", -+ "http-errors": "2.0.0", -+ "iconv-lite": "0.4.24", -+ "on-finished": "2.4.1", -+ "qs": "6.11.0", -+ "raw-body": "2.5.2", -+ "type-is": "~1.6.18", -+ "unpipe": "1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.8", -+ "npm": "1.2.8000 || >= 1.4.16" -+ } -+ }, -+ "node_modules/body-parser/node_modules/debug": { -+ "version": "2.6.9", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", -+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", -+ "dev": true, -+ "dependencies": { -+ "ms": "2.0.0" -+ } -+ }, -+ "node_modules/body-parser/node_modules/iconv-lite": { -+ "version": "0.4.24", -+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", -+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", -+ "dev": true, -+ "dependencies": { -+ "safer-buffer": ">= 2.1.2 < 3" -+ }, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/body-parser/node_modules/ms": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", -+ "dev": true -+ }, -+ "node_modules/boolbase": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", -+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", -+ "dev": true -+ }, -+ "node_modules/brace-expansion": { -+ "version": "1.1.11", -+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", -+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "balanced-match": "^1.0.0", -+ "concat-map": "0.0.1" -+ } -+ }, -+ "node_modules/braces": { -+ "version": "3.0.3", -+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", -+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", -+ "dependencies": { -+ "fill-range": "^7.1.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/browser-stdout": { -+ "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", -+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" -+ }, -+ "node_modules/browserslist": { -+ "version": "4.23.0", -+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", -+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/browserslist" -+ }, -+ { -+ "type": "tidelift", -+ "url": "https://tidelift.com/funding/github/npm/browserslist" -+ }, -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/ai" -+ } -+ ], -+ "dependencies": { -+ "caniuse-lite": "^1.0.30001587", -+ "electron-to-chromium": "^1.4.668", -+ "node-releases": "^2.0.14", -+ "update-browserslist-db": "^1.0.13" -+ }, -+ "bin": { -+ "browserslist": "cli.js" -+ }, -+ "engines": { -+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" -+ } -+ }, -+ "node_modules/buffer": { -+ "version": "5.7.1", -+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", -+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ], -+ "dependencies": { -+ "base64-js": "^1.3.1", -+ "ieee754": "^1.1.13" -+ } -+ }, -+ "node_modules/buffer-from": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", -+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", -+ "dev": true -+ }, -+ "node_modules/builtins": { -+ "version": "5.1.0", -+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", -+ "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "semver": "^7.0.0" -+ } -+ }, -+ "node_modules/busboy": { -+ "version": "1.6.0", -+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", -+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", -+ "dev": true, -+ "dependencies": { -+ "streamsearch": "^1.1.0" -+ }, -+ "engines": { -+ "node": ">=10.16.0" -+ } -+ }, -+ "node_modules/bytes": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", -+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/cacheable-lookup": { -+ "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", -+ "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", -+ "dev": true, -+ "engines": { -+ "node": ">=14.16" -+ } -+ }, -+ "node_modules/cacheable-request": { -+ "version": "10.2.14", -+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", -+ "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", -+ "dev": true, -+ "dependencies": { -+ "@types/http-cache-semantics": "^4.0.2", -+ "get-stream": "^6.0.1", -+ "http-cache-semantics": "^4.1.1", -+ "keyv": "^4.5.3", -+ "mimic-response": "^4.0.0", -+ "normalize-url": "^8.0.0", -+ "responselike": "^3.0.0" -+ }, -+ "engines": { -+ "node": ">=14.16" -+ } -+ }, -+ "node_modules/call-bind": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", -+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "es-define-property": "^1.0.0", -+ "es-errors": "^1.3.0", -+ "function-bind": "^1.1.2", -+ "get-intrinsic": "^1.2.4", -+ "set-function-length": "^1.2.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/callsites": { -+ "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", -+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/camelcase": { -+ "version": "6.3.0", -+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", -+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/caniuse-lite": { -+ "version": "1.0.30001620", -+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", -+ "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "opencollective", -+ "url": "https://opencollective.com/browserslist" -+ }, -+ { -+ "type": "tidelift", -+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite" -+ }, -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/ai" -+ } -+ ] -+ }, -+ "node_modules/catharsis": { -+ "version": "0.9.0", -+ "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", -+ "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", -+ "dev": true, -+ "dependencies": { -+ "lodash": "^4.17.15" -+ }, -+ "engines": { -+ "node": ">= 10" -+ } -+ }, -+ "node_modules/chalk": { -+ "version": "4.1.2", -+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", -+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", -+ "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/cheerio": { -+ "version": "1.0.0-rc.10", -+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", -+ "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", -+ "dev": true, -+ "dependencies": { -+ "cheerio-select": "^1.5.0", -+ "dom-serializer": "^1.3.2", -+ "domhandler": "^4.2.0", -+ "htmlparser2": "^6.1.0", -+ "parse5": "^6.0.1", -+ "parse5-htmlparser2-tree-adapter": "^6.0.1", -+ "tslib": "^2.2.0" -+ }, -+ "engines": { -+ "node": ">= 6" -+ }, -+ "funding": { -+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1" -+ } -+ }, -+ "node_modules/cheerio-select": { -+ "version": "1.6.0", -+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", -+ "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", -+ "dev": true, -+ "dependencies": { -+ "css-select": "^4.3.0", -+ "css-what": "^6.0.1", -+ "domelementtype": "^2.2.0", -+ "domhandler": "^4.3.1", -+ "domutils": "^2.8.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/fb55" -+ } -+ }, -+ "node_modules/chokidar": { -+ "version": "3.5.3", -+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", -+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", -+ "funding": [ -+ { -+ "type": "individual", -+ "url": "https://paulmillr.com/funding/" -+ } -+ ], -+ "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" -+ }, -+ "optionalDependencies": { -+ "fsevents": "~2.3.2" -+ } -+ }, -+ "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==", -+ "dependencies": { -+ "is-glob": "^4.0.1" -+ }, -+ "engines": { -+ "node": ">= 6" -+ } -+ }, -+ "node_modules/chownr": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", -+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/cli-table": { -+ "version": "0.3.11", -+ "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", -+ "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", -+ "dev": true, -+ "dependencies": { -+ "colors": "1.0.3" -+ }, -+ "engines": { -+ "node": ">= 0.2.0" -+ } -+ }, -+ "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==", -+ "dependencies": { -+ "string-width": "^4.2.0", -+ "strip-ansi": "^6.0.0", -+ "wrap-ansi": "^7.0.0" -+ } -+ }, -+ "node_modules/clone": { -+ "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", -+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.8" -+ } -+ }, -+ "node_modules/color-convert": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", -+ "license": "MIT", -+ "dependencies": { -+ "color-name": "~1.1.4" -+ }, -+ "engines": { -+ "node": ">=7.0.0" -+ } -+ }, -+ "node_modules/color-name": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -+ "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, -+ "optional": true, -+ "bin": { -+ "color-support": "bin.js" -+ } -+ }, -+ "node_modules/colors": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", -+ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.1.90" -+ } -+ }, -+ "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==", -+ "license": "MIT", -+ "dependencies": { -+ "delayed-stream": "~1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/comment-parser": { -+ "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", -+ "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": ">= 12.0.0" -+ } -+ }, -+ "node_modules/commist": { -+ "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", -+ "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", -+ "dev": true, -+ "dependencies": { -+ "leven": "^2.1.0", -+ "minimist": "^1.1.0" -+ } -+ }, -+ "node_modules/component-emitter": { -+ "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", -+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", -+ "dev": true, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "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/concat-stream": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", -+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", -+ "dev": true, -+ "engines": [ -+ "node >= 6.0" -+ ], -+ "dependencies": { -+ "buffer-from": "^1.0.0", -+ "inherits": "^2.0.3", -+ "readable-stream": "^3.0.2", -+ "typedarray": "^0.0.6" -+ } -+ }, -+ "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, -+ "optional": true -+ }, -+ "node_modules/content-disposition": { -+ "version": "0.5.4", -+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", -+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", -+ "dev": true, -+ "dependencies": { -+ "safe-buffer": "5.2.1" -+ }, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/content-disposition/node_modules/safe-buffer": { -+ "version": "5.2.1", -+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", -+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/content-type": { -+ "version": "1.0.5", -+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", -+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/convert-source-map": { -+ "version": "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, -+ "peer": true -+ }, -+ "node_modules/cookie": { -+ "version": "0.5.0", -+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", -+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/cookie-parser": { -+ "version": "1.4.6", -+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", -+ "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", -+ "dev": true, -+ "dependencies": { -+ "cookie": "0.4.1", -+ "cookie-signature": "1.0.6" -+ }, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/cookie-parser/node_modules/cookie": { -+ "version": "0.4.1", -+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", -+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/cookie-signature": { -+ "version": "1.0.6", -+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", -+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", -+ "dev": true -+ }, -+ "node_modules/cookiejar": { -+ "version": "2.1.4", -+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", -+ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", -+ "dev": true -+ }, -+ "node_modules/core-js-compat": { -+ "version": "3.37.1", -+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", -+ "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", -+ "dev": true, -+ "dependencies": { -+ "browserslist": "^4.23.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/core-js" -+ } -+ }, -+ "node_modules/core-util-is": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", -+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", -+ "dev": true -+ }, -+ "node_modules/cors": { -+ "version": "2.8.5", -+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", -+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", -+ "dev": true, -+ "dependencies": { -+ "object-assign": "^4", -+ "vary": "^1" -+ }, -+ "engines": { -+ "node": ">= 0.10" -+ } -+ }, -+ "node_modules/cronosjs": { -+ "version": "1.7.1", -+ "resolved": "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz", -+ "integrity": "sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q==", -+ "dev": true, -+ "engines": { -+ "node": ">=8.0.0" -+ } -+ }, -+ "node_modules/cross-spawn": { -+ "version": "7.0.3", -+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", -+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "path-key": "^3.1.0", -+ "shebang-command": "^2.0.0", -+ "which": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/css-select": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", -+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", -+ "dev": true, -+ "dependencies": { -+ "boolbase": "^1.0.0", -+ "css-what": "^6.0.1", -+ "domhandler": "^4.3.1", -+ "domutils": "^2.8.0", -+ "nth-check": "^2.0.1" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/fb55" -+ } -+ }, -+ "node_modules/css-what": { -+ "version": "6.1.0", -+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", -+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/fb55" -+ } -+ }, -+ "node_modules/data-view-buffer": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", -+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.6", -+ "es-errors": "^1.3.0", -+ "is-data-view": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/data-view-byte-length": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", -+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.7", -+ "es-errors": "^1.3.0", -+ "is-data-view": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/data-view-byte-offset": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", -+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.6", -+ "es-errors": "^1.3.0", -+ "is-data-view": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/debug": { -+ "version": "4.3.4", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", -+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", -+ "license": "MIT", -+ "dependencies": { -+ "ms": "2.1.2" -+ }, -+ "engines": { -+ "node": ">=6.0" -+ }, -+ "peerDependenciesMeta": { -+ "supports-color": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/decamelize": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", -+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/decompress-response": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", -+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", -+ "dev": true, -+ "dependencies": { -+ "mimic-response": "^3.1.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/decompress-response/node_modules/mimic-response": { -+ "version": "3.1.0", -+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", -+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "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/defer-to-connect": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", -+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "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": { -+ "es-define-property": "^1.0.0", -+ "es-errors": "^1.3.0", -+ "gopd": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/define-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": { -+ "define-data-property": "^1.0.1", -+ "has-property-descriptors": "^1.0.0", -+ "object-keys": "^1.1.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/delayed-stream": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", -+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", -+ "license": "MIT", -+ "engines": { -+ "node": ">=0.4.0" -+ } -+ }, -+ "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, -+ "optional": true -+ }, -+ "node_modules/denque": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", -+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10" -+ } -+ }, -+ "node_modules/depd": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", -+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/destroy": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", -+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8", -+ "npm": "1.2.8000 || >= 1.4.16" -+ } -+ }, -+ "node_modules/detect-libc": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", -+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", -+ "dev": true, -+ "optional": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/dezalgo": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", -+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", -+ "dev": true, -+ "dependencies": { -+ "asap": "^2.0.0", -+ "wrappy": "1" -+ } -+ }, -+ "node_modules/diff": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", -+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", -+ "engines": { -+ "node": ">=0.3.1" -+ } -+ }, -+ "node_modules/doctrine": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", -+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", -+ "dev": true, -+ "license": "Apache-2.0", -+ "dependencies": { -+ "esutils": "^2.0.2" -+ }, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/dom-serializer": { -+ "version": "1.4.1", -+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", -+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", -+ "dev": true, -+ "dependencies": { -+ "domelementtype": "^2.0.1", -+ "domhandler": "^4.2.0", -+ "entities": "^2.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" -+ } -+ }, -+ "node_modules/dom-serializer/node_modules/entities": { -+ "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", -+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", -+ "dev": true, -+ "funding": { -+ "url": "https://github.com/fb55/entities?sponsor=1" -+ } -+ }, -+ "node_modules/domelementtype": { -+ "version": "2.3.0", -+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", -+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/fb55" -+ } -+ ] -+ }, -+ "node_modules/domhandler": { -+ "version": "4.3.1", -+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", -+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", -+ "dev": true, -+ "dependencies": { -+ "domelementtype": "^2.2.0" -+ }, -+ "engines": { -+ "node": ">= 4" -+ }, -+ "funding": { -+ "url": "https://github.com/fb55/domhandler?sponsor=1" -+ } -+ }, -+ "node_modules/domutils": { -+ "version": "2.8.0", -+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", -+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", -+ "dev": true, -+ "dependencies": { -+ "dom-serializer": "^1.0.1", -+ "domelementtype": "^2.2.0", -+ "domhandler": "^4.2.0" -+ }, -+ "funding": { -+ "url": "https://github.com/fb55/domutils?sponsor=1" -+ } -+ }, -+ "node_modules/duplexify": { -+ "version": "4.1.3", -+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", -+ "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", -+ "dev": true, -+ "dependencies": { -+ "end-of-stream": "^1.4.1", -+ "inherits": "^2.0.3", -+ "readable-stream": "^3.1.1", -+ "stream-shift": "^1.0.2" -+ } -+ }, -+ "node_modules/ee-first": { -+ "version": "1.1.1", -+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", -+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", -+ "dev": true -+ }, -+ "node_modules/electron-to-chromium": { -+ "version": "1.4.775", -+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", -+ "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==", -+ "dev": true -+ }, -+ "node_modules/emoji-regex": { -+ "version": "8.0.0", -+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", -+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" -+ }, -+ "node_modules/encodeurl": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", -+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/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, -+ "dependencies": { -+ "once": "^1.4.0" -+ } -+ }, -+ "node_modules/enquirer": { -+ "version": "2.4.1", -+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", -+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", -+ "dev": true, -+ "dependencies": { -+ "ansi-colors": "^4.1.1", -+ "strip-ansi": "^6.0.1" -+ }, -+ "engines": { -+ "node": ">=8.6" -+ } -+ }, -+ "node_modules/entities": { -+ "version": "4.5.0", -+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", -+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.12" -+ }, -+ "funding": { -+ "url": "https://github.com/fb55/entities?sponsor=1" -+ } -+ }, -+ "node_modules/es-abstract": { -+ "version": "1.23.3", -+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", -+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "array-buffer-byte-length": "^1.0.1", -+ "arraybuffer.prototype.slice": "^1.0.3", -+ "available-typed-arrays": "^1.0.7", -+ "call-bind": "^1.0.7", -+ "data-view-buffer": "^1.0.1", -+ "data-view-byte-length": "^1.0.1", -+ "data-view-byte-offset": "^1.0.0", -+ "es-define-property": "^1.0.0", -+ "es-errors": "^1.3.0", -+ "es-object-atoms": "^1.0.0", -+ "es-set-tostringtag": "^2.0.3", -+ "es-to-primitive": "^1.2.1", -+ "function.prototype.name": "^1.1.6", -+ "get-intrinsic": "^1.2.4", -+ "get-symbol-description": "^1.0.2", -+ "globalthis": "^1.0.3", -+ "gopd": "^1.0.1", -+ "has-property-descriptors": "^1.0.2", -+ "has-proto": "^1.0.3", -+ "has-symbols": "^1.0.3", -+ "hasown": "^2.0.2", -+ "internal-slot": "^1.0.7", -+ "is-array-buffer": "^3.0.4", -+ "is-callable": "^1.2.7", -+ "is-data-view": "^1.0.1", -+ "is-negative-zero": "^2.0.3", -+ "is-regex": "^1.1.4", -+ "is-shared-array-buffer": "^1.0.3", -+ "is-string": "^1.0.7", -+ "is-typed-array": "^1.1.13", -+ "is-weakref": "^1.0.2", -+ "object-inspect": "^1.13.1", -+ "object-keys": "^1.1.1", -+ "object.assign": "^4.1.5", -+ "regexp.prototype.flags": "^1.5.2", -+ "safe-array-concat": "^1.1.2", -+ "safe-regex-test": "^1.0.3", -+ "string.prototype.trim": "^1.2.9", -+ "string.prototype.trimend": "^1.0.8", -+ "string.prototype.trimstart": "^1.0.8", -+ "typed-array-buffer": "^1.0.2", -+ "typed-array-byte-length": "^1.0.1", -+ "typed-array-byte-offset": "^1.0.2", -+ "typed-array-length": "^1.0.6", -+ "unbox-primitive": "^1.0.2", -+ "which-typed-array": "^1.1.15" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/es-define-property": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", -+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", -+ "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": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/es-object-atoms": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", -+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "es-errors": "^1.3.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/es-set-tostringtag": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", -+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "get-intrinsic": "^1.2.4", -+ "has-tostringtag": "^1.0.2", -+ "hasown": "^2.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } -+ }, -+ "node_modules/es-shim-unscopables": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", -+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "hasown": "^2.0.0" -+ } -+ }, -+ "node_modules/es-to-primitive": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", -+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "is-callable": "^1.1.4", -+ "is-date-object": "^1.0.1", -+ "is-symbol": "^1.0.2" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/escalade": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", -+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/escape-html": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", -+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", -+ "dev": true -+ }, -+ "node_modules/escape-string-regexp": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", -+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", -+ "license": "MIT", -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/eslint": { -+ "version": "8.57.0", -+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", -+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", -+ "dev": true, -+ "dependencies": { -+ "@eslint-community/eslint-utils": "^4.2.0", -+ "@eslint-community/regexpp": "^4.6.1", -+ "@eslint/eslintrc": "^2.1.4", -+ "@eslint/js": "8.57.0", -+ "@humanwhocodes/config-array": "^0.11.14", -+ "@humanwhocodes/module-importer": "^1.0.1", -+ "@nodelib/fs.walk": "^1.2.8", -+ "@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.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", -+ "file-entry-cache": "^6.0.1", -+ "find-up": "^5.0.0", -+ "glob-parent": "^6.0.2", -+ "globals": "^13.19.0", -+ "graphemer": "^1.4.0", -+ "ignore": "^5.2.0", -+ "imurmurhash": "^0.1.4", -+ "is-glob": "^4.0.0", -+ "is-path-inside": "^3.0.3", -+ "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.3", -+ "strip-ansi": "^6.0.1", -+ "text-table": "^0.2.0" -+ }, -+ "bin": { -+ "eslint": "bin/eslint.js" -+ }, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://opencollective.com/eslint" -+ } -+ }, -+ "node_modules/eslint-config-prettier": { -+ "version": "8.10.0", -+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", -+ "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", -+ "dev": true, -+ "license": "MIT", -+ "bin": { -+ "eslint-config-prettier": "bin/cli.js" -+ }, -+ "peerDependencies": { -+ "eslint": ">=7.0.0" -+ } -+ }, -+ "node_modules/eslint-config-standard": { -+ "version": "17.1.0", -+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", -+ "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", -+ "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", -+ "engines": { -+ "node": ">=12.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": "^8.0.1", -+ "eslint-plugin-import": "^2.25.2", -+ "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", -+ "eslint-plugin-promise": "^6.0.0" -+ } -+ }, -+ "node_modules/eslint-import-resolver-node": { -+ "version": "0.3.9", -+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", -+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "debug": "^3.2.7", -+ "is-core-module": "^2.13.0", -+ "resolve": "^1.22.4" -+ } -+ }, -+ "node_modules/eslint-import-resolver-node/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": { -+ "ms": "^2.1.1" -+ } -+ }, -+ "node_modules/eslint-import-resolver-node/node_modules/ms": { -+ "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", -+ "dev": true, -+ "license": "MIT" -+ }, -+ "node_modules/eslint-module-utils": { -+ "version": "2.8.1", -+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", -+ "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "debug": "^3.2.7" -+ }, -+ "engines": { -+ "node": ">=4" -+ }, -+ "peerDependenciesMeta": { -+ "eslint": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/eslint-module-utils/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": { -+ "ms": "^2.1.1" -+ } -+ }, -+ "node_modules/eslint-module-utils/node_modules/ms": { -+ "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", -+ "dev": true, -+ "license": "MIT" -+ }, -+ "node_modules/eslint-plugin-es": { -+ "version": "4.1.0", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", -+ "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "eslint-utils": "^2.0.0", -+ "regexpp": "^3.0.0" -+ }, -+ "engines": { -+ "node": ">=8.10.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/mysticatea" -+ }, -+ "peerDependencies": { -+ "eslint": ">=4.19.1" -+ } -+ }, -+ "node_modules/eslint-plugin-es/node_modules/eslint-utils": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", -+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "eslint-visitor-keys": "^1.1.0" -+ }, -+ "engines": { -+ "node": ">=6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/mysticatea" -+ } -+ }, -+ "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", -+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", -+ "dev": true, -+ "license": "Apache-2.0", -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/eslint-plugin-import": { -+ "version": "2.29.1", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", -+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "array-includes": "^3.1.7", -+ "array.prototype.findlastindex": "^1.2.3", -+ "array.prototype.flat": "^1.3.2", -+ "array.prototype.flatmap": "^1.3.2", -+ "debug": "^3.2.7", -+ "doctrine": "^2.1.0", -+ "eslint-import-resolver-node": "^0.3.9", -+ "eslint-module-utils": "^2.8.0", -+ "hasown": "^2.0.0", -+ "is-core-module": "^2.13.1", -+ "is-glob": "^4.0.3", -+ "minimatch": "^3.1.2", -+ "object.fromentries": "^2.0.7", -+ "object.groupby": "^1.0.1", -+ "object.values": "^1.1.7", -+ "semver": "^6.3.1", -+ "tsconfig-paths": "^3.15.0" -+ }, -+ "engines": { -+ "node": ">=4" -+ }, -+ "peerDependencies": { -+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" -+ } -+ }, -+ "node_modules/eslint-plugin-import/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": { -+ "ms": "^2.1.1" -+ } -+ }, -+ "node_modules/eslint-plugin-import/node_modules/ms": { -+ "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", -+ "dev": true, -+ "license": "MIT" -+ }, -+ "node_modules/eslint-plugin-import/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/eslint-plugin-jsdoc": { -+ "version": "44.2.7", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", -+ "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", -+ "dev": true, -+ "license": "BSD-3-Clause", -+ "dependencies": { -+ "@es-joy/jsdoccomment": "~0.39.4", -+ "are-docs-informative": "^0.0.2", -+ "comment-parser": "1.3.1", -+ "debug": "^4.3.4", -+ "escape-string-regexp": "^4.0.0", -+ "esquery": "^1.5.0", -+ "semver": "^7.5.1", -+ "spdx-expression-parse": "^3.0.1" -+ }, -+ "engines": { -+ "node": ">=16" -+ }, -+ "peerDependencies": { -+ "eslint": "^7.0.0 || ^8.0.0" -+ } -+ }, -+ "node_modules/eslint-plugin-mocha": { -+ "version": "10.4.3", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", -+ "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==", -+ "dev": true, -+ "dependencies": { -+ "eslint-utils": "^3.0.0", -+ "globals": "^13.24.0", -+ "rambda": "^7.4.0" -+ }, -+ "engines": { -+ "node": ">=14.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": ">=7.0.0" -+ } -+ }, -+ "node_modules/eslint-plugin-n": { -+ "version": "15.7.0", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", -+ "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "builtins": "^5.0.1", -+ "eslint-plugin-es": "^4.1.0", -+ "eslint-utils": "^3.0.0", -+ "ignore": "^5.1.1", -+ "is-core-module": "^2.11.0", -+ "minimatch": "^3.1.2", -+ "resolve": "^1.22.1", -+ "semver": "^7.3.8" -+ }, -+ "engines": { -+ "node": ">=12.22.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/mysticatea" -+ }, -+ "peerDependencies": { -+ "eslint": ">=7.0.0" -+ } -+ }, -+ "node_modules/eslint-plugin-prettier": { -+ "version": "4.2.1", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", -+ "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "prettier-linter-helpers": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">=12.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": ">=7.28.0", -+ "prettier": ">=2.0.0" -+ }, -+ "peerDependenciesMeta": { -+ "eslint-config-prettier": { -+ "optional": true -+ } -+ } -+ }, -+ "node_modules/eslint-plugin-promise": { -+ "version": "6.1.1", -+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", -+ "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", -+ "dev": true, -+ "license": "ISC", -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "peerDependencies": { -+ "eslint": "^7.0.0 || ^8.0.0" -+ } -+ }, -+ "node_modules/eslint-scope": { -+ "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": { -+ "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/eslint-utils": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", -+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "eslint-visitor-keys": "^2.0.0" -+ }, -+ "engines": { -+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/mysticatea" -+ }, -+ "peerDependencies": { -+ "eslint": ">=5" -+ } -+ }, -+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", -+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", -+ "dev": true, -+ "license": "Apache-2.0", -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "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": "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/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": { -+ "esutils": "^2.0.2" -+ }, -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, -+ "node_modules/espree": { -+ "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.9.0", -+ "acorn-jsx": "^5.3.2", -+ "eslint-visitor-keys": "^3.4.1" -+ }, -+ "engines": { -+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://opencollective.com/eslint" -+ } -+ }, -+ "node_modules/esquery": { -+ "version": "1.5.0", -+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", -+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", -+ "dev": true, -+ "license": "BSD-3-Clause", -+ "dependencies": { -+ "estraverse": "^5.1.0" -+ }, -+ "engines": { -+ "node": ">=0.10" -+ } -+ }, -+ "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": { -+ "estraverse": "^5.2.0" -+ }, -+ "engines": { -+ "node": ">=4.0" -+ } -+ }, -+ "node_modules/estraverse": { -+ "version": "5.3.0", -+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", -+ "dev": true, -+ "license": "BSD-2-Clause", -+ "engines": { -+ "node": ">=4.0" -+ } -+ }, -+ "node_modules/esutils": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", -+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", -+ "dev": true, -+ "license": "BSD-2-Clause", -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/etag": { -+ "version": "1.8.1", -+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", -+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/express": { -+ "version": "4.19.2", -+ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", -+ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", -+ "dev": true, -+ "dependencies": { -+ "accepts": "~1.3.8", -+ "array-flatten": "1.1.1", -+ "body-parser": "1.20.2", -+ "content-disposition": "0.5.4", -+ "content-type": "~1.0.4", -+ "cookie": "0.6.0", -+ "cookie-signature": "1.0.6", -+ "debug": "2.6.9", -+ "depd": "2.0.0", -+ "encodeurl": "~1.0.2", -+ "escape-html": "~1.0.3", -+ "etag": "~1.8.1", -+ "finalhandler": "1.2.0", -+ "fresh": "0.5.2", -+ "http-errors": "2.0.0", -+ "merge-descriptors": "1.0.1", -+ "methods": "~1.1.2", -+ "on-finished": "2.4.1", -+ "parseurl": "~1.3.3", -+ "path-to-regexp": "0.1.7", -+ "proxy-addr": "~2.0.7", -+ "qs": "6.11.0", -+ "range-parser": "~1.2.1", -+ "safe-buffer": "5.2.1", -+ "send": "0.18.0", -+ "serve-static": "1.15.0", -+ "setprototypeof": "1.2.0", -+ "statuses": "2.0.1", -+ "type-is": "~1.6.18", -+ "utils-merge": "1.0.1", -+ "vary": "~1.1.2" -+ }, -+ "engines": { -+ "node": ">= 0.10.0" -+ } -+ }, -+ "node_modules/express-session": { -+ "version": "1.17.3", -+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", -+ "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", -+ "dev": true, -+ "dependencies": { -+ "cookie": "0.4.2", -+ "cookie-signature": "1.0.6", -+ "debug": "2.6.9", -+ "depd": "~2.0.0", -+ "on-headers": "~1.0.2", -+ "parseurl": "~1.3.3", -+ "safe-buffer": "5.2.1", -+ "uid-safe": "~2.1.5" -+ }, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/express-session/node_modules/cookie": { -+ "version": "0.4.2", -+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", -+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/express-session/node_modules/debug": { -+ "version": "2.6.9", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", -+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", -+ "dev": true, -+ "dependencies": { -+ "ms": "2.0.0" -+ } -+ }, -+ "node_modules/express-session/node_modules/ms": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", -+ "dev": true -+ }, -+ "node_modules/express-session/node_modules/safe-buffer": { -+ "version": "5.2.1", -+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", -+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/express/node_modules/cookie": { -+ "version": "0.6.0", -+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", -+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/express/node_modules/debug": { -+ "version": "2.6.9", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", -+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", -+ "dev": true, -+ "dependencies": { -+ "ms": "2.0.0" -+ } -+ }, -+ "node_modules/express/node_modules/ms": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", -+ "dev": true -+ }, -+ "node_modules/express/node_modules/safe-buffer": { -+ "version": "5.2.1", -+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", -+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", -+ "dev": true, -+ "funding": [ -+ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, -@@ -1654,572 +4837,1106 @@ - "url": "https://www.patreon.com/feross" - }, - { -- "type": "consulting", -- "url": "https://feross.org/support" -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "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-diff": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", -+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", -+ "dev": true, -+ "license": "Apache-2.0" -+ }, -+ "node_modules/fast-json-stable-stringify": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", -+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", -+ "dev": true, -+ "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/fast-safe-stringify": { -+ "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", -+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", -+ "dev": true -+ }, -+ "node_modules/fastq": { -+ "version": "1.17.1", -+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", -+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", -+ "dev": true, -+ "license": "ISC", -+ "dependencies": { -+ "reusify": "^1.0.4" -+ } -+ }, -+ "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": { -+ "flat-cache": "^3.0.4" -+ }, -+ "engines": { -+ "node": "^10.12.0 || >=12.0.0" -+ } -+ }, -+ "node_modules/fill-range": { -+ "version": "7.1.1", -+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", -+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", -+ "dependencies": { -+ "to-regex-range": "^5.0.1" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/finalhandler": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", -+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", -+ "dev": true, -+ "dependencies": { -+ "debug": "2.6.9", -+ "encodeurl": "~1.0.2", -+ "escape-html": "~1.0.3", -+ "on-finished": "2.4.1", -+ "parseurl": "~1.3.3", -+ "statuses": "2.0.1", -+ "unpipe": "~1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/finalhandler/node_modules/debug": { -+ "version": "2.6.9", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", -+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", -+ "dev": true, -+ "dependencies": { -+ "ms": "2.0.0" -+ } -+ }, -+ "node_modules/finalhandler/node_modules/ms": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", -+ "dev": true -+ }, -+ "node_modules/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==", -+ "license": "MIT", -+ "dependencies": { -+ "locate-path": "^6.0.0", -+ "path-exists": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/flat": { -+ "version": "5.0.2", -+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", -+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", -+ "bin": { -+ "flat": "cli.js" -+ } -+ }, -+ "node_modules/flat-cache": { -+ "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.2.9", -+ "keyv": "^4.5.3", -+ "rimraf": "^3.0.2" -+ }, -+ "engines": { -+ "node": "^10.12.0 || >=12.0.0" -+ } -+ }, -+ "node_modules/flatted": { -+ "version": "3.3.1", -+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", -+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", -+ "dev": true, -+ "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==", -+ "funding": [ -+ { -+ "type": "individual", -+ "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { -- "node": ">=12.0.0" -+ "node": ">=4.0" - }, -- "peerDependencies": { -- "eslint": "^8.0.1", -- "eslint-plugin-import": "^2.25.2", -- "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", -- "eslint-plugin-promise": "^6.0.0" -+ "peerDependenciesMeta": { -+ "debug": { -+ "optional": true -+ } - } - }, -- "node_modules/eslint-import-resolver-node": { -- "version": "0.3.9", -- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", -- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", -+ "node_modules/for-each": { -+ "version": "0.3.3", -+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", -+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "license": "MIT", - "dependencies": { -- "debug": "^3.2.7", -- "is-core-module": "^2.13.0", -- "resolve": "^1.22.4" -+ "is-callable": "^1.1.3" - } - }, -- "node_modules/eslint-import-resolver-node/node_modules/debug": { -- "version": "3.2.7", -- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", -- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", -+ "node_modules/form-data": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", -+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", -+ "license": "MIT", -+ "dependencies": { -+ "asynckit": "^0.4.0", -+ "combined-stream": "^1.0.8", -+ "mime-types": "^2.1.12" -+ }, -+ "engines": { -+ "node": ">= 6" -+ } -+ }, -+ "node_modules/form-data-encoder": { -+ "version": "2.1.4", -+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", -+ "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 14.17" -+ } -+ }, -+ "node_modules/formidable": { -+ "version": "3.5.1", -+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", -+ "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", -+ "dev": true, -+ "dependencies": { -+ "dezalgo": "^1.0.4", -+ "hexoid": "^1.0.0", -+ "once": "^1.4.0" -+ }, -+ "funding": { -+ "url": "https://ko-fi.com/tunnckoCore/commissions" -+ } -+ }, -+ "node_modules/forwarded": { -+ "version": "0.2.0", -+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", -+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/fresh": { -+ "version": "0.5.2", -+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", -+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/fs-extra": { -+ "version": "11.1.1", -+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", -+ "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", -+ "dev": true, -+ "dependencies": { -+ "graceful-fs": "^4.2.0", -+ "jsonfile": "^6.0.1", -+ "universalify": "^2.0.0" -+ }, -+ "engines": { -+ "node": ">=14.14" -+ } -+ }, -+ "node_modules/fs-minipass": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", -+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", -+ "dev": true, -+ "dependencies": { -+ "minipass": "^3.0.0" -+ }, -+ "engines": { -+ "node": ">= 8" -+ } -+ }, -+ "node_modules/fs-minipass/node_modules/minipass": { -+ "version": "3.3.6", -+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", -+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", -+ "dev": true, -+ "dependencies": { -+ "yallist": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/fs-minipass/node_modules/yallist": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", -+ "dev": true -+ }, -+ "node_modules/fs.realpath": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", -+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", -+ "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, -+ "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": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/function.prototype.name": { -+ "version": "1.1.6", -+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", -+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.2", -+ "define-properties": "^1.2.0", -+ "es-abstract": "^1.22.1", -+ "functions-have-names": "^1.2.3" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "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": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/gauge": { -+ "version": "3.0.2", -+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", -+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", -+ "deprecated": "This package is no longer supported.", -+ "dev": true, -+ "optional": true, -+ "dependencies": { -+ "aproba": "^1.0.3 || ^2.0.0", -+ "color-support": "^1.1.2", -+ "console-control-strings": "^1.0.0", -+ "has-unicode": "^2.0.1", -+ "object-assign": "^4.1.1", -+ "signal-exit": "^3.0.0", -+ "string-width": "^4.2.3", -+ "strip-ansi": "^6.0.1", -+ "wide-align": "^1.1.2" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/gensync": { -+ "version": "1.0.0-beta.2", -+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", -+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", -+ "dev": true, -+ "peer": true, -+ "engines": { -+ "node": ">=6.9.0" -+ } -+ }, -+ "node_modules/get-caller-file": { -+ "version": "2.0.5", -+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", -+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", -+ "engines": { -+ "node": "6.* || 8.* || >= 10.*" -+ } -+ }, -+ "node_modules/get-intrinsic": { -+ "version": "1.2.4", -+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", -+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "es-errors": "^1.3.0", -+ "function-bind": "^1.1.2", -+ "has-proto": "^1.0.1", -+ "has-symbols": "^1.0.3", -+ "hasown": "^2.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/get-stream": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", -+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/get-symbol-description": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", -+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "license": "MIT", - "dependencies": { -- "ms": "^2.1.1" -+ "call-bind": "^1.0.5", -+ "es-errors": "^1.3.0", -+ "get-intrinsic": "^1.2.4" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/eslint-import-resolver-node/node_modules/ms": { -- "version": "2.1.3", -- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", -- "dev": true, -- "license": "MIT" -- }, -- "node_modules/eslint-module-utils": { -- "version": "2.8.1", -- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", -- "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", -+ "node_modules/glob": { -+ "version": "7.2.3", -+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", -+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, -- "license": "MIT", -+ "license": "ISC", - "dependencies": { -- "debug": "^3.2.7" -+ "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": ">=4" -+ "node": "*" - }, -- "peerDependenciesMeta": { -- "eslint": { -- "optional": true -- } -+ "funding": { -+ "url": "https://github.com/sponsors/isaacs" - } - }, -- "node_modules/eslint-module-utils/node_modules/debug": { -- "version": "3.2.7", -- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", -- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", -+ "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": "MIT", -+ "license": "ISC", - "dependencies": { -- "ms": "^2.1.1" -+ "is-glob": "^4.0.3" -+ }, -+ "engines": { -+ "node": ">=10.13.0" - } - }, -- "node_modules/eslint-module-utils/node_modules/ms": { -- "version": "2.1.3", -- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", -- "dev": true, -- "license": "MIT" -- }, -- "node_modules/eslint-plugin-es": { -- "version": "4.1.0", -- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", -- "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", -+ "node_modules/globals": { -+ "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": { -- "eslint-utils": "^2.0.0", -- "regexpp": "^3.0.0" -+ "type-fest": "^0.20.2" - }, - "engines": { -- "node": ">=8.10.0" -+ "node": ">=8" - }, - "funding": { -- "url": "https://github.com/sponsors/mysticatea" -- }, -- "peerDependencies": { -- "eslint": ">=4.19.1" -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/eslint-plugin-es/node_modules/eslint-utils": { -- "version": "2.1.0", -- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", -- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", -+ "node_modules/globalthis": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", -+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { -- "eslint-visitor-keys": "^1.1.0" -+ "define-properties": "^1.2.1", -+ "gopd": "^1.0.1" - }, - "engines": { -- "node": ">=6" -+ "node": ">= 0.4" - }, - "funding": { -- "url": "https://github.com/sponsors/mysticatea" -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { -- "version": "1.3.0", -- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", -- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", -+ "node_modules/gopd": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", -+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, -- "license": "Apache-2.0", -- "engines": { -- "node": ">=4" -+ "license": "MIT", -+ "dependencies": { -+ "get-intrinsic": "^1.1.3" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/eslint-plugin-import": { -- "version": "2.29.1", -- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", -- "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", -+ "node_modules/got": { -+ "version": "12.6.0", -+ "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", -+ "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "array-includes": "^3.1.7", -- "array.prototype.findlastindex": "^1.2.3", -- "array.prototype.flat": "^1.3.2", -- "array.prototype.flatmap": "^1.3.2", -- "debug": "^3.2.7", -- "doctrine": "^2.1.0", -- "eslint-import-resolver-node": "^0.3.9", -- "eslint-module-utils": "^2.8.0", -- "hasown": "^2.0.0", -- "is-core-module": "^2.13.1", -- "is-glob": "^4.0.3", -- "minimatch": "^3.1.2", -- "object.fromentries": "^2.0.7", -- "object.groupby": "^1.0.1", -- "object.values": "^1.1.7", -- "semver": "^6.3.1", -- "tsconfig-paths": "^3.15.0" -+ "@sindresorhus/is": "^5.2.0", -+ "@szmarczak/http-timer": "^5.0.1", -+ "cacheable-lookup": "^7.0.0", -+ "cacheable-request": "^10.2.8", -+ "decompress-response": "^6.0.0", -+ "form-data-encoder": "^2.1.2", -+ "get-stream": "^6.0.1", -+ "http2-wrapper": "^2.1.10", -+ "lowercase-keys": "^3.0.0", -+ "p-cancelable": "^3.0.0", -+ "responselike": "^3.0.0" - }, - "engines": { -- "node": ">=4" -+ "node": ">=14.16" - }, -- "peerDependencies": { -- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" -+ "funding": { -+ "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, -- "node_modules/eslint-plugin-import/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": { -- "ms": "^2.1.1" -- } -+ "node_modules/graceful-fs": { -+ "version": "4.2.11", -+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", -+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", -+ "dev": true - }, -- "node_modules/eslint-plugin-import/node_modules/ms": { -- "version": "2.1.3", -- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", -+ "node_modules/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/eslint-plugin-import/node_modules/semver": { -- "version": "6.3.1", -- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", -- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", -+ "node_modules/has-bigints": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", -+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, -- "license": "ISC", -- "bin": { -- "semver": "bin/semver.js" -+ "license": "MIT", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/eslint-plugin-jsdoc": { -- "version": "44.2.7", -- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", -- "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", -- "dev": true, -- "license": "BSD-3-Clause", -- "dependencies": { -- "@es-joy/jsdoccomment": "~0.39.4", -- "are-docs-informative": "^0.0.2", -- "comment-parser": "1.3.1", -- "debug": "^4.3.4", -- "escape-string-regexp": "^4.0.0", -- "esquery": "^1.5.0", -- "semver": "^7.5.1", -- "spdx-expression-parse": "^3.0.1" -- }, -+ "node_modules/has-flag": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "license": "MIT", - "engines": { -- "node": ">=16" -- }, -- "peerDependencies": { -- "eslint": "^7.0.0 || ^8.0.0" -+ "node": ">=8" - } - }, -- "node_modules/eslint-plugin-n": { -- "version": "15.7.0", -- "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", -- "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", -+ "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": { -- "builtins": "^5.0.1", -- "eslint-plugin-es": "^4.1.0", -- "eslint-utils": "^3.0.0", -- "ignore": "^5.1.1", -- "is-core-module": "^2.11.0", -- "minimatch": "^3.1.2", -- "resolve": "^1.22.1", -- "semver": "^7.3.8" -- }, -- "engines": { -- "node": ">=12.22.0" -+ "es-define-property": "^1.0.0" - }, - "funding": { -- "url": "https://github.com/sponsors/mysticatea" -- }, -- "peerDependencies": { -- "eslint": ">=7.0.0" -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/eslint-plugin-prettier": { -- "version": "4.2.1", -- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", -- "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", -+ "node_modules/has-proto": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", -+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "license": "MIT", -- "dependencies": { -- "prettier-linter-helpers": "^1.0.0" -- }, - "engines": { -- "node": ">=12.0.0" -- }, -- "peerDependencies": { -- "eslint": ">=7.28.0", -- "prettier": ">=2.0.0" -+ "node": ">= 0.4" - }, -- "peerDependenciesMeta": { -- "eslint-config-prettier": { -- "optional": true -- } -- } -- }, -- "node_modules/eslint-plugin-promise": { -- "version": "6.1.1", -- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", -- "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/has-symbols": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", -+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, -- "license": "ISC", -+ "license": "MIT", - "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ "node": ">= 0.4" - }, -- "peerDependencies": { -- "eslint": "^7.0.0 || ^8.0.0" -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/eslint-scope": { -- "version": "7.2.2", -- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", -- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", -+ "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": "BSD-2-Clause", -+ "license": "MIT", - "dependencies": { -- "esrecurse": "^4.3.0", -- "estraverse": "^5.2.0" -+ "has-symbols": "^1.0.3" - }, - "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -+ "node": ">= 0.4" - }, - "funding": { -- "url": "https://opencollective.com/eslint" -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/eslint-utils": { -- "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", -- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", -+ "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, -+ "optional": true -+ }, -+ "node_modules/hash-sum": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", -+ "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", -+ "dev": true -+ }, -+ "node_modules/hasown": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", -+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { -- "eslint-visitor-keys": "^2.0.0" -+ "function-bind": "^1.1.2" - }, - "engines": { -- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" -- }, -- "funding": { -- "url": "https://github.com/sponsors/mysticatea" -- }, -- "peerDependencies": { -- "eslint": ">=5" -+ "node": ">= 0.4" - } - }, -- "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { -- "version": "2.1.0", -- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", -- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", -+ "node_modules/he": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", -+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", -+ "bin": { -+ "he": "bin/he" -+ } -+ }, -+ "node_modules/help-me": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz", -+ "integrity": "sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==", -+ "dev": true, -+ "dependencies": { -+ "glob": "^7.1.6", -+ "readable-stream": "^3.6.0" -+ } -+ }, -+ "node_modules/hexoid": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", -+ "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "dev": true, -- "license": "Apache-2.0", - "engines": { -- "node": ">=10" -+ "node": ">=8" - } - }, -- "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==", -+ "node_modules/hpagent": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", -+ "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", - "dev": true, -- "license": "Apache-2.0", - "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -- }, -+ "node": ">=14" -+ } -+ }, -+ "node_modules/htmlparser2": { -+ "version": "6.1.0", -+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", -+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", -+ "dev": true, -+ "funding": [ -+ "https://github.com/fb55/htmlparser2?sponsor=1", -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/fb55" -+ } -+ ], -+ "dependencies": { -+ "domelementtype": "^2.0.1", -+ "domhandler": "^4.0.0", -+ "domutils": "^2.5.2", -+ "entities": "^2.0.0" -+ } -+ }, -+ "node_modules/htmlparser2/node_modules/entities": { -+ "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", -+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", -+ "dev": true, - "funding": { -- "url": "https://opencollective.com/eslint" -+ "url": "https://github.com/fb55/entities?sponsor=1" - } - }, -- "node_modules/eslint/node_modules/doctrine": { -- "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", -- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", -+ "node_modules/http-cache-semantics": { -+ "version": "4.1.1", -+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", -+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", -+ "dev": true -+ }, -+ "node_modules/http-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": "Apache-2.0", - "dependencies": { -- "esutils": "^2.0.2" -+ "depd": "2.0.0", -+ "inherits": "2.0.4", -+ "setprototypeof": "1.2.0", -+ "statuses": "2.0.1", -+ "toidentifier": "1.0.1" - }, - "engines": { -- "node": ">=6.0.0" -+ "node": ">= 0.8" - } - }, -- "node_modules/espree": { -- "version": "9.6.1", -- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", -- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", -+ "node_modules/http2-wrapper": { -+ "version": "2.2.1", -+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", -+ "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, -- "license": "BSD-2-Clause", - "dependencies": { -- "acorn": "^8.9.0", -- "acorn-jsx": "^5.3.2", -- "eslint-visitor-keys": "^3.4.1" -+ "quick-lru": "^5.1.1", -+ "resolve-alpn": "^1.2.0" - }, - "engines": { -- "node": "^12.22.0 || ^14.17.0 || >=16.0.0" -- }, -- "funding": { -- "url": "https://opencollective.com/eslint" -+ "node": ">=10.19.0" - } - }, -- "node_modules/esquery": { -- "version": "1.5.0", -- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", -- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", -+ "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": "BSD-3-Clause", - "dependencies": { -- "estraverse": "^5.1.0" -+ "agent-base": "6", -+ "debug": "4" - }, - "engines": { -- "node": ">=0.10" -+ "node": ">= 6" - } - }, -- "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==", -+ "node_modules/i18next": { -+ "version": "21.10.0", -+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz", -+ "integrity": "sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==", - "dev": true, -- "license": "BSD-2-Clause", -+ "funding": [ -+ { -+ "type": "individual", -+ "url": "https://locize.com" -+ }, -+ { -+ "type": "individual", -+ "url": "https://locize.com/i18next.html" -+ }, -+ { -+ "type": "individual", -+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" -+ } -+ ], - "dependencies": { -- "estraverse": "^5.2.0" -+ "@babel/runtime": "^7.17.2" -+ } -+ }, -+ "node_modules/iconv-lite": { -+ "version": "0.6.3", -+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", -+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", -+ "dev": true, -+ "dependencies": { -+ "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { -- "node": ">=4.0" -+ "node": ">=0.10.0" - } - }, -- "node_modules/estraverse": { -- "version": "5.3.0", -- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", -- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", -+ "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, -- "license": "BSD-2-Clause", -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/ignore": { -+ "version": "5.3.1", -+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", -+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", -+ "dev": true, -+ "license": "MIT", - "engines": { -- "node": ">=4.0" -+ "node": ">= 4" - } - }, -- "node_modules/esutils": { -- "version": "2.0.3", -- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", -- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", -+ "node_modules/import-fresh": { -+ "version": "3.3.0", -+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", -+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, -- "license": "BSD-2-Clause", -+ "license": "MIT", -+ "dependencies": { -+ "parent-module": "^1.0.0", -+ "resolve-from": "^4.0.0" -+ }, - "engines": { -- "node": ">=0.10.0" -+ "node": ">=6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "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==", -+ "node_modules/imurmurhash": { -+ "version": "0.1.4", -+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", -+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, -- "license": "MIT" -+ "license": "MIT", -+ "engines": { -+ "node": ">=0.8.19" -+ } - }, -- "node_modules/fast-diff": { -- "version": "1.3.0", -- "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", -- "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", -- "dev": true, -- "license": "Apache-2.0" -+ "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==", -+ "license": "ISC", -+ "dependencies": { -+ "once": "^1.3.0", -+ "wrappy": "1" -+ } - }, -- "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==", -+ "node_modules/inherits": { -+ "version": "2.0.4", -+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", -+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", -+ "license": "ISC" -+ }, -+ "node_modules/internal-slot": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", -+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, -- "license": "MIT" -+ "license": "MIT", -+ "dependencies": { -+ "es-errors": "^1.3.0", -+ "hasown": "^2.0.0", -+ "side-channel": "^1.0.4" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ } - }, -- "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==", -+ "node_modules/ipaddr.js": { -+ "version": "1.9.1", -+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", -+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, -- "license": "MIT" -+ "engines": { -+ "node": ">= 0.10" -+ } - }, -- "node_modules/fastq": { -- "version": "1.17.1", -- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", -- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", -+ "node_modules/is-array-buffer": { -+ "version": "3.0.4", -+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", -+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, -- "license": "ISC", -+ "license": "MIT", - "dependencies": { -- "reusify": "^1.0.4" -+ "call-bind": "^1.0.2", -+ "get-intrinsic": "^1.2.1" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "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==", -+ "node_modules/is-bigint": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", -+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "license": "MIT", - "dependencies": { -- "flat-cache": "^3.0.4" -+ "has-bigints": "^1.0.1" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/is-binary-path": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", -+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", -+ "dependencies": { -+ "binary-extensions": "^2.0.0" - }, - "engines": { -- "node": "^10.12.0 || >=12.0.0" -+ "node": ">=8" - } - }, -- "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==", -+ "node_modules/is-boolean-object": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", -+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "license": "MIT", - "dependencies": { -- "locate-path": "^6.0.0", -- "path-exists": "^4.0.0" -+ "call-bind": "^1.0.2", -+ "has-tostringtag": "^1.0.0" - }, - "engines": { -- "node": ">=10" -+ "node": ">= 0.4" - }, - "funding": { -- "url": "https://github.com/sponsors/sindresorhus" -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/flat-cache": { -- "version": "3.2.0", -- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", -- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", -+ "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", -- "dependencies": { -- "flatted": "^3.2.9", -- "keyv": "^4.5.3", -- "rimraf": "^3.0.2" -- }, - "engines": { -- "node": "^10.12.0 || >=12.0.0" -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/flatted": { -- "version": "3.3.1", -- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", -- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", -+ "node_modules/is-core-module": { -+ "version": "2.13.1", -+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", -+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, -- "license": "ISC" -+ "license": "MIT", -+ "dependencies": { -+ "hasown": "^2.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } - }, -- "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==", -- "funding": [ -- { -- "type": "individual", -- "url": "https://github.com/sponsors/RubenVerborgh" -- } -- ], -+ "node_modules/is-data-view": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", -+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", -+ "dev": true, - "license": "MIT", -+ "dependencies": { -+ "is-typed-array": "^1.1.13" -+ }, - "engines": { -- "node": ">=4.0" -+ "node": ">= 0.4" - }, -- "peerDependenciesMeta": { -- "debug": { -- "optional": true -- } -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/for-each": { -- "version": "0.3.3", -- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", -- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", -+ "node_modules/is-date-object": { -+ "version": "1.0.5", -+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", -+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "license": "MIT", - "dependencies": { -- "is-callable": "^1.1.3" -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/form-data": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", -- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", -+ "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-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==", -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/is-glob": { -+ "version": "4.0.3", -+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", -+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { -- "asynckit": "^0.4.0", -- "combined-stream": "^1.0.8", -- "mime-types": "^2.1.12" -+ "is-extglob": "^2.1.1" - }, - "engines": { -- "node": ">= 6" -+ "node": ">=0.10.0" - } - }, -- "node_modules/fs.realpath": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", -- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", -+ "node_modules/is-negative-zero": { -+ "version": "2.0.3", -+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", -+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, -- "license": "ISC" -+ "license": "MIT", -+ "engines": { -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } - }, -- "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==", -+ "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==", -+ "engines": { -+ "node": ">=0.12.0" -+ } -+ }, -+ "node_modules/is-number-object": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", -+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "license": "MIT", -+ "dependencies": { -+ "has-tostringtag": "^1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/function.prototype.name": { -- "version": "1.1.6", -- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", -- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", -+ "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": "2.1.0", -+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", -+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/is-regex": { -+ "version": "1.1.4", -+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", -+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", -- "define-properties": "^1.2.0", -- "es-abstract": "^1.22.1", -- "functions-have-names": "^1.2.3" -+ "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" -@@ -2228,38 +5945,46 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/functions-have-names": { -- "version": "1.2.3", -- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", -- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", -+ "node_modules/is-shared-array-buffer": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", -+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, - "license": "MIT", -+ "dependencies": { -+ "call-bind": "^1.0.7" -+ }, -+ "engines": { -+ "node": ">= 0.4" -+ }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/gensync": { -- "version": "1.0.0-beta.2", -- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", -- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", -+ "node_modules/is-string": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", -+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, -- "peer": true, -+ "license": "MIT", -+ "dependencies": { -+ "has-tostringtag": "^1.0.0" -+ }, - "engines": { -- "node": ">=6.9.0" -+ "node": ">= 0.4" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/get-intrinsic": { -- "version": "1.2.4", -- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", -- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", -+ "node_modules/is-symbol": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", -+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "license": "MIT", - "dependencies": { -- "es-errors": "^1.3.0", -- "function-bind": "^1.1.2", -- "has-proto": "^1.0.1", -- "has-symbols": "^1.0.3", -- "hasown": "^2.0.0" -+ "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" -@@ -2268,16 +5993,14 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/get-symbol-description": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", -- "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", -+ "node_modules/is-typed-array": { -+ "version": "1.1.13", -+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", -+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dev": true, - "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.5", -- "es-errors": "^1.3.0", -- "get-intrinsic": "^1.2.4" -+ "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" -@@ -2286,865 +6009,1220 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/glob": { -- "version": "7.2.3", -- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", -- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", -- "dev": true, -- "license": "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" -- }, -+ "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==", - "engines": { -- "node": "*" -+ "node": ">=10" - }, - "funding": { -- "url": "https://github.com/sponsors/isaacs" -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "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==", -+ "node_modules/is-utf8": { -+ "version": "0.2.1", -+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", -+ "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", -+ "dev": true -+ }, -+ "node_modules/is-weakref": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", -+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, -- "license": "ISC", -+ "license": "MIT", - "dependencies": { -- "is-glob": "^4.0.3" -+ "call-bind": "^1.0.2" - }, -- "engines": { -- "node": ">=10.13.0" -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" - } - }, -- "node_modules/globals": { -- "version": "13.24.0", -- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", -- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", -+ "node_modules/isarray": { -+ "version": "2.0.5", -+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", -+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", -+ "dev": true, -+ "license": "MIT" -+ }, -+ "node_modules/isexe": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", -+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, -+ "license": "ISC" -+ }, -+ "node_modules/js-sdsl": { -+ "version": "4.3.0", -+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", -+ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", -+ "dev": true, -+ "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==", -+ "dev": true -+ }, -+ "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==", - "license": "MIT", - "dependencies": { -- "type-fest": "^0.20.2" -- }, -- "engines": { -- "node": ">=8" -+ "argparse": "^2.0.1" - }, -- "funding": { -- "url": "https://github.com/sponsors/sindresorhus" -+ "bin": { -+ "js-yaml": "bin/js-yaml.js" - } - }, -- "node_modules/globalthis": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", -- "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", -+ "node_modules/js2xmlparser": { -+ "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", -+ "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "define-properties": "^1.2.1", -- "gopd": "^1.0.1" -+ "xmlcreate": "^2.0.4" -+ } -+ }, -+ "node_modules/jsdoc": { -+ "version": "4.0.3", -+ "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", -+ "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", -+ "dev": true, -+ "dependencies": { -+ "@babel/parser": "^7.20.15", -+ "@jsdoc/salty": "^0.2.1", -+ "@types/markdown-it": "^14.1.1", -+ "bluebird": "^3.7.2", -+ "catharsis": "^0.9.0", -+ "escape-string-regexp": "^2.0.0", -+ "js2xmlparser": "^4.0.2", -+ "klaw": "^3.0.0", -+ "markdown-it": "^14.1.0", -+ "markdown-it-anchor": "^8.6.7", -+ "marked": "^4.0.10", -+ "mkdirp": "^1.0.4", -+ "requizzle": "^0.2.3", -+ "strip-json-comments": "^3.1.0", -+ "underscore": "~1.13.2" - }, -- "engines": { -- "node": ">= 0.4" -+ "bin": { -+ "jsdoc": "jsdoc.js" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": ">=12.0.0" - } - }, -- "node_modules/gopd": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", -- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", -+ "node_modules/jsdoc-type-pratt-parser": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", -+ "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", - "dev": true, - "license": "MIT", -- "dependencies": { -- "get-intrinsic": "^1.1.3" -+ "engines": { -+ "node": ">=12.0.0" -+ } -+ }, -+ "node_modules/jsdoc/node_modules/escape-string-regexp": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", -+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", -+ "dev": true, -+ "engines": { -+ "node": ">=8" -+ } -+ }, -+ "node_modules/jsesc": { -+ "version": "2.5.2", -+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", -+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", -+ "dev": true, -+ "peer": true, -+ "bin": { -+ "jsesc": "bin/jsesc" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": ">=4" - } - }, -- "node_modules/graceful-fs": { -- "version": "4.2.11", -- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", -- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", -- "dev": true -+ "node_modules/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/graphemer": { -- "version": "1.4.0", -- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", -- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", -+ "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": "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-bigints": { -+ "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 -+ }, -+ "node_modules/json5": { - "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", -- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", -+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", -+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "dependencies": { -+ "minimist": "^1.2.0" -+ }, -+ "bin": { -+ "json5": "lib/cli.js" - } - }, -- "node_modules/has-flag": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", -- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", -+ "node_modules/jsonata": { -+ "version": "1.8.7", -+ "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.8.7.tgz", -+ "integrity": "sha512-tOW2/hZ+nR2bcQZs+0T62LVe5CHaNa3laFFWb/262r39utN6whJGBF7IR2Wq1QXrDbhftolk5gggW8uUJYlBTQ==", - "dev": true, -- "license": "MIT", - "engines": { -- "node": ">=8" -+ "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==", -+ "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": { -- "es-define-property": "^1.0.0" -+ "universalify": "^2.0.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "optionalDependencies": { -+ "graceful-fs": "^4.1.6" - } - }, -- "node_modules/has-proto": { -- "version": "1.0.3", -- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", -- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", -+ "node_modules/just-extend": { -+ "version": "6.2.0", -+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", -+ "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", -+ "dev": true -+ }, -+ "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/klaw": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", -+ "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dev": true, -- "license": "MIT", -- "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "dependencies": { -+ "graceful-fs": "^4.1.9" - } - }, -- "node_modules/has-symbols": { -- "version": "1.0.3", -- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", -- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", -+ "node_modules/leven": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", -+ "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", - "dev": true, -- "license": "MIT", - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=0.10.0" - } - }, -- "node_modules/has-tostringtag": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", -- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", -+ "node_modules/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": { -- "has-symbols": "^1.0.3" -+ "prelude-ls": "^1.2.1", -+ "type-check": "~0.4.0" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">= 0.8.0" - } - }, -- "node_modules/hasown": { -- "version": "2.0.2", -- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", -- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", -+ "node_modules/linkify-it": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", -+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "function-bind": "^1.1.2" -- }, -- "engines": { -- "node": ">= 0.4" -+ "uc.micro": "^2.0.0" - } - }, -- "node_modules/ignore": { -- "version": "5.3.1", -- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", -- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", -- "dev": true, -+ "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==", - "license": "MIT", -+ "dependencies": { -+ "p-locate": "^5.0.0" -+ }, - "engines": { -- "node": ">= 4" -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/import-fresh": { -- "version": "3.3.0", -- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", -- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", -+ "node_modules/lodash": { -+ "version": "4.17.21", -+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", -+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", -+ "dev": true -+ }, -+ "node_modules/lodash.clonedeep": { -+ "version": "4.5.0", -+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", -+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", -+ "dev": true -+ }, -+ "node_modules/lodash.debounce": { -+ "version": "4.0.8", -+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", -+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", -+ "dev": true -+ }, -+ "node_modules/lodash.get": { -+ "version": "4.4.2", -+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", -+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", -+ "dev": true -+ }, -+ "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", -+ "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==", - "dependencies": { -- "parent-module": "^1.0.0", -- "resolve-from": "^4.0.0" -+ "chalk": "^4.1.0", -+ "is-unicode-supported": "^0.1.0" - }, - "engines": { -- "node": ">=6" -+ "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/imurmurhash": { -- "version": "0.1.4", -- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", -- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", -+ "node_modules/lowercase-keys": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", -+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, -- "license": "MIT", - "engines": { -- "node": ">=0.8.19" -+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/inflight": { -- "version": "1.0.6", -- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", -- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", -+ "node_modules/lru-cache": { -+ "version": "5.1.1", -+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", -+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, -- "license": "ISC", - "dependencies": { -- "once": "^1.3.0", -- "wrappy": "1" -+ "yallist": "^3.0.2" - } - }, -- "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/internal-slot": { -- "version": "1.0.7", -- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", -- "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", -+ "node_modules/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", -+ "optional": true, - "dependencies": { -- "es-errors": "^1.3.0", -- "hasown": "^2.0.0", -- "side-channel": "^1.0.4" -+ "semver": "^6.0.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=8" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/is-array-buffer": { -- "version": "3.0.4", -- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", -- "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", -+ "node_modules/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==", - "dev": true, -- "license": "MIT", -- "dependencies": { -- "call-bind": "^1.0.2", -- "get-intrinsic": "^1.2.1" -- }, -- "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "optional": true, -+ "bin": { -+ "semver": "bin/semver.js" - } - }, -- "node_modules/is-bigint": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", -- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", -+ "node_modules/markdown-it": { -+ "version": "14.1.0", -+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", -+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "has-bigints": "^1.0.1" -+ "argparse": "^2.0.1", -+ "entities": "^4.4.0", -+ "linkify-it": "^5.0.0", -+ "mdurl": "^2.0.0", -+ "punycode.js": "^2.3.1", -+ "uc.micro": "^2.1.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "bin": { -+ "markdown-it": "bin/markdown-it.mjs" - } - }, -- "node_modules/is-boolean-object": { -- "version": "1.1.2", -- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", -- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", -+ "node_modules/markdown-it-anchor": { -+ "version": "8.6.7", -+ "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", -+ "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", - "dev": true, -- "license": "MIT", -- "dependencies": { -- "call-bind": "^1.0.2", -- "has-tostringtag": "^1.0.0" -+ "peerDependencies": { -+ "@types/markdown-it": "*", -+ "markdown-it": "*" -+ } -+ }, -+ "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==", -+ "dev": true, -+ "bin": { -+ "marked": "bin/marked.js" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">= 12" - } - }, -- "node_modules/is-callable": { -- "version": "1.2.7", -- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", -- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", -+ "node_modules/mdurl": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", -+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", -+ "dev": true -+ }, -+ "node_modules/media-typer": { -+ "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", -+ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "dev": true, -- "license": "MIT", - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">= 0.8" - } - }, -- "node_modules/is-core-module": { -- "version": "2.13.1", -- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", -- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", -+ "node_modules/memorystore": { -+ "version": "1.6.7", -+ "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz", -+ "integrity": "sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "hasown": "^2.0.0" -+ "debug": "^4.3.0", -+ "lru-cache": "^4.0.3" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "engines": { -+ "node": ">=0.10" - } - }, -- "node_modules/is-data-view": { -- "version": "1.0.1", -- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", -- "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", -+ "node_modules/memorystore/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": "MIT", - "dependencies": { -- "is-typed-array": "^1.1.13" -- }, -+ "pseudomap": "^1.0.2", -+ "yallist": "^2.1.2" -+ } -+ }, -+ "node_modules/memorystore/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 -+ }, -+ "node_modules/merge-descriptors": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", -+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", -+ "dev": true -+ }, -+ "node_modules/methods": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", -+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", -+ "dev": true, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">= 0.6" - } - }, -- "node_modules/is-date-object": { -- "version": "1.0.5", -- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", -- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", -+ "node_modules/mime": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", -+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, -- "license": "MIT", -- "dependencies": { -- "has-tostringtag": "^1.0.0" -+ "bin": { -+ "mime": "cli.js" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=10.0.0" - } - }, -- "node_modules/is-extglob": { -- "version": "2.1.1", -- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", -- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", -- "dev": true, -+ "node_modules/mime-db": { -+ "version": "1.52.0", -+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", -+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { -- "node": ">=0.10.0" -+ "node": ">= 0.6" - } - }, -- "node_modules/is-glob": { -- "version": "4.0.3", -- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", -- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", -- "dev": true, -+ "node_modules/mime-types": { -+ "version": "2.1.35", -+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", -+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { -- "is-extglob": "^2.1.1" -+ "mime-db": "1.52.0" - }, - "engines": { -- "node": ">=0.10.0" -+ "node": ">= 0.6" - } - }, -- "node_modules/is-negative-zero": { -- "version": "2.0.3", -- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", -- "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", -+ "node_modules/mimic-response": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", -+ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, -- "license": "MIT", - "engines": { -- "node": ">= 0.4" -+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/is-number-object": { -- "version": "1.0.7", -- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", -- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", -+ "node_modules/minimatch": { -+ "version": "3.1.2", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, -- "license": "MIT", -+ "license": "ISC", - "dependencies": { -- "has-tostringtag": "^1.0.0" -+ "brace-expansion": "^1.1.7" - }, - "engines": { -- "node": ">= 0.4" -- }, -+ "node": "*" -+ } -+ }, -+ "node_modules/minimist": { -+ "version": "1.2.8", -+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", -+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", -+ "dev": true, -+ "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, -- "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==", -+ "node_modules/minipass": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", -+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, -- "license": "MIT", - "engines": { - "node": ">=8" - } - }, -- "node_modules/is-regex": { -- "version": "1.1.4", -- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", -- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", -+ "node_modules/minizlib": { -+ "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", -+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "call-bind": "^1.0.2", -- "has-tostringtag": "^1.0.0" -+ "minipass": "^3.0.0", -+ "yallist": "^4.0.0" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">= 8" - } - }, -- "node_modules/is-shared-array-buffer": { -- "version": "1.0.3", -- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", -- "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", -+ "node_modules/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": "MIT", - "dependencies": { -- "call-bind": "^1.0.7" -+ "yallist": "^4.0.0" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=8" - } - }, -- "node_modules/is-string": { -- "version": "1.0.7", -- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", -- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", -+ "node_modules/minizlib/node_modules/yallist": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", -+ "dev": true -+ }, -+ "node_modules/mkdirp": { -+ "version": "1.0.4", -+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", -+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, -- "license": "MIT", -- "dependencies": { -- "has-tostringtag": "^1.0.0" -+ "bin": { -+ "mkdirp": "bin/cmd.js" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=10" -+ } -+ }, -+ "node_modules/mocha": { -+ "version": "10.4.0", -+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", -+ "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", -+ "dependencies": { -+ "ansi-colors": "4.1.1", -+ "browser-stdout": "1.3.1", -+ "chokidar": "3.5.3", -+ "debug": "4.3.4", -+ "diff": "5.0.0", -+ "escape-string-regexp": "4.0.0", -+ "find-up": "5.0.0", -+ "glob": "8.1.0", -+ "he": "1.2.0", -+ "js-yaml": "4.1.0", -+ "log-symbols": "4.1.0", -+ "minimatch": "5.0.1", -+ "ms": "2.1.3", -+ "serialize-javascript": "6.0.0", -+ "strip-json-comments": "3.1.1", -+ "supports-color": "8.1.1", -+ "workerpool": "6.2.1", -+ "yargs": "16.2.0", -+ "yargs-parser": "20.2.4", -+ "yargs-unparser": "2.0.0" - }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "bin": { -+ "_mocha": "bin/_mocha", -+ "mocha": "bin/mocha.js" -+ }, -+ "engines": { -+ "node": ">= 14.0.0" - } - }, -- "node_modules/is-symbol": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", -- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", -- "dev": true, -- "license": "MIT", -+ "node_modules/mocha/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==", - "dependencies": { -- "has-symbols": "^1.0.2" -+ "balanced-match": "^1.0.0" -+ } -+ }, -+ "node_modules/mocha/node_modules/glob": { -+ "version": "8.1.0", -+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", -+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", -+ "dependencies": { -+ "fs.realpath": "^1.0.0", -+ "inflight": "^1.0.4", -+ "inherits": "2", -+ "minimatch": "^5.0.1", -+ "once": "^1.3.0" - }, - "engines": { -- "node": ">= 0.4" -+ "node": ">=12" - }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://github.com/sponsors/isaacs" - } - }, -- "node_modules/is-typed-array": { -- "version": "1.1.13", -- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", -- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", -- "dev": true, -- "license": "MIT", -+ "node_modules/mocha/node_modules/minimatch": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", -+ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dependencies": { -- "which-typed-array": "^1.1.14" -+ "brace-expansion": "^2.0.1" - }, - "engines": { -- "node": ">= 0.4" -- }, -- "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "node": ">=10" - } - }, -- "node_modules/is-weakref": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", -- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", -- "dev": true, -- "license": "MIT", -+ "node_modules/mocha/node_modules/ms": { -+ "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" -+ }, -+ "node_modules/mocha/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==", - "dependencies": { -- "call-bind": "^1.0.2" -+ "has-flag": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=10" - }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, -- "node_modules/isarray": { -- "version": "2.0.5", -- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", -- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", -+ "node_modules/moment": { -+ "version": "2.29.4", -+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", -+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "dev": true, -- "license": "MIT" -+ "engines": { -+ "node": "*" -+ } - }, -- "node_modules/isexe": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", -- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", -+ "node_modules/moment-timezone": { -+ "version": "0.5.43", -+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", -+ "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", - "dev": true, -- "license": "ISC" -+ "dependencies": { -+ "moment": "^2.29.4" -+ }, -+ "engines": { -+ "node": "*" -+ } - }, -- "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==", -+ "node_modules/mqtt": { -+ "version": "4.3.7", -+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz", -+ "integrity": "sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw==", -+ "dev": true, -+ "dependencies": { -+ "commist": "^1.0.0", -+ "concat-stream": "^2.0.0", -+ "debug": "^4.1.1", -+ "duplexify": "^4.1.1", -+ "help-me": "^3.0.0", -+ "inherits": "^2.0.3", -+ "lru-cache": "^6.0.0", -+ "minimist": "^1.2.5", -+ "mqtt-packet": "^6.8.0", -+ "number-allocator": "^1.0.9", -+ "pump": "^3.0.0", -+ "readable-stream": "^3.6.0", -+ "reinterval": "^1.1.0", -+ "rfdc": "^1.3.0", -+ "split2": "^3.1.0", -+ "ws": "^7.5.5", -+ "xtend": "^4.0.2" -+ }, -+ "bin": { -+ "mqtt": "bin/mqtt.js", -+ "mqtt_pub": "bin/pub.js", -+ "mqtt_sub": "bin/sub.js" -+ }, -+ "engines": { -+ "node": ">=10.0.0" -+ } -+ }, -+ "node_modules/mqtt-packet": { -+ "version": "6.10.0", -+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz", -+ "integrity": "sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==", - "dev": true, -- "peer": true -+ "dependencies": { -+ "bl": "^4.0.2", -+ "debug": "^4.1.1", -+ "process-nextick-args": "^2.0.1" -+ } - }, -- "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==", -+ "node_modules/mqtt/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", - "dependencies": { -- "argparse": "^2.0.1" -+ "yallist": "^4.0.0" - }, -- "bin": { -- "js-yaml": "bin/js-yaml.js" -+ "engines": { -+ "node": ">=10" - } - }, -- "node_modules/js2xmlparser": { -- "version": "4.0.2", -- "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", -- "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", -+ "node_modules/mqtt/node_modules/yallist": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", -+ "dev": true -+ }, -+ "node_modules/ms": { -+ "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", -+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", -+ "license": "MIT" -+ }, -+ "node_modules/multer": { -+ "version": "1.4.5-lts.1", -+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", -+ "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "dev": true, - "dependencies": { -- "xmlcreate": "^2.0.4" -+ "append-field": "^1.0.0", -+ "busboy": "^1.0.0", -+ "concat-stream": "^1.5.2", -+ "mkdirp": "^0.5.4", -+ "object-assign": "^4.1.1", -+ "type-is": "^1.6.4", -+ "xtend": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">= 6.0.0" - } - }, -- "node_modules/jsdoc": { -- "version": "4.0.3", -- "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", -- "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", -+ "node_modules/multer/node_modules/concat-stream": { -+ "version": "1.6.2", -+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", -+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, -+ "engines": [ -+ "node >= 0.8" -+ ], - "dependencies": { -- "@babel/parser": "^7.20.15", -- "@jsdoc/salty": "^0.2.1", -- "@types/markdown-it": "^14.1.1", -- "bluebird": "^3.7.2", -- "catharsis": "^0.9.0", -- "escape-string-regexp": "^2.0.0", -- "js2xmlparser": "^4.0.2", -- "klaw": "^3.0.0", -- "markdown-it": "^14.1.0", -- "markdown-it-anchor": "^8.6.7", -- "marked": "^4.0.10", -- "mkdirp": "^1.0.4", -- "requizzle": "^0.2.3", -- "strip-json-comments": "^3.1.0", -- "underscore": "~1.13.2" -+ "buffer-from": "^1.0.0", -+ "inherits": "^2.0.3", -+ "readable-stream": "^2.2.2", -+ "typedarray": "^0.0.6" -+ } -+ }, -+ "node_modules/multer/node_modules/isarray": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", -+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", -+ "dev": true -+ }, -+ "node_modules/multer/node_modules/mkdirp": { -+ "version": "0.5.6", -+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", -+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", -+ "dev": true, -+ "dependencies": { -+ "minimist": "^1.2.6" - }, - "bin": { -- "jsdoc": "jsdoc.js" -- }, -- "engines": { -- "node": ">=12.0.0" -+ "mkdirp": "bin/cmd.js" - } - }, -- "node_modules/jsdoc-type-pratt-parser": { -- "version": "4.0.0", -- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", -- "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", -+ "node_modules/multer/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", -- "engines": { -- "node": ">=12.0.0" -+ "dependencies": { -+ "core-util-is": "~1.0.0", -+ "inherits": "~2.0.3", -+ "isarray": "~1.0.0", -+ "process-nextick-args": "~2.0.0", -+ "safe-buffer": "~5.1.1", -+ "string_decoder": "~1.1.1", -+ "util-deprecate": "~1.0.1" - } - }, -- "node_modules/jsdoc/node_modules/escape-string-regexp": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", -- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", -+ "node_modules/multer/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, -- "engines": { -- "node": ">=8" -+ "dependencies": { -+ "safe-buffer": "~5.1.0" - } - }, -- "node_modules/jsesc": { -- "version": "2.5.2", -- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", -- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", -+ "node_modules/mustache": { -+ "version": "4.2.0", -+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", -+ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true, -- "peer": true, - "bin": { -- "jsesc": "bin/jsesc" -- }, -- "engines": { -- "node": ">=4" -+ "mustache": "bin/mustache" - } - }, -- "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-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/mute-stream": { -+ "version": "0.0.8", -+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", -+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", -+ "dev": true - }, -- "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==", -+ "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/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==", -+ "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/json5": { -- "version": "1.0.2", -- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", -- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", -+ "node_modules/nise": { -+ "version": "5.1.9", -+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", -+ "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "minimist": "^1.2.0" -- }, -- "bin": { -- "json5": "lib/cli.js" -+ "@sinonjs/commons": "^3.0.0", -+ "@sinonjs/fake-timers": "^11.2.2", -+ "@sinonjs/text-encoding": "^0.7.2", -+ "just-extend": "^6.2.0", -+ "path-to-regexp": "^6.2.1" - } - }, -- "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==", -+ "node_modules/nise/node_modules/@sinonjs/commons": { -+ "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", -+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "json-buffer": "3.0.1" -+ "type-detect": "4.0.8" - } - }, -- "node_modules/klaw": { -- "version": "3.0.0", -- "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", -- "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", -+ "node_modules/nise/node_modules/@sinonjs/fake-timers": { -+ "version": "11.2.2", -+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", -+ "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", - "dev": true, - "dependencies": { -- "graceful-fs": "^4.1.9" -+ "@sinonjs/commons": "^3.0.0" - } - }, -- "node_modules/levn": { -- "version": "0.4.1", -- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", -- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", -+ "node_modules/nise/node_modules/path-to-regexp": { -+ "version": "6.2.2", -+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", -+ "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", -+ "dev": true -+ }, -+ "node_modules/nock": { -+ "version": "13.5.4", -+ "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", -+ "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "prelude-ls": "^1.2.1", -- "type-check": "~0.4.0" -+ "debug": "^4.1.0", -+ "json-stringify-safe": "^5.0.1", -+ "propagate": "^2.0.0" - }, - "engines": { -- "node": ">= 0.8.0" -+ "node": ">= 10.13" - } - }, -- "node_modules/linkify-it": { -- "version": "5.0.0", -- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", -- "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", -+ "node_modules/node-addon-api": { -+ "version": "5.1.0", -+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", -+ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", - "dev": true, -+ "optional": true -+ }, -+ "node_modules/node-fetch": { -+ "version": "2.7.0", -+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", -+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", -+ "dev": true, -+ "optional": true, - "dependencies": { -- "uc.micro": "^2.0.0" -+ "whatwg-url": "^5.0.0" -+ }, -+ "engines": { -+ "node": "4.x || >=6.0.0" -+ }, -+ "peerDependencies": { -+ "encoding": "^0.1.0" -+ }, -+ "peerDependenciesMeta": { -+ "encoding": { -+ "optional": true -+ } - } - }, -- "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==", -+ "node_modules/node-red": { -+ "version": "3.1.9", -+ "resolved": "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz", -+ "integrity": "sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "p-locate": "^5.0.0" -+ "@node-red/editor-api": "3.1.9", -+ "@node-red/nodes": "3.1.9", -+ "@node-red/runtime": "3.1.9", -+ "@node-red/util": "3.1.9", -+ "basic-auth": "2.0.1", -+ "bcryptjs": "2.4.3", -+ "express": "4.19.2", -+ "fs-extra": "11.1.1", -+ "node-red-admin": "^3.1.3", -+ "nopt": "5.0.0", -+ "semver": "7.5.4" -+ }, -+ "bin": { -+ "node-red": "red.js", -+ "node-red-pi": "bin/node-red-pi" - }, - "engines": { -- "node": ">=10" -+ "node": ">=14" - }, -- "funding": { -- "url": "https://github.com/sponsors/sindresorhus" -+ "optionalDependencies": { -+ "bcrypt": "5.1.0" - } - }, -- "node_modules/lodash": { -- "version": "4.17.21", -- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", -- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", -- "dev": true -+ "node_modules/node-red-admin": { -+ "version": "3.1.3", -+ "resolved": "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz", -+ "integrity": "sha512-RRkjwLjriCKW3bqiU21y3j+wpZ4bDf2EH3IEqxwP6hT4ccIwEK8Nt9dPZRWD6NyWGbEVDSTM5H0/whaRdFCqSw==", -+ "dev": true, -+ "dependencies": { -+ "ansi-colors": "^4.1.3", -+ "axios": "^1.6.8", -+ "bcryptjs": "^2.4.3", -+ "cli-table": "^0.3.11", -+ "enquirer": "^2.3.6", -+ "minimist": "^1.2.8", -+ "mustache": "^4.2.0", -+ "read": "^1.0.7" -+ }, -+ "bin": { -+ "node-red-admin": "node-red-admin.js" -+ }, -+ "engines": { -+ "node": ">=14" -+ }, -+ "optionalDependencies": { -+ "bcrypt": "5.1.1" -+ } - }, -- "node_modules/lodash.merge": { -- "version": "4.6.2", -- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", -- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", -+ "node_modules/node-red-admin/node_modules/ansi-colors": { -+ "version": "4.1.3", -+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", -+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, -- "license": "MIT" -+ "engines": { -+ "node": ">=6" -+ } - }, -- "node_modules/lru-cache": { -+ "node_modules/node-red-admin/node_modules/bcrypt": { - "version": "5.1.1", -- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", -- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", -+ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", -+ "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", - "dev": true, -- "peer": true, -+ "hasInstallScript": true, -+ "optional": true, - "dependencies": { -- "yallist": "^3.0.2" -+ "@mapbox/node-pre-gyp": "^1.0.11", -+ "node-addon-api": "^5.0.0" -+ }, -+ "engines": { -+ "node": ">= 10.0.0" - } - }, -- "node_modules/markdown-it": { -- "version": "14.1.0", -- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", -- "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", -+ "node_modules/node-red-node-test-helper": { -+ "version": "0.3.4", -+ "resolved": "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.4.tgz", -+ "integrity": "sha512-OFXGEkKZpLkgoijAgpUIjzn5RF8QnbwPX9RjfI2LWXq1ACfeXkXcW0i1ioiphrokdE3MiWQJtH5omLNnSNdyaQ==", - "dev": true, - "dependencies": { -- "argparse": "^2.0.1", -- "entities": "^4.4.0", -- "linkify-it": "^5.0.0", -- "mdurl": "^2.0.0", -- "punycode.js": "^2.3.1", -- "uc.micro": "^2.1.0" -+ "body-parser": "^1.20.2", -+ "express": "^4.19.2", -+ "semver": "^7.5.4", -+ "should": "^13.2.3", -+ "should-sinon": "^0.0.6", -+ "sinon": "^11.1.2", -+ "stoppable": "^1.1.0", -+ "supertest": "^7.0.0" - }, -- "bin": { -- "markdown-it": "bin/markdown-it.mjs" -+ "engines": { -+ "node": ">=14" - } - }, -- "node_modules/markdown-it-anchor": { -- "version": "8.6.7", -- "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", -- "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", -+ "node_modules/node-red/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, -- "peerDependencies": { -- "@types/markdown-it": "*", -- "markdown-it": "*" -+ "dependencies": { -+ "yallist": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=10" - } - }, -- "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==", -+ "node_modules/node-red/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": { -- "marked": "bin/marked.js" -+ "semver": "bin/semver.js" - }, - "engines": { -- "node": ">= 12" -+ "node": ">=10" - } - }, -- "node_modules/mdurl": { -- "version": "2.0.0", -- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", -- "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", -+ "node_modules/node-red/node_modules/yallist": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, -- "node_modules/mime-db": { -- "version": "1.52.0", -- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", -- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", -- "license": "MIT", -+ "node_modules/node-releases": { -+ "version": "2.0.14", -+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", -+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", -+ "dev": true -+ }, -+ "node_modules/node-watch": { -+ "version": "0.7.4", -+ "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz", -+ "integrity": "sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ==", -+ "dev": true, - "engines": { -- "node": ">= 0.6" -+ "node": ">=6" - } - }, -- "node_modules/mime-types": { -- "version": "2.1.35", -- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", -- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", -- "license": "MIT", -+ "node_modules/nopt": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", -+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", -+ "dev": true, - "dependencies": { -- "mime-db": "1.52.0" -+ "abbrev": "1" -+ }, -+ "bin": { -+ "nopt": "bin/nopt.js" - }, - "engines": { -- "node": ">= 0.6" -+ "node": ">=6" - } - }, -- "node_modules/minimatch": { -- "version": "3.1.2", -- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", -- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", -+ "node_modules/normalize-path": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", -+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/normalize-url": { -+ "version": "8.0.1", -+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", -+ "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "dev": true, -- "license": "ISC", -- "dependencies": { -- "brace-expansion": "^1.1.7" -- }, - "engines": { -- "node": "*" -+ "node": ">=14.16" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" - } - }, -- "node_modules/minimist": { -- "version": "1.2.8", -- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", -- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", -+ "node_modules/npmlog": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", -+ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", -+ "deprecated": "This package is no longer supported.", - "dev": true, -- "license": "MIT", -+ "optional": true, -+ "dependencies": { -+ "are-we-there-yet": "^2.0.0", -+ "console-control-strings": "^1.1.0", -+ "gauge": "^3.0.0", -+ "set-blocking": "^2.0.0" -+ } -+ }, -+ "node_modules/nth-check": { -+ "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", -+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", -+ "dev": true, -+ "dependencies": { -+ "boolbase": "^1.0.0" -+ }, - "funding": { -- "url": "https://github.com/sponsors/ljharb" -+ "url": "https://github.com/fb55/nth-check?sponsor=1" -+ } -+ }, -+ "node_modules/number-allocator": { -+ "version": "1.0.14", -+ "resolved": "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz", -+ "integrity": "sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==", -+ "dev": true, -+ "dependencies": { -+ "debug": "^4.3.1", -+ "js-sdsl": "4.3.0" - } - }, -- "node_modules/mkdirp": { -- "version": "1.0.4", -- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", -- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", -+ "node_modules/oauth2orize": { -+ "version": "1.11.1", -+ "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz", -+ "integrity": "sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA==", - "dev": true, -- "bin": { -- "mkdirp": "bin/cmd.js" -+ "dependencies": { -+ "debug": "2.x.x", -+ "uid2": "0.0.x", -+ "utils-merge": "1.x.x" - }, - "engines": { -- "node": ">=10" -+ "node": ">= 0.4.0" -+ }, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/jaredhanson" - } - }, -- "node_modules/ms": { -- "version": "2.1.2", -- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", -- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", -+ "node_modules/oauth2orize/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/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/oauth2orize/node_modules/ms": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", -+ "dev": true - }, -- "node_modules/node-releases": { -- "version": "2.0.14", -- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", -- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", -+ "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, -- "peer": true -+ "engines": { -+ "node": ">=0.10.0" -+ } - }, - "node_modules/object-inspect": { - "version": "1.13.1", -@@ -3237,11 +7315,31 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/on-finished": { -+ "version": "2.4.1", -+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", -+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", -+ "dev": true, -+ "dependencies": { -+ "ee-first": "1.1.1" -+ }, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/on-headers": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", -+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", -- "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" -@@ -3265,11 +7363,19 @@ - "node": ">= 0.8.0" - } - }, -+ "node_modules/p-cancelable": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", -+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", -+ "dev": true, -+ "engines": { -+ "node": ">=12.20" -+ } -+ }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", -- "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" -@@ -3285,7 +7391,6 @@ - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", -- "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" -@@ -3310,11 +7415,85 @@ - "node": ">=6" - } - }, -+ "node_modules/parse5": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", -+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", -+ "dev": true -+ }, -+ "node_modules/parse5-htmlparser2-tree-adapter": { -+ "version": "6.0.1", -+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", -+ "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", -+ "dev": true, -+ "dependencies": { -+ "parse5": "^6.0.1" -+ } -+ }, -+ "node_modules/parseurl": { -+ "version": "1.3.3", -+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", -+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/passport": { -+ "version": "0.6.0", -+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz", -+ "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==", -+ "dev": true, -+ "dependencies": { -+ "passport-strategy": "1.x.x", -+ "pause": "0.0.1", -+ "utils-merge": "^1.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.4.0" -+ }, -+ "funding": { -+ "type": "github", -+ "url": "https://github.com/sponsors/jaredhanson" -+ } -+ }, -+ "node_modules/passport-http-bearer": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz", -+ "integrity": "sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw==", -+ "dev": true, -+ "dependencies": { -+ "passport-strategy": "1.x.x" -+ }, -+ "engines": { -+ "node": ">= 0.4.0" -+ } -+ }, -+ "node_modules/passport-oauth2-client-password": { -+ "version": "0.1.2", -+ "resolved": "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz", -+ "integrity": "sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ==", -+ "dev": true, -+ "dependencies": { -+ "passport-strategy": "1.x.x" -+ }, -+ "engines": { -+ "node": ">= 0.4.0" -+ } -+ }, -+ "node_modules/passport-strategy": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", -+ "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.4.0" -+ } -+ }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", -- "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" -@@ -3347,12 +7526,34 @@ - "dev": true, - "license": "MIT" - }, -+ "node_modules/path-to-regexp": { -+ "version": "0.1.7", -+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", -+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", -+ "dev": true -+ }, -+ "node_modules/pause": { -+ "version": "0.0.1", -+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", -+ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==", -+ "dev": true -+ }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", -- "dev": true, -- "peer": true -+ "dev": true -+ }, -+ "node_modules/picomatch": { -+ "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", -+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", -+ "engines": { -+ "node": ">=8.6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/jonschlinkert" -+ } - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", -@@ -3385,68 +7586,280 @@ - "engines": { - "node": ">=10.13.0" - }, -- "funding": { -- "url": "https://github.com/prettier/prettier?sponsor=1" -+ "funding": { -+ "url": "https://github.com/prettier/prettier?sponsor=1" -+ } -+ }, -+ "node_modules/prettier-linter-helpers": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", -+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", -+ "dev": true, -+ "license": "MIT", -+ "dependencies": { -+ "fast-diff": "^1.1.2" -+ }, -+ "engines": { -+ "node": ">=6.0.0" -+ } -+ }, -+ "node_modules/process-nextick-args": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", -+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", -+ "dev": true -+ }, -+ "node_modules/propagate": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", -+ "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", -+ "dev": true, -+ "engines": { -+ "node": ">= 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, -+ "dependencies": { -+ "forwarded": "0.2.0", -+ "ipaddr.js": "1.9.1" -+ }, -+ "engines": { -+ "node": ">= 0.10" -+ } -+ }, -+ "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==", -+ "license": "MIT" -+ }, -+ "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 -+ }, -+ "node_modules/psl": { -+ "version": "1.9.0", -+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", -+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", -+ "dev": true -+ }, -+ "node_modules/pump": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", -+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", -+ "dev": true, -+ "dependencies": { -+ "end-of-stream": "^1.1.0", -+ "once": "^1.3.1" -+ } -+ }, -+ "node_modules/punycode": { -+ "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", -+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", -+ "dev": true, -+ "license": "MIT", -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/punycode.js": { -+ "version": "2.3.1", -+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", -+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", -+ "dev": true, -+ "engines": { -+ "node": ">=6" -+ } -+ }, -+ "node_modules/qs": { -+ "version": "6.11.0", -+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", -+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", -+ "dev": true, -+ "dependencies": { -+ "side-channel": "^1.0.4" -+ }, -+ "engines": { -+ "node": ">=0.6" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/ljharb" -+ } -+ }, -+ "node_modules/querystringify": { -+ "version": "2.2.0", -+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", -+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", -+ "dev": true -+ }, -+ "node_modules/queue-microtask": { -+ "version": "1.2.3", -+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", -+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ], -+ "license": "MIT" -+ }, -+ "node_modules/quick-lru": { -+ "version": "5.1.1", -+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", -+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", -+ "dev": true, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, -+ "node_modules/rambda": { -+ "version": "7.5.0", -+ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", -+ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", -+ "dev": true -+ }, -+ "node_modules/random-bytes": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", -+ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/randombytes": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", -+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", -+ "dependencies": { -+ "safe-buffer": "^5.1.0" -+ } -+ }, -+ "node_modules/range-parser": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", -+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/raw-body": { -+ "version": "2.5.2", -+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", -+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", -+ "dev": true, -+ "dependencies": { -+ "bytes": "3.1.2", -+ "http-errors": "2.0.0", -+ "iconv-lite": "0.4.24", -+ "unpipe": "1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/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, -+ "dependencies": { -+ "safer-buffer": ">= 2.1.2 < 3" -+ }, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/read": { -+ "version": "1.0.7", -+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", -+ "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", -+ "dev": true, -+ "dependencies": { -+ "mute-stream": "~0.0.4" -+ }, -+ "engines": { -+ "node": ">=0.8" - } - }, -- "node_modules/prettier-linter-helpers": { -- "version": "1.0.0", -- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", -- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", -+ "node_modules/readable-stream": { -+ "version": "3.6.2", -+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", -+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, -- "license": "MIT", - "dependencies": { -- "fast-diff": "^1.1.2" -+ "inherits": "^2.0.3", -+ "string_decoder": "^1.1.1", -+ "util-deprecate": "^1.0.1" - }, - "engines": { -- "node": ">=6.0.0" -+ "node": ">= 6" - } - }, -- "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==", -- "license": "MIT" -- }, -- "node_modules/punycode": { -- "version": "2.3.1", -- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", -- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", -- "dev": true, -- "license": "MIT", -+ "node_modules/readdirp": { -+ "version": "3.6.0", -+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", -+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", -+ "dependencies": { -+ "picomatch": "^2.2.1" -+ }, - "engines": { -- "node": ">=6" -+ "node": ">=8.10.0" - } - }, -- "node_modules/punycode.js": { -- "version": "2.3.1", -- "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", -- "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", -+ "node_modules/regenerate": { -+ "version": "1.4.2", -+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", -+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", -+ "dev": true -+ }, -+ "node_modules/regenerate-unicode-properties": { -+ "version": "10.1.1", -+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", -+ "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, -+ "dependencies": { -+ "regenerate": "^1.4.2" -+ }, - "engines": { -- "node": ">=6" -+ "node": ">=4" - } - }, -- "node_modules/queue-microtask": { -- "version": "1.2.3", -- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", -- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", -+ "node_modules/regenerator-runtime": { -+ "version": "0.14.1", -+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", -+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", -+ "dev": true -+ }, -+ "node_modules/regenerator-transform": { -+ "version": "0.15.2", -+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", -+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, -- "funding": [ -- { -- "type": "github", -- "url": "https://github.com/sponsors/feross" -- }, -- { -- "type": "patreon", -- "url": "https://www.patreon.com/feross" -- }, -- { -- "type": "consulting", -- "url": "https://feross.org/support" -- } -- ], -- "license": "MIT" -+ "dependencies": { -+ "@babel/runtime": "^7.8.4" -+ } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", -@@ -3480,6 +7893,73 @@ - "url": "https://github.com/sponsors/mysticatea" - } - }, -+ "node_modules/regexpu-core": { -+ "version": "5.3.2", -+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", -+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", -+ "dev": true, -+ "dependencies": { -+ "@babel/regjsgen": "^0.8.0", -+ "regenerate": "^1.4.2", -+ "regenerate-unicode-properties": "^10.1.0", -+ "regjsparser": "^0.9.1", -+ "unicode-match-property-ecmascript": "^2.0.0", -+ "unicode-match-property-value-ecmascript": "^2.1.0" -+ }, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/regjsparser": { -+ "version": "0.9.1", -+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", -+ "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", -+ "dev": true, -+ "dependencies": { -+ "jsesc": "~0.5.0" -+ }, -+ "bin": { -+ "regjsparser": "bin/parser" -+ } -+ }, -+ "node_modules/regjsparser/node_modules/jsesc": { -+ "version": "0.5.0", -+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", -+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", -+ "dev": true, -+ "bin": { -+ "jsesc": "bin/jsesc" -+ } -+ }, -+ "node_modules/reinterval": { -+ "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", -+ "integrity": "sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==", -+ "dev": true -+ }, -+ "node_modules/require-directory": { -+ "version": "2.1.1", -+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", -+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/require-from-string": { -+ "version": "2.0.2", -+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", -+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.10.0" -+ } -+ }, -+ "node_modules/requires-port": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", -+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", -+ "dev": true -+ }, - "node_modules/requizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", -@@ -3507,6 +7987,12 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/resolve-alpn": { -+ "version": "1.2.1", -+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", -+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", -+ "dev": true -+ }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", -@@ -3517,6 +8003,21 @@ - "node": ">=4" - } - }, -+ "node_modules/responselike": { -+ "version": "3.0.0", -+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", -+ "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", -+ "dev": true, -+ "dependencies": { -+ "lowercase-keys": "^3.0.0" -+ }, -+ "engines": { -+ "node": ">=14.16" -+ }, -+ "funding": { -+ "url": "https://github.com/sponsors/sindresorhus" -+ } -+ }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", -@@ -3528,6 +8029,12 @@ - "node": ">=0.10.0" - } - }, -+ "node_modules/rfdc": { -+ "version": "1.3.1", -+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", -+ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", -+ "dev": true -+ }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", -@@ -3587,6 +8094,11 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/safe-buffer": { -+ "version": "5.1.2", -+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", -+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" -+ }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", -@@ -3605,6 +8117,18 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/safer-buffer": { -+ "version": "2.1.2", -+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", -+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", -+ "dev": true -+ }, -+ "node_modules/sax": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", -+ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", -+ "dev": true -+ }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", -@@ -3618,6 +8142,93 @@ - "node": ">=10" - } - }, -+ "node_modules/send": { -+ "version": "0.18.0", -+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", -+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", -+ "dev": true, -+ "dependencies": { -+ "debug": "2.6.9", -+ "depd": "2.0.0", -+ "destroy": "1.2.0", -+ "encodeurl": "~1.0.2", -+ "escape-html": "~1.0.3", -+ "etag": "~1.8.1", -+ "fresh": "0.5.2", -+ "http-errors": "2.0.0", -+ "mime": "1.6.0", -+ "ms": "2.1.3", -+ "on-finished": "2.4.1", -+ "range-parser": "~1.2.1", -+ "statuses": "2.0.1" -+ }, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/send/node_modules/debug": { -+ "version": "2.6.9", -+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", -+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", -+ "dev": true, -+ "dependencies": { -+ "ms": "2.0.0" -+ } -+ }, -+ "node_modules/send/node_modules/debug/node_modules/ms": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", -+ "dev": true -+ }, -+ "node_modules/send/node_modules/mime": { -+ "version": "1.6.0", -+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", -+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", -+ "dev": true, -+ "bin": { -+ "mime": "cli.js" -+ }, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/send/node_modules/ms": { -+ "version": "2.1.3", -+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", -+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", -+ "dev": true -+ }, -+ "node_modules/serialize-javascript": { -+ "version": "6.0.0", -+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", -+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", -+ "dependencies": { -+ "randombytes": "^2.1.0" -+ } -+ }, -+ "node_modules/serve-static": { -+ "version": "1.15.0", -+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", -+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", -+ "dev": true, -+ "dependencies": { -+ "encodeurl": "~1.0.2", -+ "escape-html": "~1.0.3", -+ "parseurl": "~1.3.3", -+ "send": "0.18.0" -+ }, -+ "engines": { -+ "node": ">= 0.8.0" -+ } -+ }, -+ "node_modules/set-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, -+ "optional": true -+ }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", -@@ -3652,6 +8263,12 @@ - "node": ">= 0.4" - } - }, -+ "node_modules/setprototypeof": { -+ "version": "1.2.0", -+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", -+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", -+ "dev": true -+ }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", -@@ -3675,6 +8292,69 @@ - "node": ">=8" - } - }, -+ "node_modules/should": { -+ "version": "13.2.3", -+ "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", -+ "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", -+ "dev": true, -+ "dependencies": { -+ "should-equal": "^2.0.0", -+ "should-format": "^3.0.3", -+ "should-type": "^1.4.0", -+ "should-type-adaptors": "^1.0.1", -+ "should-util": "^1.0.0" -+ } -+ }, -+ "node_modules/should-equal": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", -+ "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", -+ "dev": true, -+ "dependencies": { -+ "should-type": "^1.4.0" -+ } -+ }, -+ "node_modules/should-format": { -+ "version": "3.0.3", -+ "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", -+ "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", -+ "dev": true, -+ "dependencies": { -+ "should-type": "^1.3.0", -+ "should-type-adaptors": "^1.0.1" -+ } -+ }, -+ "node_modules/should-sinon": { -+ "version": "0.0.6", -+ "resolved": "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz", -+ "integrity": "sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g==", -+ "dev": true, -+ "peerDependencies": { -+ "should": ">= 8.x" -+ } -+ }, -+ "node_modules/should-type": { -+ "version": "1.4.0", -+ "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", -+ "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", -+ "dev": true -+ }, -+ "node_modules/should-type-adaptors": { -+ "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", -+ "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", -+ "dev": true, -+ "dependencies": { -+ "should-type": "^1.3.0", -+ "should-util": "^1.0.0" -+ } -+ }, -+ "node_modules/should-util": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", -+ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", -+ "dev": true -+ }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", -@@ -3694,6 +8374,32 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/signal-exit": { -+ "version": "3.0.7", -+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", -+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", -+ "dev": true, -+ "optional": true -+ }, -+ "node_modules/sinon": { -+ "version": "11.1.2", -+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", -+ "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", -+ "deprecated": "16.1.1", -+ "dev": true, -+ "dependencies": { -+ "@sinonjs/commons": "^1.8.3", -+ "@sinonjs/fake-timers": "^7.1.2", -+ "@sinonjs/samsam": "^6.0.2", -+ "diff": "^5.0.0", -+ "nise": "^5.1.0", -+ "supports-color": "^7.2.0" -+ }, -+ "funding": { -+ "type": "opencollective", -+ "url": "https://opencollective.com/sinon" -+ } -+ }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", -@@ -3701,24 +8407,109 @@ - "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", -+ "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": { -+ "spdx-exceptions": "^2.1.0", -+ "spdx-license-ids": "^3.0.0" -+ } -+ }, -+ "node_modules/spdx-license-ids": { -+ "version": "3.0.17", -+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", -+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", -+ "dev": true, -+ "license": "CC0-1.0" -+ }, -+ "node_modules/split2": { -+ "version": "3.2.2", -+ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", -+ "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", -+ "dev": true, -+ "dependencies": { -+ "readable-stream": "^3.0.0" -+ } -+ }, -+ "node_modules/statuses": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", -+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/stoppable": { -+ "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", -+ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", -+ "dev": true, -+ "engines": { -+ "node": ">=4", -+ "npm": ">=6" -+ } -+ }, -+ "node_modules/stream-shift": { -+ "version": "1.0.3", -+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", -+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", -+ "dev": true -+ }, -+ "node_modules/streamsearch": { -+ "version": "1.1.0", -+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", -+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", -+ "dev": true, -+ "engines": { -+ "node": ">=10.0.0" -+ } -+ }, -+ "node_modules/string_decoder": { -+ "version": "1.3.0", -+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", -+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", -+ "dev": true, -+ "dependencies": { -+ "safe-buffer": "~5.2.0" -+ } -+ }, -+ "node_modules/string_decoder/node_modules/safe-buffer": { -+ "version": "5.2.1", -+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", -+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", -+ "dev": true, -+ "funding": [ -+ { -+ "type": "github", -+ "url": "https://github.com/sponsors/feross" -+ }, -+ { -+ "type": "patreon", -+ "url": "https://www.patreon.com/feross" -+ }, -+ { -+ "type": "consulting", -+ "url": "https://feross.org/support" -+ } -+ ] -+ }, -+ "node_modules/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==", - "dependencies": { -- "spdx-exceptions": "^2.1.0", -- "spdx-license-ids": "^3.0.0" -+ "emoji-regex": "^8.0.0", -+ "is-fullwidth-code-point": "^3.0.0", -+ "strip-ansi": "^6.0.1" -+ }, -+ "engines": { -+ "node": ">=8" - } - }, -- "node_modules/spdx-license-ids": { -- "version": "3.0.17", -- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", -- "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", -- "dev": true, -- "license": "CC0-1.0" -- }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", -@@ -3775,7 +8566,6 @@ - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", -- "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" -@@ -3798,7 +8588,6 @@ - "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": { - "node": ">=8" -@@ -3807,11 +8596,55 @@ - "url": "https://github.com/sponsors/sindresorhus" - } - }, -+ "node_modules/superagent": { -+ "version": "9.0.2", -+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", -+ "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", -+ "dev": true, -+ "dependencies": { -+ "component-emitter": "^1.3.0", -+ "cookiejar": "^2.1.4", -+ "debug": "^4.3.4", -+ "fast-safe-stringify": "^2.1.1", -+ "form-data": "^4.0.0", -+ "formidable": "^3.5.1", -+ "methods": "^1.1.2", -+ "mime": "2.6.0", -+ "qs": "^6.11.0" -+ }, -+ "engines": { -+ "node": ">=14.18.0" -+ } -+ }, -+ "node_modules/superagent/node_modules/mime": { -+ "version": "2.6.0", -+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", -+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", -+ "dev": true, -+ "bin": { -+ "mime": "cli.js" -+ }, -+ "engines": { -+ "node": ">=4.0.0" -+ } -+ }, -+ "node_modules/supertest": { -+ "version": "7.0.0", -+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz", -+ "integrity": "sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==", -+ "dev": true, -+ "dependencies": { -+ "methods": "^1.1.2", -+ "superagent": "^9.0.1" -+ }, -+ "engines": { -+ "node": ">=14.18.0" -+ } -+ }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", -- "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" -@@ -3833,6 +8666,29 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/tar": { -+ "version": "6.2.1", -+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", -+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", -+ "dev": true, -+ "dependencies": { -+ "chownr": "^2.0.0", -+ "fs-minipass": "^2.0.0", -+ "minipass": "^5.0.0", -+ "minizlib": "^2.1.1", -+ "mkdirp": "^1.0.3", -+ "yallist": "^4.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/tar/node_modules/yallist": { -+ "version": "4.0.0", -+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", -+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", -+ "dev": true -+ }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", -@@ -3845,11 +8701,61 @@ - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, -- "peer": true, - "engines": { - "node": ">=4" - } - }, -+ "node_modules/to-regex-range": { -+ "version": "5.0.1", -+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", -+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", -+ "dependencies": { -+ "is-number": "^7.0.0" -+ }, -+ "engines": { -+ "node": ">=8.0" -+ } -+ }, -+ "node_modules/toidentifier": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", -+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.6" -+ } -+ }, -+ "node_modules/tough-cookie": { -+ "version": "4.1.3", -+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", -+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", -+ "dev": true, -+ "dependencies": { -+ "psl": "^1.1.33", -+ "punycode": "^2.1.1", -+ "universalify": "^0.2.0", -+ "url-parse": "^1.5.3" -+ }, -+ "engines": { -+ "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, -+ "engines": { -+ "node": ">= 4.0.0" -+ } -+ }, -+ "node_modules/tr46": { -+ "version": "0.0.3", -+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", -+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", -+ "dev": true, -+ "optional": true -+ }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", -@@ -3863,6 +8769,12 @@ - "strip-bom": "^3.0.0" - } - }, -+ "node_modules/tslib": { -+ "version": "2.6.2", -+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", -+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", -+ "dev": true -+ }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", -@@ -3876,6 +8788,15 @@ - "node": ">= 0.8.0" - } - }, -+ "node_modules/type-detect": { -+ "version": "4.0.8", -+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", -+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", -+ "dev": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", -@@ -3889,6 +8810,28 @@ - "url": "https://github.com/sponsors/sindresorhus" - } - }, -+ "node_modules/type-is": { -+ "version": "1.6.18", -+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", -+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", -+ "dev": true, -+ "dependencies": { -+ "media-typer": "0.3.0", -+ "mime-types": "~2.1.24" -+ }, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, -+ "node_modules/type-is/node_modules/media-typer": { -+ "version": "0.3.0", -+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", -+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.6" -+ } -+ }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", -@@ -3966,12 +8909,48 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "node_modules/typedarray": { -+ "version": "0.0.6", -+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", -+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", -+ "dev": true -+ }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true - }, -+ "node_modules/uglify-js": { -+ "version": "3.17.4", -+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", -+ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", -+ "dev": true, -+ "bin": { -+ "uglifyjs": "bin/uglifyjs" -+ }, -+ "engines": { -+ "node": ">=0.8.0" -+ } -+ }, -+ "node_modules/uid-safe": { -+ "version": "2.1.5", -+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", -+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", -+ "dev": true, -+ "dependencies": { -+ "random-bytes": "~1.0.0" -+ }, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/uid2": { -+ "version": "0.0.4", -+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz", -+ "integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==", -+ "dev": true -+ }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", -@@ -3994,6 +8973,64 @@ - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true - }, -+ "node_modules/unicode-canonical-property-names-ecmascript": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", -+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/unicode-match-property-ecmascript": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", -+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", -+ "dev": true, -+ "dependencies": { -+ "unicode-canonical-property-names-ecmascript": "^2.0.0", -+ "unicode-property-aliases-ecmascript": "^2.0.0" -+ }, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/unicode-match-property-value-ecmascript": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", -+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", -+ "dev": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/unicode-property-aliases-ecmascript": { -+ "version": "2.1.0", -+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", -+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", -+ "dev": true, -+ "engines": { -+ "node": ">=4" -+ } -+ }, -+ "node_modules/universalify": { -+ "version": "2.0.1", -+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", -+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", -+ "dev": true, -+ "engines": { -+ "node": ">= 10.0.0" -+ } -+ }, -+ "node_modules/unpipe": { -+ "version": "1.0.0", -+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", -+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, - "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", -@@ -4013,7 +9050,6 @@ - "url": "https://github.com/sponsors/ai" - } - ], -- "peer": true, - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" -@@ -4035,6 +9071,67 @@ - "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, -+ "dependencies": { -+ "querystringify": "^2.1.1", -+ "requires-port": "^1.0.0" -+ } -+ }, -+ "node_modules/util-deprecate": { -+ "version": "1.0.2", -+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", -+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", -+ "dev": true -+ }, -+ "node_modules/utils-merge": { -+ "version": "1.0.1", -+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", -+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.4.0" -+ } -+ }, -+ "node_modules/uuid": { -+ "version": "9.0.0", -+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", -+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", -+ "dev": true, -+ "bin": { -+ "uuid": "dist/bin/uuid" -+ } -+ }, -+ "node_modules/vary": { -+ "version": "1.1.2", -+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", -+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", -+ "dev": true, -+ "engines": { -+ "node": ">= 0.8" -+ } -+ }, -+ "node_modules/webidl-conversions": { -+ "version": "3.0.1", -+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", -+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", -+ "dev": true, -+ "optional": true -+ }, -+ "node_modules/whatwg-url": { -+ "version": "5.0.0", -+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", -+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", -+ "dev": true, -+ "optional": true, -+ "dependencies": { -+ "tr46": "~0.0.3", -+ "webidl-conversions": "^3.0.0" -+ } -+ }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", -@@ -4088,6 +9185,16 @@ - "url": "https://github.com/sponsors/ljharb" - } - }, -+ "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, -+ "optional": true, -+ "dependencies": { -+ "string-width": "^1.0.2 || 2 || 3 || 4" -+ } -+ }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", -@@ -4098,31 +9205,148 @@ - "node": ">=0.10.0" - } - }, -+ "node_modules/workerpool": { -+ "version": "6.2.1", -+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", -+ "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" -+ }, -+ "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==", -+ "dependencies": { -+ "ansi-styles": "^4.0.0", -+ "string-width": "^4.1.0", -+ "strip-ansi": "^6.0.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ }, -+ "funding": { -+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" -+ } -+ }, - "node_modules/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": "7.5.6", -+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", -+ "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", -+ "dev": true, -+ "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/xml2js": { -+ "version": "0.6.2", -+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", -+ "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", -+ "dev": true, -+ "dependencies": { -+ "sax": ">=0.6.0", -+ "xmlbuilder": "~11.0.0" -+ }, -+ "engines": { -+ "node": ">=4.0.0" -+ } -+ }, -+ "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, -+ "engines": { -+ "node": ">=4.0" -+ } -+ }, - "node_modules/xmlcreate": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", - "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", - "dev": true - }, -+ "node_modules/xtend": { -+ "version": "4.0.2", -+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", -+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", -+ "dev": true, -+ "engines": { -+ "node": ">=0.4" -+ } -+ }, -+ "node_modules/y18n": { -+ "version": "5.0.8", -+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", -+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", -+ "engines": { -+ "node": ">=10" -+ } -+ }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", -- "dev": true, -- "peer": true -+ "dev": true -+ }, -+ "node_modules/yargs": { -+ "version": "16.2.0", -+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", -+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", -+ "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/yargs-parser": { -+ "version": "20.2.4", -+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", -+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", -+ "engines": { -+ "node": ">=10" -+ } -+ }, -+ "node_modules/yargs-unparser": { -+ "version": "2.0.0", -+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", -+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", -+ "dependencies": { -+ "camelcase": "^6.0.0", -+ "decamelize": "^4.0.0", -+ "flat": "^5.0.2", -+ "is-plain-obj": "^2.1.0" -+ }, -+ "engines": { -+ "node": ">=10" -+ } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", -- "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" -diff --git a/package.json b/package.json -index 298d084..e4a92a3 100644 ---- a/package.json -+++ b/package.json -@@ -38,12 +38,14 @@ - "mocha": "^10.4.0" - }, - "devDependencies": { -- "@babel/eslint-parser": "^7.21.8", -- "eslint": "^8.41.0", -+ "@babel/eslint-parser": "^7.24.5", -+ "@babel/preset-env": "^7.24.5", -+ "eslint": "^8.57.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^44.2.4", -+ "eslint-plugin-mocha": "^10.4.3", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", -@@ -59,7 +61,7 @@ - "extends": "./.eslintrc.yml" - }, - "scripts": { -- "fix": "npx eslint ./src/. && npx eslint ./src/. --fix", -+ "fix": "prettier --plugin-search-dir . --write ./src/. && npx eslint ./src/. --fix", - "lint": "prettier --plugin-search-dir . --check ./src/. && npx eslint ./src/.", - "format": "prettier --plugin-search-dir . --write ./src/.", - "doc": "jsdoc -c jsdoc.json", -diff --git a/src/oauth2.js b/src/oauth2.js -index 9bea803..6b063c6 100644 ---- a/src/oauth2.js -+++ b/src/oauth2.js -@@ -3,26 +3,9 @@ module.exports = function (RED) { - - const axios = require('axios'); - const { URL } = require('url'); -- const crypto = require('crypto'); - const http = require('http'); - const https = require('https'); - -- /** -- * Replaces circular references in an object to allow safe stringification. -- * -- * @returns {Function} A replacer function for JSON.stringify. -- */ -- const getCircularReplacer = () => { -- const seen = new WeakSet(); -- return (key, value) => { -- if (typeof value === 'object' && value !== null) { -- if (seen.has(value)) return; -- seen.add(value); -- } -- return value; -- }; -- }; -- - /** - * Class representing an OAuth2 Node. - */ -@@ -76,7 +59,6 @@ module.exports = function (RED) { - this.configureProxy(); // Configure proxy settings - // console.log('Configured proxy settings:', this.proxy); - -- - delete msg.oauth2Request; // Remove oauth2Request from msg - options.form = this.cleanForm(options.form); // Clean the form data - -@@ -105,7 +87,7 @@ module.exports = function (RED) { - 'Content-Type': 'application/x-www-form-urlencoded', - Accept: 'application/json' - }; -- -+ - // Set options based on grant type - if (msg.oauth2Request) { - const creds = msg.oauth2Request.credentials; -@@ -115,21 +97,21 @@ module.exports = function (RED) { - resource: creds.resource || this.resource, - state: creds.state || this.state - }; -- -+ - if (creds.grant_type === 'password') { - form.username = creds.username || this.username; - form.password = creds.password || this.password; - } else if (creds.grant_type === 'refresh_token') { - form.refresh_token = creds.refresh_token; - } -- -+ - if (this.client_credentials_in_body) { - form.client_id = creds.client_id || this.client_id; - form.client_secret = creds.client_secret || this.client_secret; - } else { - headers.Authorization = 'Basic ' + Buffer.from(`${creds.client_id}:${creds.client_secret}`).toString('base64'); - } -- -+ - url = msg.oauth2Request.access_token_url || this.access_token_url; - } else { - form = { -@@ -138,7 +120,7 @@ module.exports = function (RED) { - resource: this.resource, - state: this.state - }; -- -+ - if (this.grant_type === 'password') { - form.username = this.username; - form.password = this.password; -@@ -158,7 +140,7 @@ module.exports = function (RED) { - form.redirect_uri = this.redirect_uri; - } - } -- -+ - if (this.client_credentials_in_body) { - form.client_id = this.client_id; - form.client_secret = this.client_secret; -@@ -166,7 +148,7 @@ module.exports = function (RED) { - headers.Authorization = 'Basic ' + Buffer.from(`${this.client_id}:${this.client_secret}`).toString('base64'); - } - } -- -+ - return { - method: 'POST', - url: url, -@@ -175,7 +157,7 @@ module.exports = function (RED) { - form: form - }; - } -- -+ - /** - * Configures proxy settings. - */ -@@ -207,12 +189,22 @@ module.exports = function (RED) { - * @returns {Promise} - The response from the request. - */ - async makePostRequest(options) { -- return axios.post(options.url, options.form, { -+ const axiosOptions = { -+ method: options.method, -+ url: options.url, - headers: options.headers, -- proxy: this.proxy, -- httpAgent: new http.Agent({ rejectUnauthorized: this.rejectUnauthorized }), -- httpsAgent: new https.Agent({ rejectUnauthorized: this.rejectUnauthorized }) -- }); -+ data: new URLSearchParams(options.form).toString(), -+ proxy: false, -+ httpAgent: new http.Agent({ rejectUnauthorized: options.rejectUnauthorized }), -+ httpsAgent: new https.Agent({ rejectUnauthorized: options.rejectUnauthorized }) -+ }; -+ -+ if (this.proxy) { -+ const HttpsProxyAgent = require('https-proxy-agent'); -+ axiosOptions.httpsAgent = new HttpsProxyAgent(this.proxy); -+ } -+ -+ return axios(axiosOptions); - } - - /** -@@ -223,6 +215,7 @@ module.exports = function (RED) { - */ - handleResponse(response, msg, send) { - msg.oauth2Response = response.data || {}; -+ msg.headers = response.headers || {}; // Include headers in the message - this.setStatus('green', `HTTP ${response.status}, ok`); - send(msg); - } -@@ -243,7 +236,7 @@ module.exports = function (RED) { - send([null, msg]); - } - } -- -+ - /** - * Sets the status of the node. - * @param {string} color - The color of the status indicator. -diff --git a/test/oauth2_spec.js b/test/oauth2_spec.js -index 8d40067..012ee33 100644 ---- a/test/oauth2_spec.js -+++ b/test/oauth2_spec.js -@@ -1,35 +1,34 @@ --/* eslint-disable no-unused-vars */ - const should = require('should'); // eslint-disable-line no-unused-vars --/* eslint-enable no-unused-vars */const helper = require('node-red-node-test-helper'); -+const helper = require('node-red-node-test-helper'); - const nock = require('nock'); - const oauth2Node = require('../src/oauth2.js'); - - helper.init(require.resolve('node-red')); - - describe('OAuth2 Node', function () { -- this.timeout(10000); // Increase timeout to 10000ms for more room -+ this.timeout(5000); // Increase timeout to 10000ms for more room - -- before(function(done) { -+ before(function (done) { - console.log('Starting Node-RED server...'); - helper.startServer(done); - }); - -- after(function(done) { -+ after(function (done) { - console.log('Stopping Node-RED server...'); - helper.stopServer(done); - }); - -- afterEach(function(done) { -+ afterEach(function (done) { - console.log('Unloading flows...'); -- helper.unload().then(function() { -+ helper.unload().then(function () { - done(); - }); - }); - -- it('should be loaded', function(done) { -+ it('should be loaded', function (done) { - console.log('Testing if node loads correctly...'); - const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; -- helper.load(oauth2Node, flow, function() { -+ helper.load(oauth2Node, flow, function () { - const n1 = helper.getNode('n1'); - try { - n1.should.have.property('name', 'oauth2'); -@@ -42,7 +41,7 @@ describe('OAuth2 Node', function () { - }); - }); - -- it('should handle input and make POST request', function(done) { -+ it('should handle input and make POST request', function (done) { - console.log('Testing input handling and POST request...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, -@@ -53,16 +52,14 @@ describe('OAuth2 Node', function () { - clientSecret: 'testClientSecret' - }; - -- helper.load(oauth2Node, flow, credentials, function() { -+ helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); -- const scope = nock('https://example.com') -- .post('/oauth2/token') -- .reply(200, { access_token: 'mocked_access_token' }); -+ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - -- n2.on('input', function(msg) { -+ n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); -@@ -90,7 +87,7 @@ describe('OAuth2 Node', function () { - }); - }); - -- it('should handle errors', function(done) { -+ it('should handle errors', function (done) { - console.log('Testing error handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, -@@ -101,16 +98,14 @@ describe('OAuth2 Node', function () { - clientSecret: 'testClientSecret' - }; - -- helper.load(oauth2Node, flow, credentials, function() { -+ helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); - - console.log('Setting up nock for invalid-url.com...'); -- const scope = nock('https://invalid-url.com') -- .post('/') -- .replyWithError('mocked error'); -+ const scope = nock('https://invalid-url.com').post('/').replyWithError('mocked error'); - -- n3.on('input', function(msg) { -+ n3.on('input', function (msg) { - console.log('Received input on error helper node'); - try { - msg.should.have.property('oauth2Error'); -@@ -136,4 +131,338 @@ describe('OAuth2 Node', function () { - }); - }); - }); -+ -+ it('should handle invalid client credentials', function (done) { -+ console.log('Testing invalid client credentials handling...'); -+ const flow = [ -+ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, -+ { id: 'n3', type: 'helper' } -+ ]; -+ const credentials = { -+ clientId: 'invalidClientId', -+ clientSecret: 'invalidClientSecret' -+ }; -+ -+ helper.load(oauth2Node, flow, credentials, function () { -+ const n1 = helper.getNode('n1'); -+ const n3 = helper.getNode('n3'); -+ -+ console.log('Setting up nock for example.com...'); -+ const scope = nock('https://example.com').post('/oauth2/token').reply(401, { error: 'invalid_client' }); -+ -+ n3.on('input', function (msg) { -+ console.log('Received input on error helper node'); -+ try { -+ msg.should.have.property('oauth2Error'); -+ msg.oauth2Error.should.have.property('status', 401); -+ msg.oauth2Error.data.should.have.property('error', 'invalid_client'); -+ scope.done(); // Verify if the nock interceptor was called -+ done(); -+ } catch (err) { -+ console.error('Failed invalid client credentials handling test', err); -+ done(err); -+ } -+ }); -+ -+ console.log('Sending input to node...'); -+ n1.receive({ -+ oauth2Request: { -+ access_token_url: 'https://example.com/oauth2/token', -+ credentials: { -+ grant_type: 'client_credentials', -+ client_id: 'invalidClientId', -+ client_secret: 'invalidClientSecret', -+ scope: 'testScope' -+ } -+ } -+ }); -+ }); -+ }); -+ -+ it('should handle authorization_code grant type', function (done) { -+ console.log('Testing authorization_code grant type handling...'); -+ const flow = [ -+ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, -+ { id: 'n2', type: 'helper' } -+ ]; -+ const credentials = { -+ clientId: 'testClientId', -+ clientSecret: 'testClientSecret' -+ }; -+ -+ helper.load(oauth2Node, flow, credentials, function () { -+ const n1 = helper.getNode('n1'); -+ const n2 = helper.getNode('n2'); -+ -+ console.log('Setting up nock for example.com...'); -+ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { -+ access_token: 'mocked_access_token', -+ refresh_token: 'mocked_refresh_token' -+ }); -+ -+ n2.on('input', function (msg) { -+ console.log('Received input on helper node'); -+ try { -+ msg.should.have.property('oauth2Response'); -+ msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); -+ msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); -+ scope.done(); // Verify if the nock interceptor was called -+ done(); -+ } catch (err) { -+ console.error('Failed authorization_code grant type handling test', err); -+ done(err); -+ } -+ }); -+ -+ console.log('Sending input to node...'); -+ n1.receive({ -+ oauth2Request: { -+ access_token_url: 'https://example.com/oauth2/token', -+ credentials: { -+ grant_type: 'authorization_code', -+ code: 'testAuthorizationCode', -+ redirect_uri: 'https://example.com/redirect', -+ client_id: 'testClientId', -+ client_secret: 'testClientSecret' -+ } -+ } -+ }); -+ }); -+ }); -+ -+ it('should handle refresh_token grant type', function (done) { -+ console.log('Testing refresh_token grant type handling...'); -+ const flow = [ -+ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, -+ { id: 'n2', type: 'helper' } -+ ]; -+ const credentials = { -+ clientId: 'testClientId', -+ clientSecret: 'testClientSecret' -+ }; -+ -+ helper.load(oauth2Node, flow, credentials, function () { -+ const n1 = helper.getNode('n1'); -+ const n2 = helper.getNode('n2'); -+ -+ console.log('Setting up nock for example.com...'); -+ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'new_mocked_access_token' }); -+ -+ n2.on('input', function (msg) { -+ console.log('Received input on helper node'); -+ try { -+ msg.should.have.property('oauth2Response'); -+ msg.oauth2Response.should.have.property('access_token', 'new_mocked_access_token'); -+ scope.done(); // Verify if the nock interceptor was called -+ done(); -+ } catch (err) { -+ console.error('Failed refresh_token grant type handling test', err); -+ done(err); -+ } -+ }); -+ -+ console.log('Sending input to node...'); -+ n1.receive({ -+ oauth2Request: { -+ access_token_url: 'https://example.com/oauth2/token', -+ credentials: { -+ grant_type: 'refresh_token', -+ refresh_token: 'testRefreshToken', -+ client_id: 'testClientId', -+ client_secret: 'testClientSecret' -+ } -+ } -+ }); -+ }); -+ }); -+ -+ it('should handle network failure', function (done) { -+ console.log('Testing network failure handling...'); -+ const flow = [ -+ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, -+ { id: 'n3', type: 'helper' } -+ ]; -+ const credentials = { -+ clientId: 'testClientId', -+ clientSecret: 'testClientSecret' -+ }; -+ -+ helper.load(oauth2Node, flow, credentials, function () { -+ const n1 = helper.getNode('n1'); -+ const n3 = helper.getNode('n3'); -+ -+ console.log('Setting up nock for example.com...'); -+ const scope = nock('https://example.com').post('/oauth2/token').replyWithError('Network error'); -+ -+ n3.on('input', function (msg) { -+ console.log('Received input on error helper node'); -+ try { -+ msg.should.have.property('oauth2Error'); -+ msg.oauth2Error.should.have.property('message', 'Network error'); -+ scope.done(); // Verify if the nock interceptor was called -+ done(); -+ } catch (err) { -+ console.error('Failed network failure handling test', err); -+ done(err); -+ } -+ }); -+ -+ console.log('Sending input to node...'); -+ n1.receive({ -+ oauth2Request: { -+ access_token_url: 'https://example.com/oauth2/token', -+ credentials: { -+ grant_type: 'client_credentials', -+ client_id: 'testClientId', -+ client_secret: 'testClientSecret', -+ scope: 'testScope' -+ } -+ } -+ }); -+ }); -+ }); -+ -+ it('should handle custom headers in response', function (done) { -+ console.log('Testing custom headers handling...'); -+ const flow = [ -+ { -+ id: 'n1', -+ type: 'oauth2', -+ name: 'test name', -+ wires: [['n2']], -+ access_token_url: 'https://example.com/oauth2/token', -+ headers: { 'X-Custom-Header': 'CustomValue' } -+ }, -+ { id: 'n2', type: 'helper' } -+ ]; -+ -+ helper.load(oauth2Node, flow, function () { -+ const n1 = helper.getNode('n1'); -+ const n2 = helper.getNode('n2'); -+ -+ console.log('Setting up nock for example.com...'); -+ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }, { 'x-custom-header': 'CustomValue' }); -+ -+ n2.on('input', function (msg) { -+ console.log('Received input on helper node'); -+ try { -+ msg.should.have.property('headers'); -+ msg.headers.should.have.property('x-custom-header', 'CustomValue'); -+ scope.done(); -+ done(); -+ } catch (err) { -+ console.error('Failed custom headers handling test', err); -+ done(err); -+ } -+ }); -+ -+ console.log('Sending input to node...'); -+ n1.receive({ -+ oauth2Request: { -+ access_token_url: 'https://example.com/oauth2/token', -+ credentials: { -+ grant_type: 'client_credentials', -+ client_id: 'testClientId', -+ client_secret: 'testClientSecret' -+ } -+ } -+ }); -+ }); -+ }); -+ -+ it('should handle multiple scopes', function (done) { -+ console.log('Testing multiple scopes handling...'); -+ const flow = [ -+ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, -+ { id: 'n2', type: 'helper' } -+ ]; -+ const credentials = { -+ clientId: 'testClientId', -+ clientSecret: 'testClientSecret' -+ }; -+ -+ helper.load(oauth2Node, flow, credentials, function () { -+ const n1 = helper.getNode('n1'); -+ const n2 = helper.getNode('n2'); -+ -+ console.log('Setting up nock for example.com...'); -+ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); -+ -+ n2.on('input', function (msg) { -+ console.log('Received input on helper node'); -+ try { -+ msg.should.have.property('oauth2Response'); -+ msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); -+ scope.done(); // Verify if the nock interceptor was called -+ done(); -+ } catch (err) { -+ console.error('Failed multiple scopes handling test', err); -+ done(err); -+ } -+ }); -+ -+ console.log('Sending input to node...'); -+ n1.receive({ -+ oauth2Request: { -+ access_token_url: 'https://example.com/oauth2/token', -+ credentials: { -+ grant_type: 'client_credentials', -+ client_id: 'testClientId', -+ client_secret: 'testClientSecret', -+ scope: 'scope1 scope2' -+ } -+ } -+ }); -+ }); -+ }); -+ it('should handle proxy settings', function (done) { -+ console.log('Testing proxy settings handling...'); -+ const flow = [ -+ { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], access_token_url: 'https://example.com/oauth2/token' }, -+ { id: 'n2', type: 'helper' } -+ ]; -+ const credentials = { -+ clientId: 'testClientId', -+ clientSecret: 'testClientSecret' -+ }; -+ const proxySettings = { -+ prox: 'http://proxy.example.com:8080' -+ }; -+ -+ helper.load(oauth2Node, flow, credentials, function () { -+ const n1 = helper.getNode('n1'); -+ const n2 = helper.getNode('n2'); -+ -+ n1.prox = proxySettings.prox; -+ -+ console.log('Setting up nock for example.com...'); -+ const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); -+ -+ n2.on('input', function (msg) { -+ console.log('Received input on helper node'); -+ try { -+ msg.should.have.property('oauth2Response'); -+ msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); -+ scope.done(); -+ done(); -+ } catch (err) { -+ console.error('Failed proxy settings handling test', err); -+ done(err); -+ } -+ }); -+ -+ console.log('Sending input to node...'); -+ n1.receive({ -+ oauth2Request: { -+ access_token_url: 'https://example.com/oauth2/token', -+ credentials: { -+ grant_type: 'client_credentials', -+ client_id: 'testClientId', -+ client_secret: 'testClientSecret', -+ scope: 'testScope' -+ } -+ } -+ }); -+ }); -+ }); - }); -diff --git a/yarn.lock b/yarn.lock -index 842e60f..5bf38fe 100644 ---- a/yarn.lock -+++ b/yarn.lock -@@ -18,12 +18,12 @@ - "@babel/highlight" "^7.24.2" - picocolors "^1.0.0" - --"@babel/compat-data@^7.23.5": -+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" - integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== - --"@babel/core@^7.0.0", "@babel/core@^7.11.0": -+"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" - integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== -@@ -44,7 +44,7 @@ - json5 "^2.2.3" - semver "^6.3.1" - --"@babel/eslint-parser@^7.21.8": -+"@babel/eslint-parser@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz" - integrity sha512-gsUcqS/fPlgAw1kOtpss7uhY6E9SFFANQ6EFX5GTvzUwaV0+sGaZWk6xq22MOdeT9wfxyokW3ceCUvOiRtZciQ== -@@ -63,7 +63,21 @@ - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - --"@babel/helper-compilation-targets@^7.23.6": -+"@babel/helper-annotate-as-pure@^7.22.5": -+ 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== -+ dependencies: -+ "@babel/types" "^7.22.5" -+ -+"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": -+ version "7.22.15" -+ resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz" -+ integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== -+ dependencies: -+ "@babel/types" "^7.22.15" -+ -+"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== -@@ -74,6 +88,41 @@ - lru-cache "^5.1.1" - semver "^6.3.1" - -+"@babel/helper-create-class-features-plugin@^7.24.1", "@babel/helper-create-class-features-plugin@^7.24.4", "@babel/helper-create-class-features-plugin@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz" -+ integrity sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g== -+ dependencies: -+ "@babel/helper-annotate-as-pure" "^7.22.5" -+ "@babel/helper-environment-visitor" "^7.22.20" -+ "@babel/helper-function-name" "^7.23.0" -+ "@babel/helper-member-expression-to-functions" "^7.24.5" -+ "@babel/helper-optimise-call-expression" "^7.22.5" -+ "@babel/helper-replace-supers" "^7.24.1" -+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -+ "@babel/helper-split-export-declaration" "^7.24.5" -+ semver "^6.3.1" -+ -+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": -+ version "7.22.15" -+ resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz" -+ integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== -+ dependencies: -+ "@babel/helper-annotate-as-pure" "^7.22.5" -+ regexpu-core "^5.3.1" -+ semver "^6.3.1" -+ -+"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": -+ version "0.6.2" -+ resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" -+ integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== -+ dependencies: -+ "@babel/helper-compilation-targets" "^7.22.6" -+ "@babel/helper-plugin-utils" "^7.22.5" -+ debug "^4.1.1" -+ lodash.debounce "^4.0.8" -+ resolve "^1.14.2" -+ - "@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" -@@ -94,14 +143,21 @@ - dependencies: - "@babel/types" "^7.22.5" - --"@babel/helper-module-imports@^7.24.3": -+"@babel/helper-member-expression-to-functions@^7.23.0", "@babel/helper-member-expression-to-functions@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz" -+ integrity sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA== -+ dependencies: -+ "@babel/types" "^7.24.5" -+ -+"@babel/helper-module-imports@^7.24.1", "@babel/helper-module-imports@^7.24.3": - version "7.24.3" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" - integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== - dependencies: - "@babel/types" "^7.24.0" - --"@babel/helper-module-transforms@^7.24.5": -+"@babel/helper-module-transforms@^7.23.3", "@babel/helper-module-transforms@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz" - integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== -@@ -112,13 +168,50 @@ - "@babel/helper-split-export-declaration" "^7.24.5" - "@babel/helper-validator-identifier" "^7.24.5" - --"@babel/helper-simple-access@^7.24.5": -+"@babel/helper-optimise-call-expression@^7.22.5": -+ version "7.22.5" -+ resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" -+ integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== -+ dependencies: -+ "@babel/types" "^7.22.5" -+ -+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz" -+ integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== -+ -+"@babel/helper-remap-async-to-generator@^7.22.20": -+ version "7.22.20" -+ resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz" -+ integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== -+ dependencies: -+ "@babel/helper-annotate-as-pure" "^7.22.5" -+ "@babel/helper-environment-visitor" "^7.22.20" -+ "@babel/helper-wrap-function" "^7.22.20" -+ -+"@babel/helper-replace-supers@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz" -+ integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== -+ dependencies: -+ "@babel/helper-environment-visitor" "^7.22.20" -+ "@babel/helper-member-expression-to-functions" "^7.23.0" -+ "@babel/helper-optimise-call-expression" "^7.22.5" -+ -+"@babel/helper-simple-access@^7.22.5", "@babel/helper-simple-access@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz" - integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== - dependencies: - "@babel/types" "^7.24.5" - -+"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": -+ version "7.22.5" -+ resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" -+ integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== -+ dependencies: -+ "@babel/types" "^7.22.5" -+ - "@babel/helper-split-export-declaration@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz" -@@ -131,7 +224,7 @@ - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" - integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== - --"@babel/helper-validator-identifier@^7.24.5": -+"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz" - integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== -@@ -141,6 +234,15 @@ - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -+"@babel/helper-wrap-function@^7.22.20": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.5.tgz" -+ integrity sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw== -+ dependencies: -+ "@babel/helper-function-name" "^7.23.0" -+ "@babel/template" "^7.24.0" -+ "@babel/types" "^7.24.5" -+ - "@babel/helpers@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz" -@@ -165,6 +267,665 @@ - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz" - integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== - -+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.5.tgz" -+ integrity sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw== -+ dependencies: -+ "@babel/helper-environment-visitor" "^7.22.20" -+ "@babel/helper-plugin-utils" "^7.24.5" -+ -+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz" -+ integrity sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz" -+ integrity sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -+ "@babel/plugin-transform-optional-chaining" "^7.24.1" -+ -+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz" -+ integrity sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw== -+ dependencies: -+ "@babel/helper-environment-visitor" "^7.22.20" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": -+ 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== -+ -+"@babel/plugin-syntax-async-generators@^7.8.4": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.0" -+ -+"@babel/plugin-syntax-class-properties@^7.12.13": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.12.13" -+ -+"@babel/plugin-syntax-class-static-block@^7.14.5": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.14.5" -+ -+"@babel/plugin-syntax-dynamic-import@^7.8.3": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.0" -+ -+"@babel/plugin-syntax-export-namespace-from@^7.8.3": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.3" -+ -+"@babel/plugin-syntax-import-assertions@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz" -+ integrity sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-syntax-import-attributes@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz" -+ integrity sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-syntax-import-meta@^7.10.4": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.10.4" -+ -+"@babel/plugin-syntax-json-strings@^7.8.3": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.0" -+ -+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.10.4" -+ -+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.0" -+ -+"@babel/plugin-syntax-numeric-separator@^7.10.4": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.10.4" -+ -+"@babel/plugin-syntax-object-rest-spread@^7.8.3": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.0" -+ -+"@babel/plugin-syntax-optional-catch-binding@^7.8.3": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.0" -+ -+"@babel/plugin-syntax-optional-chaining@^7.8.3": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.8.0" -+ -+"@babel/plugin-syntax-private-property-in-object@^7.14.5": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.14.5" -+ -+"@babel/plugin-syntax-top-level-await@^7.14.5": -+ 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== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.14.5" -+ -+"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": -+ 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== -+ dependencies: -+ "@babel/helper-create-regexp-features-plugin" "^7.18.6" -+ "@babel/helper-plugin-utils" "^7.18.6" -+ -+"@babel/plugin-transform-arrow-functions@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz" -+ integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-async-generator-functions@^7.24.3": -+ version "7.24.3" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz" -+ integrity sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg== -+ dependencies: -+ "@babel/helper-environment-visitor" "^7.22.20" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-remap-async-to-generator" "^7.22.20" -+ "@babel/plugin-syntax-async-generators" "^7.8.4" -+ -+"@babel/plugin-transform-async-to-generator@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz" -+ integrity sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw== -+ dependencies: -+ "@babel/helper-module-imports" "^7.24.1" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-remap-async-to-generator" "^7.22.20" -+ -+"@babel/plugin-transform-block-scoped-functions@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz" -+ integrity sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-block-scoping@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.5.tgz" -+ integrity sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.5" -+ -+"@babel/plugin-transform-class-properties@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz" -+ integrity sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g== -+ dependencies: -+ "@babel/helper-create-class-features-plugin" "^7.24.1" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-class-static-block@^7.24.4": -+ version "7.24.4" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz" -+ integrity sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg== -+ dependencies: -+ "@babel/helper-create-class-features-plugin" "^7.24.4" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-class-static-block" "^7.14.5" -+ -+"@babel/plugin-transform-classes@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.5.tgz" -+ integrity sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q== -+ dependencies: -+ "@babel/helper-annotate-as-pure" "^7.22.5" -+ "@babel/helper-compilation-targets" "^7.23.6" -+ "@babel/helper-environment-visitor" "^7.22.20" -+ "@babel/helper-function-name" "^7.23.0" -+ "@babel/helper-plugin-utils" "^7.24.5" -+ "@babel/helper-replace-supers" "^7.24.1" -+ "@babel/helper-split-export-declaration" "^7.24.5" -+ globals "^11.1.0" -+ -+"@babel/plugin-transform-computed-properties@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz" -+ integrity sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/template" "^7.24.0" -+ -+"@babel/plugin-transform-destructuring@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz" -+ integrity sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.5" -+ -+"@babel/plugin-transform-dotall-regex@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz" -+ integrity sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw== -+ dependencies: -+ "@babel/helper-create-regexp-features-plugin" "^7.22.15" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-duplicate-keys@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz" -+ integrity sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-dynamic-import@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz" -+ integrity sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-dynamic-import" "^7.8.3" -+ -+"@babel/plugin-transform-exponentiation-operator@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz" -+ integrity sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw== -+ dependencies: -+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-export-namespace-from@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz" -+ integrity sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -+ -+"@babel/plugin-transform-for-of@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz" -+ integrity sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -+ -+"@babel/plugin-transform-function-name@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz" -+ integrity sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA== -+ dependencies: -+ "@babel/helper-compilation-targets" "^7.23.6" -+ "@babel/helper-function-name" "^7.23.0" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-json-strings@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz" -+ integrity sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-json-strings" "^7.8.3" -+ -+"@babel/plugin-transform-literals@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz" -+ integrity sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-logical-assignment-operators@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz" -+ integrity sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -+ -+"@babel/plugin-transform-member-expression-literals@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz" -+ integrity sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-modules-amd@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz" -+ integrity sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ== -+ dependencies: -+ "@babel/helper-module-transforms" "^7.23.3" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-modules-commonjs@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz" -+ integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== -+ dependencies: -+ "@babel/helper-module-transforms" "^7.23.3" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-simple-access" "^7.22.5" -+ -+"@babel/plugin-transform-modules-systemjs@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz" -+ integrity sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA== -+ dependencies: -+ "@babel/helper-hoist-variables" "^7.22.5" -+ "@babel/helper-module-transforms" "^7.23.3" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-validator-identifier" "^7.22.20" -+ -+"@babel/plugin-transform-modules-umd@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz" -+ integrity sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg== -+ dependencies: -+ "@babel/helper-module-transforms" "^7.23.3" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": -+ version "7.22.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz" -+ integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== -+ dependencies: -+ "@babel/helper-create-regexp-features-plugin" "^7.22.5" -+ "@babel/helper-plugin-utils" "^7.22.5" -+ -+"@babel/plugin-transform-new-target@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz" -+ integrity sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-nullish-coalescing-operator@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz" -+ integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -+ -+"@babel/plugin-transform-numeric-separator@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz" -+ integrity sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-numeric-separator" "^7.10.4" -+ -+"@babel/plugin-transform-object-rest-spread@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.5.tgz" -+ integrity sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA== -+ dependencies: -+ "@babel/helper-compilation-targets" "^7.23.6" -+ "@babel/helper-plugin-utils" "^7.24.5" -+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" -+ "@babel/plugin-transform-parameters" "^7.24.5" -+ -+"@babel/plugin-transform-object-super@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz" -+ integrity sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-replace-supers" "^7.24.1" -+ -+"@babel/plugin-transform-optional-catch-binding@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz" -+ integrity sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -+ -+"@babel/plugin-transform-optional-chaining@^7.24.1", "@babel/plugin-transform-optional-chaining@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz" -+ integrity sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.5" -+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -+ "@babel/plugin-syntax-optional-chaining" "^7.8.3" -+ -+"@babel/plugin-transform-parameters@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz" -+ integrity sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.5" -+ -+"@babel/plugin-transform-private-methods@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz" -+ integrity sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw== -+ dependencies: -+ "@babel/helper-create-class-features-plugin" "^7.24.1" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-private-property-in-object@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.5.tgz" -+ integrity sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ== -+ dependencies: -+ "@babel/helper-annotate-as-pure" "^7.22.5" -+ "@babel/helper-create-class-features-plugin" "^7.24.5" -+ "@babel/helper-plugin-utils" "^7.24.5" -+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -+ -+"@babel/plugin-transform-property-literals@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz" -+ integrity sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-regenerator@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz" -+ integrity sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ regenerator-transform "^0.15.2" -+ -+"@babel/plugin-transform-reserved-words@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz" -+ integrity sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-shorthand-properties@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz" -+ integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-spread@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz" -+ integrity sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -+ -+"@babel/plugin-transform-sticky-regex@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz" -+ integrity sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-template-literals@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz" -+ integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-typeof-symbol@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.5.tgz" -+ integrity sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.5" -+ -+"@babel/plugin-transform-unicode-escapes@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz" -+ integrity sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-unicode-property-regex@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz" -+ integrity sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng== -+ dependencies: -+ "@babel/helper-create-regexp-features-plugin" "^7.22.15" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-unicode-regex@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz" -+ integrity sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g== -+ dependencies: -+ "@babel/helper-create-regexp-features-plugin" "^7.22.15" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/plugin-transform-unicode-sets-regex@^7.24.1": -+ version "7.24.1" -+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz" -+ integrity sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA== -+ dependencies: -+ "@babel/helper-create-regexp-features-plugin" "^7.22.15" -+ "@babel/helper-plugin-utils" "^7.24.0" -+ -+"@babel/preset-env@^7.24.5": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.5.tgz" -+ integrity sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ== -+ dependencies: -+ "@babel/compat-data" "^7.24.4" -+ "@babel/helper-compilation-targets" "^7.23.6" -+ "@babel/helper-plugin-utils" "^7.24.5" -+ "@babel/helper-validator-option" "^7.23.5" -+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.5" -+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.1" -+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.1" -+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.1" -+ "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" -+ "@babel/plugin-syntax-async-generators" "^7.8.4" -+ "@babel/plugin-syntax-class-properties" "^7.12.13" -+ "@babel/plugin-syntax-class-static-block" "^7.14.5" -+ "@babel/plugin-syntax-dynamic-import" "^7.8.3" -+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -+ "@babel/plugin-syntax-import-assertions" "^7.24.1" -+ "@babel/plugin-syntax-import-attributes" "^7.24.1" -+ "@babel/plugin-syntax-import-meta" "^7.10.4" -+ "@babel/plugin-syntax-json-strings" "^7.8.3" -+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -+ "@babel/plugin-syntax-numeric-separator" "^7.10.4" -+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" -+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -+ "@babel/plugin-syntax-optional-chaining" "^7.8.3" -+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -+ "@babel/plugin-syntax-top-level-await" "^7.14.5" -+ "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" -+ "@babel/plugin-transform-arrow-functions" "^7.24.1" -+ "@babel/plugin-transform-async-generator-functions" "^7.24.3" -+ "@babel/plugin-transform-async-to-generator" "^7.24.1" -+ "@babel/plugin-transform-block-scoped-functions" "^7.24.1" -+ "@babel/plugin-transform-block-scoping" "^7.24.5" -+ "@babel/plugin-transform-class-properties" "^7.24.1" -+ "@babel/plugin-transform-class-static-block" "^7.24.4" -+ "@babel/plugin-transform-classes" "^7.24.5" -+ "@babel/plugin-transform-computed-properties" "^7.24.1" -+ "@babel/plugin-transform-destructuring" "^7.24.5" -+ "@babel/plugin-transform-dotall-regex" "^7.24.1" -+ "@babel/plugin-transform-duplicate-keys" "^7.24.1" -+ "@babel/plugin-transform-dynamic-import" "^7.24.1" -+ "@babel/plugin-transform-exponentiation-operator" "^7.24.1" -+ "@babel/plugin-transform-export-namespace-from" "^7.24.1" -+ "@babel/plugin-transform-for-of" "^7.24.1" -+ "@babel/plugin-transform-function-name" "^7.24.1" -+ "@babel/plugin-transform-json-strings" "^7.24.1" -+ "@babel/plugin-transform-literals" "^7.24.1" -+ "@babel/plugin-transform-logical-assignment-operators" "^7.24.1" -+ "@babel/plugin-transform-member-expression-literals" "^7.24.1" -+ "@babel/plugin-transform-modules-amd" "^7.24.1" -+ "@babel/plugin-transform-modules-commonjs" "^7.24.1" -+ "@babel/plugin-transform-modules-systemjs" "^7.24.1" -+ "@babel/plugin-transform-modules-umd" "^7.24.1" -+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" -+ "@babel/plugin-transform-new-target" "^7.24.1" -+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.1" -+ "@babel/plugin-transform-numeric-separator" "^7.24.1" -+ "@babel/plugin-transform-object-rest-spread" "^7.24.5" -+ "@babel/plugin-transform-object-super" "^7.24.1" -+ "@babel/plugin-transform-optional-catch-binding" "^7.24.1" -+ "@babel/plugin-transform-optional-chaining" "^7.24.5" -+ "@babel/plugin-transform-parameters" "^7.24.5" -+ "@babel/plugin-transform-private-methods" "^7.24.1" -+ "@babel/plugin-transform-private-property-in-object" "^7.24.5" -+ "@babel/plugin-transform-property-literals" "^7.24.1" -+ "@babel/plugin-transform-regenerator" "^7.24.1" -+ "@babel/plugin-transform-reserved-words" "^7.24.1" -+ "@babel/plugin-transform-shorthand-properties" "^7.24.1" -+ "@babel/plugin-transform-spread" "^7.24.1" -+ "@babel/plugin-transform-sticky-regex" "^7.24.1" -+ "@babel/plugin-transform-template-literals" "^7.24.1" -+ "@babel/plugin-transform-typeof-symbol" "^7.24.5" -+ "@babel/plugin-transform-unicode-escapes" "^7.24.1" -+ "@babel/plugin-transform-unicode-property-regex" "^7.24.1" -+ "@babel/plugin-transform-unicode-regex" "^7.24.1" -+ "@babel/plugin-transform-unicode-sets-regex" "^7.24.1" -+ "@babel/preset-modules" "0.1.6-no-external-plugins" -+ babel-plugin-polyfill-corejs2 "^0.4.10" -+ babel-plugin-polyfill-corejs3 "^0.10.4" -+ babel-plugin-polyfill-regenerator "^0.6.1" -+ core-js-compat "^3.31.0" -+ semver "^6.3.1" -+ -+"@babel/preset-modules@0.1.6-no-external-plugins": -+ version "0.1.6-no-external-plugins" -+ resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" -+ integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== -+ dependencies: -+ "@babel/helper-plugin-utils" "^7.0.0" -+ "@babel/types" "^7.4.4" -+ esutils "^2.0.2" -+ -+"@babel/regjsgen@^0.8.0": -+ version "0.8.0" -+ resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" -+ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -+ -+"@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4": -+ version "7.24.5" -+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz" -+ integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== -+ dependencies: -+ regenerator-runtime "^0.14.0" -+ - "@babel/template@^7.22.15", "@babel/template@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" -@@ -190,7 +951,7 @@ - debug "^4.3.1" - globals "^11.1.0" - --"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5": -+"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.4.4": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz" - integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== -@@ -298,6 +1059,21 @@ - dependencies: - lodash "^4.17.21" - -+"@mapbox/node-pre-gyp@^1.0.10", "@mapbox/node-pre-gyp@^1.0.11": -+ version "1.0.11" -+ resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz" -+ integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== -+ dependencies: -+ detect-libc "^2.0.0" -+ https-proxy-agent "^5.0.0" -+ make-dir "^3.1.0" -+ node-fetch "^2.6.7" -+ nopt "^5.0.0" -+ npmlog "^5.0.1" -+ rimraf "^3.0.2" -+ semver "^7.3.5" -+ tar "^6.1.11" -+ - "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz" -@@ -305,6 +1081,111 @@ - dependencies: - eslint-scope "5.1.1" - -+"@node-red/editor-api@3.1.9": -+ version "3.1.9" -+ resolved "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz" -+ integrity sha512-HHhFiwxmD8V5+U/xe+Gl9T0oAnwFeA7zisG8VW+Ruh3apGQvV9l5UoL9Yg00jEPDOhL99k/wqcXI42lakEkiKw== -+ dependencies: -+ "@node-red/editor-client" "3.1.9" -+ "@node-red/util" "3.1.9" -+ bcryptjs "2.4.3" -+ body-parser "1.20.2" -+ clone "2.1.2" -+ cors "2.8.5" -+ express "4.19.2" -+ express-session "1.17.3" -+ memorystore "1.6.7" -+ mime "3.0.0" -+ multer "1.4.5-lts.1" -+ mustache "4.2.0" -+ oauth2orize "1.11.1" -+ passport "0.6.0" -+ passport-http-bearer "1.0.1" -+ passport-oauth2-client-password "0.1.2" -+ ws "7.5.6" -+ optionalDependencies: -+ bcrypt "5.1.0" -+ -+"@node-red/editor-client@3.1.9": -+ version "3.1.9" -+ resolved "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.9.tgz" -+ integrity sha512-k8ik9fqcUxwsjEL0bBywNRYoFk7VZxdcoXRKCtcB3H8T/KRgQBDZu4j27dtff/5WPqnvtmXOQBbdDrhluMO0ng== -+ -+"@node-red/nodes@3.1.9": -+ version "3.1.9" -+ resolved "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.9.tgz" -+ integrity sha512-H0ZJjgmc7tbDBExF8WWIab7VJ1PBJxqExc6HWfb5FJQcOyA9mzCXwBduirWGxWAbQzZvq5GLgzy5ECzDJIjbSQ== -+ dependencies: -+ acorn "8.8.2" -+ acorn-walk "8.2.0" -+ ajv "8.12.0" -+ body-parser "1.20.2" -+ cheerio "1.0.0-rc.10" -+ content-type "1.0.5" -+ cookie "0.5.0" -+ cookie-parser "1.4.6" -+ cors "2.8.5" -+ cronosjs "1.7.1" -+ denque "2.1.0" -+ form-data "4.0.0" -+ fs-extra "11.1.1" -+ got "12.6.0" -+ hash-sum "2.0.0" -+ hpagent "1.2.0" -+ https-proxy-agent "5.0.1" -+ iconv-lite "0.6.3" -+ is-utf8 "0.2.1" -+ js-yaml "4.1.0" -+ media-typer "1.1.0" -+ mqtt "4.3.7" -+ multer "1.4.5-lts.1" -+ mustache "4.2.0" -+ node-watch "0.7.4" -+ on-headers "1.0.2" -+ raw-body "2.5.2" -+ tough-cookie "4.1.3" -+ uuid "9.0.0" -+ ws "7.5.6" -+ xml2js "0.6.2" -+ -+"@node-red/registry@3.1.9": -+ version "3.1.9" -+ resolved "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.9.tgz" -+ integrity sha512-lm1jNGO5ebax5kw5A2stOymMVQpuAGJ24M+3bfPYj3djzgBq4qKbNX6EAJLtyLHlCKecAybJoXDNpNcCnl7BXQ== -+ dependencies: -+ "@node-red/util" "3.1.9" -+ clone "2.1.2" -+ fs-extra "11.1.1" -+ semver "7.5.4" -+ tar "6.2.1" -+ uglify-js "3.17.4" -+ -+"@node-red/runtime@3.1.9": -+ version "3.1.9" -+ resolved "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.9.tgz" -+ integrity sha512-tpuHE5gEqLx9OoRjSxsyh683yGCnBlAAwbjkVv5lonqYqLJwE3DCJnMuHYj1lPUDzSc0QzhE9efm+LIhAhBU4g== -+ dependencies: -+ "@node-red/registry" "3.1.9" -+ "@node-red/util" "3.1.9" -+ async-mutex "0.4.0" -+ clone "2.1.2" -+ express "4.19.2" -+ fs-extra "11.1.1" -+ json-stringify-safe "5.0.1" -+ -+"@node-red/util@3.1.9": -+ version "3.1.9" -+ resolved "https://registry.npmjs.org/@node-red/util/-/util-3.1.9.tgz" -+ integrity sha512-BT7mMds8MFrXwgGuNjmk/vY0X621hirLcqAOp5/ZrrFuzPVoK4PDgoNx5igYD/HVQbVcJTHfN1cRopSFPfdF2Q== -+ dependencies: -+ fs-extra "11.1.1" -+ i18next "21.10.0" -+ json-stringify-safe "5.0.1" -+ jsonata "1.8.7" -+ lodash.clonedeep "^4.5.0" -+ moment "2.29.4" -+ moment-timezone "0.5.43" -+ - "@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" -@@ -326,6 +1207,65 @@ - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -+"@sindresorhus/is@^5.2.0": -+ version "5.6.0" -+ resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" -+ integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -+ -+"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": -+ version "1.8.6" -+ resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" -+ integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== -+ dependencies: -+ type-detect "4.0.8" -+ -+"@sinonjs/commons@^3.0.0": -+ version "3.0.1" -+ resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" -+ integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== -+ dependencies: -+ type-detect "4.0.8" -+ -+"@sinonjs/fake-timers@^11.2.2": -+ version "11.2.2" -+ resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz" -+ integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== -+ dependencies: -+ "@sinonjs/commons" "^3.0.0" -+ -+"@sinonjs/fake-timers@^7.1.2": -+ version "7.1.2" -+ resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz" -+ integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== -+ dependencies: -+ "@sinonjs/commons" "^1.7.0" -+ -+"@sinonjs/samsam@^6.0.2": -+ version "6.1.3" -+ resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz" -+ integrity sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ== -+ dependencies: -+ "@sinonjs/commons" "^1.6.0" -+ lodash.get "^4.4.2" -+ type-detect "^4.0.8" -+ -+"@sinonjs/text-encoding@^0.7.2": -+ version "0.7.2" -+ resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz" -+ integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== -+ -+"@szmarczak/http-timer@^5.0.1": -+ version "5.0.1" -+ resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" -+ integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== -+ dependencies: -+ defer-to-connect "^2.0.1" -+ -+"@types/http-cache-semantics@^4.0.2": -+ version "4.0.4" -+ resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" -+ integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== -+ - "@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" -@@ -354,16 +1294,46 @@ - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - -+abbrev@1: -+ version "1.1.1" -+ resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" -+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -+ -+accepts@~1.3.8: -+ 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== -+ dependencies: -+ mime-types "~2.1.34" -+ negotiator "0.6.3" -+ - acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -+acorn-walk@8.2.0: -+ version "8.2.0" -+ resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" -+ integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -+ - "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -+acorn@8.8.2: -+ version "8.8.2" -+ resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" -+ integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -+ -+agent-base@6: -+ version "6.0.2" -+ resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" -+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== -+ dependencies: -+ debug "4" -+ - ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" -@@ -374,6 +1344,26 @@ ajv@^6.12.4: - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -+ajv@8.12.0: -+ version "8.12.0" -+ resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" -+ integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== -+ dependencies: -+ fast-deep-equal "^3.1.1" -+ json-schema-traverse "^1.0.0" -+ require-from-string "^2.0.2" -+ uri-js "^4.2.2" -+ -+ansi-colors@^4.1.1, ansi-colors@4.1.1: -+ version "4.1.1" -+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" -+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -+ -+ansi-colors@^4.1.3: -+ 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== -+ - ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" -@@ -386,18 +1376,44 @@ ansi-styles@^3.2.1: - dependencies: - color-convert "^1.9.0" - --ansi-styles@^4.1.0: -+ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -+anymatch@~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== -+ dependencies: -+ normalize-path "^3.0.0" -+ picomatch "^2.0.4" -+ -+append-field@^1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" -+ integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== -+ -+"aproba@^1.0.3 || ^2.0.0": -+ 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== -+ - are-docs-informative@^0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz" - integrity sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== - -+are-we-there-yet@^2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" -+ integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== -+ dependencies: -+ delegates "^1.0.0" -+ readable-stream "^3.6.0" -+ - argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" -@@ -411,6 +1427,11 @@ array-buffer-byte-length@^1.0.1: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -+array-flatten@1.1.1: -+ version "1.1.1" -+ resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" -+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -+ - array-includes@^3.1.7: - version "3.1.8" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" -@@ -469,6 +1490,18 @@ arraybuffer.prototype.slice@^1.0.3: - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" - -+asap@^2.0.0: -+ version "2.0.6" -+ resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" -+ integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -+ -+async-mutex@0.4.0: -+ version "0.4.0" -+ resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz" -+ integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== -+ dependencies: -+ tslib "^2.4.0" -+ - asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" -@@ -481,7 +1514,7 @@ available-typed-arrays@^1.0.7: - dependencies: - possible-typed-array-names "^1.0.0" - --axios@>=1.3.3: -+axios@^1.6.8, axios@>=1.3.3: - version "1.7.1" - resolved "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz" - integrity sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q== -@@ -490,16 +1523,110 @@ axios@>=1.3.3: - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -+babel-plugin-polyfill-corejs2@^0.4.10: -+ version "0.4.11" -+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" -+ integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== -+ dependencies: -+ "@babel/compat-data" "^7.22.6" -+ "@babel/helper-define-polyfill-provider" "^0.6.2" -+ semver "^6.3.1" -+ -+babel-plugin-polyfill-corejs3@^0.10.4: -+ version "0.10.4" -+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz" -+ integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== -+ dependencies: -+ "@babel/helper-define-polyfill-provider" "^0.6.1" -+ core-js-compat "^3.36.1" -+ -+babel-plugin-polyfill-regenerator@^0.6.1: -+ version "0.6.2" -+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" -+ integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== -+ dependencies: -+ "@babel/helper-define-polyfill-provider" "^0.6.2" -+ - balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -+base64-js@^1.3.1: -+ version "1.5.1" -+ resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" -+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -+ -+basic-auth@2.0.1: -+ version "2.0.1" -+ resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" -+ integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== -+ dependencies: -+ safe-buffer "5.1.2" -+ -+bcrypt@5.1.0: -+ version "5.1.0" -+ resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz" -+ integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== -+ dependencies: -+ "@mapbox/node-pre-gyp" "^1.0.10" -+ node-addon-api "^5.0.0" -+ -+bcrypt@5.1.1: -+ version "5.1.1" -+ resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz" -+ integrity sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww== -+ dependencies: -+ "@mapbox/node-pre-gyp" "^1.0.11" -+ node-addon-api "^5.0.0" -+ -+bcryptjs@^2.4.3, bcryptjs@2.4.3: -+ version "2.4.3" -+ resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz" -+ integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== -+ -+binary-extensions@^2.0.0: -+ version "2.3.0" -+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" -+ integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -+ -+bl@^4.0.2: -+ version "4.1.0" -+ resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" -+ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== -+ dependencies: -+ buffer "^5.5.0" -+ inherits "^2.0.4" -+ readable-stream "^3.4.0" -+ - bluebird@^3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -+body-parser@^1.20.2, body-parser@1.20.2: -+ version "1.20.2" -+ resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" -+ integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== -+ dependencies: -+ bytes "3.1.2" -+ content-type "~1.0.5" -+ debug "2.6.9" -+ depd "2.0.0" -+ destroy "1.2.0" -+ http-errors "2.0.0" -+ iconv-lite "0.4.24" -+ on-finished "2.4.1" -+ qs "6.11.0" -+ raw-body "2.5.2" -+ type-is "~1.6.18" -+ unpipe "1.0.0" -+ -+boolbase@^1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" -+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -+ - brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" -@@ -508,7 +1635,26 @@ brace-expansion@^1.1.7: - balanced-match "^1.0.0" - concat-map "0.0.1" - --browserslist@^4.22.2, "browserslist@>= 4.21.0": -+brace-expansion@^2.0.1: -+ version "2.0.1" -+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" -+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== -+ dependencies: -+ balanced-match "^1.0.0" -+ -+braces@~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== -+ dependencies: -+ fill-range "^7.1.1" -+ -+browser-stdout@1.3.1: -+ version "1.3.1" -+ resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" -+ integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -+ -+browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": - version "4.23.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== -@@ -518,6 +1664,19 @@ browserslist@^4.22.2, "browserslist@>= 4.21.0": - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -+buffer-from@^1.0.0: -+ version "1.1.2" -+ resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" -+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -+ -+buffer@^5.5.0: -+ version "5.7.1" -+ resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" -+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== -+ dependencies: -+ base64-js "^1.3.1" -+ ieee754 "^1.1.13" -+ - builtins@^5.0.1: - version "5.1.0" - resolved "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz" -@@ -525,6 +1684,36 @@ builtins@^5.0.1: - dependencies: - semver "^7.0.0" - -+busboy@^1.0.0: -+ version "1.6.0" -+ resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" -+ integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== -+ dependencies: -+ streamsearch "^1.1.0" -+ -+bytes@3.1.2: -+ version "3.1.2" -+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" -+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -+ -+cacheable-lookup@^7.0.0: -+ version "7.0.0" -+ resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" -+ integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== -+ -+cacheable-request@^10.2.8: -+ version "10.2.14" -+ resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" -+ integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== -+ dependencies: -+ "@types/http-cache-semantics" "^4.0.2" -+ get-stream "^6.0.1" -+ http-cache-semantics "^4.1.1" -+ keyv "^4.5.3" -+ mimic-response "^4.0.0" -+ normalize-url "^8.0.0" -+ responselike "^3.0.0" -+ - call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" -@@ -541,6 +1730,11 @@ callsites@^3.0.0: - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -+camelcase@^6.0.0: -+ version "6.3.0" -+ resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" -+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -+ - caniuse-lite@^1.0.30001587: - version "1.0.30001620" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz" -@@ -562,7 +1756,7 @@ chalk@^2.4.2: - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - --chalk@^4.0.0: -+chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== -@@ -570,6 +1764,71 @@ chalk@^4.0.0: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -+cheerio-select@^1.5.0: -+ version "1.6.0" -+ resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz" -+ integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== -+ dependencies: -+ css-select "^4.3.0" -+ css-what "^6.0.1" -+ domelementtype "^2.2.0" -+ domhandler "^4.3.1" -+ domutils "^2.8.0" -+ -+cheerio@1.0.0-rc.10: -+ version "1.0.0-rc.10" -+ resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz" -+ integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== -+ dependencies: -+ cheerio-select "^1.5.0" -+ dom-serializer "^1.3.2" -+ domhandler "^4.2.0" -+ htmlparser2 "^6.1.0" -+ parse5 "^6.0.1" -+ parse5-htmlparser2-tree-adapter "^6.0.1" -+ tslib "^2.2.0" -+ -+chokidar@3.5.3: -+ version "3.5.3" -+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" -+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== -+ 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" -+ optionalDependencies: -+ fsevents "~2.3.2" -+ -+chownr@^2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" -+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -+ -+cli-table@^0.3.11: -+ version "0.3.11" -+ resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz" -+ integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== -+ dependencies: -+ colors "1.0.3" -+ -+cliui@^7.0.2: -+ version "7.0.4" -+ resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" -+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== -+ dependencies: -+ string-width "^4.2.0" -+ strip-ansi "^6.0.0" -+ wrap-ansi "^7.0.0" -+ -+clone@2.1.2: -+ version "2.1.2" -+ resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" -+ integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== -+ - color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" -@@ -594,6 +1853,16 @@ color-name@1.1.3: - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -+color-support@^1.1.2: -+ 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== -+ -+colors@1.0.3: -+ version "1.0.3" -+ resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" -+ integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== -+ - combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" -@@ -601,21 +1870,134 @@ combined-stream@^1.0.8: - dependencies: - delayed-stream "~1.0.0" - --comment-parser@1.3.1: -+comment-parser@1.3.1: -+ version "1.3.1" -+ resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz" -+ integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== -+ -+commist@^1.0.0: -+ version "1.1.0" -+ resolved "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz" -+ integrity sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg== -+ dependencies: -+ leven "^2.1.0" -+ minimist "^1.1.0" -+ -+component-emitter@^1.3.0: - version "1.3.1" -- resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz" -- integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== -+ resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz" -+ integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== - - concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -+concat-stream@^1.5.2: -+ version "1.6.2" -+ resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" -+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== -+ dependencies: -+ buffer-from "^1.0.0" -+ inherits "^2.0.3" -+ readable-stream "^2.2.2" -+ typedarray "^0.0.6" -+ -+concat-stream@^2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz" -+ integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== -+ dependencies: -+ buffer-from "^1.0.0" -+ inherits "^2.0.3" -+ readable-stream "^3.0.2" -+ typedarray "^0.0.6" -+ -+console-control-strings@^1.0.0, console-control-strings@^1.1.0: -+ version "1.1.0" -+ resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" -+ integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -+ -+content-disposition@0.5.4: -+ version "0.5.4" -+ resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" -+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== -+ dependencies: -+ safe-buffer "5.2.1" -+ -+content-type@~1.0.4, content-type@~1.0.5, content-type@1.0.5: -+ version "1.0.5" -+ resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" -+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -+ - convert-source-map@^2.0.0: - 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== - -+cookie-parser@1.4.6: -+ version "1.4.6" -+ resolved "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz" -+ integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== -+ dependencies: -+ cookie "0.4.1" -+ cookie-signature "1.0.6" -+ -+cookie-signature@1.0.6: -+ version "1.0.6" -+ resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" -+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -+ -+cookie@0.4.1: -+ version "0.4.1" -+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz" -+ integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== -+ -+cookie@0.4.2: -+ version "0.4.2" -+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" -+ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -+ -+cookie@0.5.0: -+ version "0.5.0" -+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" -+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -+ -+cookie@0.6.0: -+ version "0.6.0" -+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" -+ integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== -+ -+cookiejar@^2.1.4: -+ version "2.1.4" -+ resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz" -+ integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== -+ -+core-js-compat@^3.31.0, core-js-compat@^3.36.1: -+ version "3.37.1" -+ resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz" -+ integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== -+ dependencies: -+ browserslist "^4.23.0" -+ -+core-util-is@~1.0.0: -+ version "1.0.3" -+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" -+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -+ -+cors@2.8.5: -+ version "2.8.5" -+ resolved "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz" -+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== -+ dependencies: -+ object-assign "^4" -+ vary "^1" -+ -+cronosjs@1.7.1: -+ version "1.7.1" -+ resolved "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz" -+ integrity sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q== -+ - cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" -@@ -625,6 +2007,22 @@ cross-spawn@^7.0.2: - shebang-command "^2.0.0" - which "^2.0.1" - -+css-select@^4.3.0: -+ version "4.3.0" -+ resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" -+ integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== -+ dependencies: -+ boolbase "^1.0.0" -+ css-what "^6.0.1" -+ domhandler "^4.3.1" -+ domutils "^2.8.0" -+ nth-check "^2.0.1" -+ -+css-what@^6.0.1: -+ version "6.1.0" -+ resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" -+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -+ - data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" -@@ -659,18 +2057,49 @@ debug@^3.2.7: - dependencies: - ms "^2.1.1" - --debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: -+debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4, debug@4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -+debug@2.6.9: -+ version "2.6.9" -+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" -+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== -+ dependencies: -+ ms "2.0.0" -+ -+debug@2.x.x: -+ version "2.6.9" -+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" -+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== -+ dependencies: -+ ms "2.0.0" -+ -+decamelize@^4.0.0: -+ version "4.0.0" -+ resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" -+ integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -+ -+decompress-response@^6.0.0: -+ version "6.0.0" -+ resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" -+ integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== -+ dependencies: -+ mimic-response "^3.1.0" -+ - deep-is@^0.1.3: - 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== - -+defer-to-connect@^2.0.1: -+ version "2.0.1" -+ resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" -+ integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -+ - define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" -@@ -694,6 +2123,44 @@ delayed-stream@~1.0.0: - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -+delegates@^1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" -+ integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -+ -+denque@2.1.0: -+ version "2.1.0" -+ resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" -+ integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== -+ -+depd@~2.0.0, depd@2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" -+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -+ -+destroy@1.2.0: -+ version "1.2.0" -+ resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" -+ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -+ -+detect-libc@^2.0.0: -+ version "2.0.3" -+ resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" -+ integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== -+ -+dezalgo@^1.0.4: -+ version "1.0.4" -+ resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz" -+ integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== -+ dependencies: -+ asap "^2.0.0" -+ wrappy "1" -+ -+diff@^5.0.0, diff@5.0.0: -+ version "5.0.0" -+ resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" -+ integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -+ - doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" -@@ -708,11 +2175,86 @@ doctrine@^3.0.0: - dependencies: - esutils "^2.0.2" - -+dom-serializer@^1.0.1, dom-serializer@^1.3.2: -+ version "1.4.1" -+ resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" -+ integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== -+ dependencies: -+ domelementtype "^2.0.1" -+ domhandler "^4.2.0" -+ entities "^2.0.0" -+ -+domelementtype@^2.0.1, domelementtype@^2.2.0: -+ version "2.3.0" -+ resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" -+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -+ -+domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: -+ version "4.3.1" -+ resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" -+ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== -+ dependencies: -+ domelementtype "^2.2.0" -+ -+domutils@^2.5.2, domutils@^2.8.0: -+ version "2.8.0" -+ resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" -+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== -+ dependencies: -+ dom-serializer "^1.0.1" -+ domelementtype "^2.2.0" -+ domhandler "^4.2.0" -+ -+duplexify@^4.1.1: -+ version "4.1.3" -+ resolved "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz" -+ integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== -+ dependencies: -+ end-of-stream "^1.4.1" -+ inherits "^2.0.3" -+ readable-stream "^3.1.1" -+ stream-shift "^1.0.2" -+ -+ee-first@1.1.1: -+ version "1.1.1" -+ resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" -+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -+ - electron-to-chromium@^1.4.668: - version "1.4.775" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz" - integrity sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw== - -+emoji-regex@^8.0.0: -+ version "8.0.0" -+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" -+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -+ -+encodeurl@~1.0.2: -+ version "1.0.2" -+ resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" -+ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -+ -+end-of-stream@^1.1.0, end-of-stream@^1.4.1: -+ 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== -+ dependencies: -+ once "^1.4.0" -+ -+enquirer@^2.3.6: -+ version "2.4.1" -+ resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" -+ integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== -+ dependencies: -+ ansi-colors "^4.1.1" -+ strip-ansi "^6.0.1" -+ -+entities@^2.0.0: -+ version "2.2.0" -+ resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" -+ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -+ - entities@^4.4.0: - version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" -@@ -814,11 +2356,16 @@ es-to-primitive@^1.2.1: - is-date-object "^1.0.1" - is-symbol "^1.0.2" - --escalade@^3.1.2: -+escalade@^3.1.1, escalade@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== - -+escape-html@~1.0.3: -+ version "1.0.3" -+ resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" -+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -+ - escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" -@@ -829,7 +2376,7 @@ escape-string-regexp@^2.0.0: - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - --escape-string-regexp@^4.0.0: -+escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -@@ -905,6 +2452,15 @@ eslint-plugin-jsdoc@^44.2.4: - semver "^7.5.1" - spdx-expression-parse "^3.0.1" - -+eslint-plugin-mocha@^10.4.3: -+ version "10.4.3" -+ resolved "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz" -+ integrity sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ== -+ dependencies: -+ eslint-utils "^3.0.0" -+ globals "^13.24.0" -+ rambda "^7.4.0" -+ - "eslint-plugin-n@^15.0.0 || ^16.0.0 ", eslint-plugin-n@^15.7.0: - version "15.7.0" - resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz" -@@ -981,7 +2537,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - --"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.1, eslint@^8.41.0, eslint@>=4.19.1, eslint@>=5, eslint@>=7.0.0, eslint@>=7.28.0: -+"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.1, eslint@^8.57.0, eslint@>=4.19.1, eslint@>=5, eslint@>=7.0.0, eslint@>=7.28.0: - version "8.57.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== -@@ -1063,6 +2619,62 @@ esutils@^2.0.2: - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -+etag@~1.8.1: -+ version "1.8.1" -+ resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" -+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -+ -+express-session@1.17.3: -+ version "1.17.3" -+ resolved "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz" -+ integrity sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw== -+ dependencies: -+ cookie "0.4.2" -+ cookie-signature "1.0.6" -+ debug "2.6.9" -+ depd "~2.0.0" -+ on-headers "~1.0.2" -+ parseurl "~1.3.3" -+ safe-buffer "5.2.1" -+ uid-safe "~2.1.5" -+ -+express@^4.19.2, express@4.19.2: -+ version "4.19.2" -+ resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" -+ integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== -+ dependencies: -+ accepts "~1.3.8" -+ array-flatten "1.1.1" -+ body-parser "1.20.2" -+ content-disposition "0.5.4" -+ content-type "~1.0.4" -+ cookie "0.6.0" -+ cookie-signature "1.0.6" -+ debug "2.6.9" -+ depd "2.0.0" -+ encodeurl "~1.0.2" -+ escape-html "~1.0.3" -+ etag "~1.8.1" -+ finalhandler "1.2.0" -+ fresh "0.5.2" -+ http-errors "2.0.0" -+ merge-descriptors "1.0.1" -+ methods "~1.1.2" -+ on-finished "2.4.1" -+ parseurl "~1.3.3" -+ path-to-regexp "0.1.7" -+ proxy-addr "~2.0.7" -+ qs "6.11.0" -+ range-parser "~1.2.1" -+ safe-buffer "5.2.1" -+ send "0.18.0" -+ serve-static "1.15.0" -+ setprototypeof "1.2.0" -+ statuses "2.0.1" -+ type-is "~1.6.18" -+ utils-merge "1.0.1" -+ vary "~1.1.2" -+ - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" -@@ -1083,6 +2695,11 @@ fast-levenshtein@^2.0.6: - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -+fast-safe-stringify@^2.1.1: -+ version "2.1.1" -+ resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" -+ integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -+ - fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" -@@ -1097,7 +2714,27 @@ file-entry-cache@^6.0.1: - dependencies: - flat-cache "^3.0.4" - --find-up@^5.0.0: -+fill-range@^7.1.1: -+ version "7.1.1" -+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" -+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== -+ dependencies: -+ to-regex-range "^5.0.1" -+ -+finalhandler@1.2.0: -+ version "1.2.0" -+ resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" -+ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== -+ 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" -+ -+find-up@^5.0.0, find-up@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== -@@ -1114,6 +2751,11 @@ flat-cache@^3.0.4: - keyv "^4.5.3" - rimraf "^3.0.2" - -+flat@^5.0.2: -+ version "5.0.2" -+ resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" -+ integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -+ - flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" -@@ -1131,7 +2773,12 @@ for-each@^0.3.3: - dependencies: - is-callable "^1.1.3" - --form-data@^4.0.0: -+form-data-encoder@^2.1.2: -+ version "2.1.4" -+ resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" -+ integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== -+ -+form-data@^4.0.0, form-data@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== -@@ -1140,6 +2787,41 @@ form-data@^4.0.0: - combined-stream "^1.0.8" - mime-types "^2.1.12" - -+formidable@^3.5.1: -+ version "3.5.1" -+ resolved "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz" -+ integrity sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og== -+ dependencies: -+ dezalgo "^1.0.4" -+ hexoid "^1.0.0" -+ once "^1.4.0" -+ -+forwarded@0.2.0: -+ version "0.2.0" -+ resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" -+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -+ -+fresh@0.5.2: -+ version "0.5.2" -+ resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" -+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -+ -+fs-extra@11.1.1: -+ version "11.1.1" -+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" -+ integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== -+ dependencies: -+ graceful-fs "^4.2.0" -+ jsonfile "^6.0.1" -+ universalify "^2.0.0" -+ -+fs-minipass@^2.0.0: -+ version "2.1.0" -+ resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" -+ integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== -+ dependencies: -+ minipass "^3.0.0" -+ - fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" -@@ -1165,11 +2847,31 @@ functions-have-names@^1.2.3: - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -+gauge@^3.0.0: -+ version "3.0.2" -+ resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" -+ integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== -+ dependencies: -+ aproba "^1.0.3 || ^2.0.0" -+ color-support "^1.1.2" -+ console-control-strings "^1.0.0" -+ has-unicode "^2.0.1" -+ object-assign "^4.1.1" -+ signal-exit "^3.0.0" -+ string-width "^4.2.3" -+ strip-ansi "^6.0.1" -+ wide-align "^1.1.2" -+ - gensync@^1.0.0-beta.2: - 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== - -+get-caller-file@^2.0.5: -+ version "2.0.5" -+ resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" -+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -+ - get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" -@@ -1181,6 +2883,11 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@ - has-symbols "^1.0.3" - hasown "^2.0.0" - -+get-stream@^6.0.1: -+ version "6.0.1" -+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" -+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -+ - get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" -@@ -1197,7 +2904,14 @@ glob-parent@^6.0.2: - dependencies: - is-glob "^4.0.3" - --glob@^7.1.3: -+glob-parent@~5.1.2: -+ version "5.1.2" -+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" -+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== -+ dependencies: -+ is-glob "^4.0.1" -+ -+glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== -@@ -1209,12 +2923,23 @@ glob@^7.1.3: - once "^1.3.0" - path-is-absolute "^1.0.0" - -+glob@8.1.0: -+ version "8.1.0" -+ resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" -+ integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== -+ dependencies: -+ fs.realpath "^1.0.0" -+ inflight "^1.0.4" -+ inherits "2" -+ minimatch "^5.0.1" -+ once "^1.3.0" -+ - globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - --globals@^13.19.0: -+globals@^13.19.0, globals@^13.24.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== -@@ -1236,7 +2961,24 @@ gopd@^1.0.1: - dependencies: - get-intrinsic "^1.1.3" - --graceful-fs@^4.1.9: -+got@12.6.0: -+ version "12.6.0" -+ resolved "https://registry.npmjs.org/got/-/got-12.6.0.tgz" -+ integrity sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ== -+ dependencies: -+ "@sindresorhus/is" "^5.2.0" -+ "@szmarczak/http-timer" "^5.0.1" -+ cacheable-lookup "^7.0.0" -+ cacheable-request "^10.2.8" -+ decompress-response "^6.0.0" -+ form-data-encoder "^2.1.2" -+ get-stream "^6.0.1" -+ http2-wrapper "^2.1.10" -+ lowercase-keys "^3.0.0" -+ p-cancelable "^3.0.0" -+ responselike "^3.0.0" -+ -+graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: - 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== -@@ -1285,6 +3027,16 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: - dependencies: - has-symbols "^1.0.3" - -+has-unicode@^2.0.1: -+ version "2.0.1" -+ resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" -+ integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -+ -+hash-sum@2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" -+ integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== -+ - hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" -@@ -1292,6 +3044,97 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: - dependencies: - function-bind "^1.1.2" - -+he@1.2.0: -+ version "1.2.0" -+ resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" -+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -+ -+help-me@^3.0.0: -+ version "3.0.0" -+ resolved "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz" -+ integrity sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ== -+ dependencies: -+ glob "^7.1.6" -+ readable-stream "^3.6.0" -+ -+hexoid@^1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz" -+ integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== -+ -+hpagent@1.2.0: -+ version "1.2.0" -+ resolved "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz" -+ integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== -+ -+htmlparser2@^6.1.0: -+ version "6.1.0" -+ resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" -+ integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== -+ dependencies: -+ domelementtype "^2.0.1" -+ domhandler "^4.0.0" -+ domutils "^2.5.2" -+ entities "^2.0.0" -+ -+http-cache-semantics@^4.1.1: -+ 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== -+ -+http-errors@2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" -+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== -+ dependencies: -+ depd "2.0.0" -+ inherits "2.0.4" -+ setprototypeof "1.2.0" -+ statuses "2.0.1" -+ toidentifier "1.0.1" -+ -+http2-wrapper@^2.1.10: -+ version "2.2.1" -+ resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" -+ integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== -+ dependencies: -+ quick-lru "^5.1.1" -+ resolve-alpn "^1.2.0" -+ -+https-proxy-agent@^5.0.0, https-proxy-agent@5.0.1: -+ 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== -+ dependencies: -+ agent-base "6" -+ debug "4" -+ -+i18next@21.10.0: -+ version "21.10.0" -+ resolved "https://registry.npmjs.org/i18next/-/i18next-21.10.0.tgz" -+ integrity sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg== -+ dependencies: -+ "@babel/runtime" "^7.17.2" -+ -+iconv-lite@0.4.24: -+ version "0.4.24" -+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" -+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== -+ dependencies: -+ safer-buffer ">= 2.1.2 < 3" -+ -+iconv-lite@0.6.3: -+ version "0.6.3" -+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" -+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== -+ dependencies: -+ safer-buffer ">= 2.1.2 < 3.0.0" -+ -+ieee754@^1.1.13: -+ version "1.2.1" -+ resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" -+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -+ - ignore@^5.1.1, ignore@^5.2.0: - version "5.3.1" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" -@@ -1318,7 +3161,7 @@ inflight@^1.0.4: - once "^1.3.0" - wrappy "1" - --inherits@2: -+inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -@@ -1332,6 +3175,11 @@ internal-slot@^1.0.7: - hasown "^2.0.0" - side-channel "^1.0.4" - -+ipaddr.js@1.9.1: -+ 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== -+ - is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" -@@ -1347,6 +3195,13 @@ is-bigint@^1.0.1: - dependencies: - has-bigints "^1.0.1" - -+is-binary-path@~2.1.0: -+ version "2.1.0" -+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" -+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== -+ dependencies: -+ binary-extensions "^2.0.0" -+ - is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" -@@ -1386,7 +3241,12 @@ is-extglob@^2.1.1: - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - --is-glob@^4.0.0, is-glob@^4.0.3: -+is-fullwidth-code-point@^3.0.0: -+ 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== -+ -+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== -@@ -1405,11 +3265,21 @@ is-number-object@^1.0.4: - dependencies: - has-tostringtag "^1.0.0" - -+is-number@^7.0.0: -+ version "7.0.0" -+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" -+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -+ - is-path-inside@^3.0.3: - 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== - -+is-plain-obj@^2.1.0: -+ version "2.1.0" -+ resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" -+ integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -+ - is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" -@@ -1446,6 +3316,16 @@ is-typed-array@^1.1.13: - dependencies: - which-typed-array "^1.1.14" - -+is-unicode-supported@^0.1.0: -+ version "0.1.0" -+ resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" -+ integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -+ -+is-utf8@0.2.1: -+ version "0.2.1" -+ resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" -+ integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== -+ - is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" -@@ -1458,17 +3338,27 @@ isarray@^2.0.5: - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -+isarray@~1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" -+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -+ - isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -+js-sdsl@4.3.0: -+ version "4.3.0" -+ resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" -+ integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== -+ - js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - --js-yaml@^4.1.0: -+js-yaml@^4.1.0, js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== -@@ -1513,6 +3403,11 @@ jsesc@^2.5.1: - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -+jsesc@~0.5.0: -+ version "0.5.0" -+ resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" -+ integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -+ - json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" -@@ -1523,6 +3418,11 @@ json-schema-traverse@^0.4.1: - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -+json-schema-traverse@^1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" -+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -+ - json-schema@>=0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" -@@ -1533,6 +3433,11 @@ json-stable-stringify-without-jsonify@^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== - -+json-stringify-safe@^5.0.1, json-stringify-safe@5.0.1: -+ version "5.0.1" -+ resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" -+ integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -+ - json5@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" -@@ -1545,6 +3450,25 @@ json5@^2.2.3: - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -+jsonata@1.8.7: -+ version "1.8.7" -+ resolved "https://registry.npmjs.org/jsonata/-/jsonata-1.8.7.tgz" -+ integrity sha512-tOW2/hZ+nR2bcQZs+0T62LVe5CHaNa3laFFWb/262r39utN6whJGBF7IR2Wq1QXrDbhftolk5gggW8uUJYlBTQ== -+ -+jsonfile@^6.0.1: -+ version "6.1.0" -+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" -+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== -+ dependencies: -+ universalify "^2.0.0" -+ optionalDependencies: -+ graceful-fs "^4.1.6" -+ -+just-extend@^6.2.0: -+ version "6.2.0" -+ resolved "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz" -+ integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== -+ - keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" -@@ -1559,6 +3483,11 @@ klaw@^3.0.0: - dependencies: - graceful-fs "^4.1.9" - -+leven@^2.1.0: -+ version "2.1.0" -+ resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz" -+ integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== -+ - levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" -@@ -1581,6 +3510,21 @@ locate-path@^6.0.0: - dependencies: - p-locate "^5.0.0" - -+lodash.clonedeep@^4.5.0: -+ version "4.5.0" -+ resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" -+ integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== -+ -+lodash.debounce@^4.0.8: -+ version "4.0.8" -+ resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" -+ integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -+ -+lodash.get@^4.4.2: -+ version "4.4.2" -+ resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" -+ integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== -+ - lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" -@@ -1591,6 +3535,27 @@ lodash@^4.17.15, lodash@^4.17.21: - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -+log-symbols@4.1.0: -+ version "4.1.0" -+ resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" -+ integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== -+ dependencies: -+ chalk "^4.1.0" -+ is-unicode-supported "^0.1.0" -+ -+lowercase-keys@^3.0.0: -+ version "3.0.0" -+ resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" -+ integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -+ -+lru-cache@^4.0.3: -+ version "4.1.5" -+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" -+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== -+ dependencies: -+ pseudomap "^1.0.2" -+ yallist "^2.1.2" -+ - lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" -@@ -1598,6 +3563,20 @@ lru-cache@^5.1.1: - dependencies: - yallist "^3.0.2" - -+lru-cache@^6.0.0: -+ version "6.0.0" -+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" -+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== -+ dependencies: -+ yallist "^4.0.0" -+ -+make-dir@^3.1.0: -+ 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== -+ dependencies: -+ semver "^6.0.0" -+ - markdown-it-anchor@^8.6.7: - version "8.6.7" - resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" -@@ -1625,18 +3604,71 @@ mdurl@^2.0.0: - resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" - integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== - -+media-typer@0.3.0: -+ version "0.3.0" -+ resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" -+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -+ -+media-typer@1.1.0: -+ version "1.1.0" -+ resolved "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" -+ integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== -+ -+memorystore@1.6.7: -+ version "1.6.7" -+ resolved "https://registry.npmjs.org/memorystore/-/memorystore-1.6.7.tgz" -+ integrity sha512-OZnmNY/NDrKohPQ+hxp0muBcBKrzKNtHr55DbqSx9hLsYVNnomSAMRAtI7R64t3gf3ID7tHQA7mG4oL3Hu9hdw== -+ dependencies: -+ debug "^4.3.0" -+ lru-cache "^4.0.3" -+ -+merge-descriptors@1.0.1: -+ version "1.0.1" -+ resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" -+ integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== -+ -+methods@^1.1.2, methods@~1.1.2: -+ version "1.1.2" -+ resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" -+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -+ - mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - --mime-types@^2.1.12: -+mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~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== - dependencies: - mime-db "1.52.0" - -+mime@1.6.0: -+ version "1.6.0" -+ resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" -+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -+ -+mime@2.6.0: -+ version "2.6.0" -+ resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" -+ integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== -+ -+mime@3.0.0: -+ version "3.0.0" -+ resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" -+ integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== -+ -+mimic-response@^3.1.0: -+ version "3.1.0" -+ resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" -+ integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== -+ -+mimic-response@^4.0.0: -+ version "4.0.0" -+ resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" -+ integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== -+ - minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" -@@ -1644,36 +3676,320 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - dependencies: - brace-expansion "^1.1.7" - --minimist@^1.2.0, minimist@^1.2.6: -+minimatch@^5.0.1, minimatch@5.0.1: -+ version "5.0.1" -+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" -+ integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== -+ dependencies: -+ brace-expansion "^2.0.1" -+ -+minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - --mkdirp@^1.0.4: -+minipass@^3.0.0: -+ version "3.3.6" -+ resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" -+ integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== -+ dependencies: -+ yallist "^4.0.0" -+ -+minipass@^5.0.0: -+ version "5.0.0" -+ resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" -+ integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -+ -+minizlib@^2.1.1: -+ version "2.1.2" -+ resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" -+ integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== -+ dependencies: -+ minipass "^3.0.0" -+ yallist "^4.0.0" -+ -+mkdirp@^0.5.4: -+ version "0.5.6" -+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" -+ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== -+ dependencies: -+ minimist "^1.2.6" -+ -+mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -+mocha@^10.4.0: -+ version "10.4.0" -+ resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz" -+ integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== -+ dependencies: -+ ansi-colors "4.1.1" -+ browser-stdout "1.3.1" -+ chokidar "3.5.3" -+ debug "4.3.4" -+ diff "5.0.0" -+ escape-string-regexp "4.0.0" -+ find-up "5.0.0" -+ glob "8.1.0" -+ he "1.2.0" -+ js-yaml "4.1.0" -+ log-symbols "4.1.0" -+ minimatch "5.0.1" -+ ms "2.1.3" -+ serialize-javascript "6.0.0" -+ strip-json-comments "3.1.1" -+ supports-color "8.1.1" -+ workerpool "6.2.1" -+ yargs "16.2.0" -+ yargs-parser "20.2.4" -+ yargs-unparser "2.0.0" -+ -+moment-timezone@0.5.43: -+ version "0.5.43" -+ resolved "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz" -+ integrity sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ== -+ dependencies: -+ moment "^2.29.4" -+ -+moment@^2.29.4, moment@2.29.4: -+ version "2.29.4" -+ resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" -+ integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -+ -+mqtt-packet@^6.8.0: -+ version "6.10.0" -+ resolved "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz" -+ integrity sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA== -+ dependencies: -+ bl "^4.0.2" -+ debug "^4.1.1" -+ process-nextick-args "^2.0.1" -+ -+mqtt@4.3.7: -+ version "4.3.7" -+ resolved "https://registry.npmjs.org/mqtt/-/mqtt-4.3.7.tgz" -+ integrity sha512-ew3qwG/TJRorTz47eW46vZ5oBw5MEYbQZVaEji44j5lAUSQSqIEoul7Kua/BatBW0H0kKQcC9kwUHa1qzaWHSw== -+ dependencies: -+ commist "^1.0.0" -+ concat-stream "^2.0.0" -+ debug "^4.1.1" -+ duplexify "^4.1.1" -+ help-me "^3.0.0" -+ inherits "^2.0.3" -+ lru-cache "^6.0.0" -+ minimist "^1.2.5" -+ mqtt-packet "^6.8.0" -+ number-allocator "^1.0.9" -+ pump "^3.0.0" -+ readable-stream "^3.6.0" -+ reinterval "^1.1.0" -+ rfdc "^1.3.0" -+ split2 "^3.1.0" -+ ws "^7.5.5" -+ xtend "^4.0.2" -+ - ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - --ms@2.1.2: -- version "2.1.2" -- resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" -- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -+ms@2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" -+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -+ -+ms@2.1.2: -+ version "2.1.2" -+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" -+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -+ -+ms@2.1.3: -+ version "2.1.3" -+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" -+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -+ -+multer@1.4.5-lts.1: -+ version "1.4.5-lts.1" -+ resolved "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz" -+ integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== -+ dependencies: -+ append-field "^1.0.0" -+ busboy "^1.0.0" -+ concat-stream "^1.5.2" -+ mkdirp "^0.5.4" -+ object-assign "^4.1.1" -+ type-is "^1.6.4" -+ xtend "^4.0.0" -+ -+mustache@^4.2.0, mustache@4.2.0: -+ version "4.2.0" -+ resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" -+ integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== -+ -+mute-stream@~0.0.4: -+ version "0.0.8" -+ resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" -+ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -+ -+natural-compare@^1.4.0: -+ version "1.4.0" -+ resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" -+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -+ -+negotiator@0.6.3: -+ version "0.6.3" -+ resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" -+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -+ -+nise@^5.1.0: -+ version "5.1.9" -+ resolved "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz" -+ integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== -+ dependencies: -+ "@sinonjs/commons" "^3.0.0" -+ "@sinonjs/fake-timers" "^11.2.2" -+ "@sinonjs/text-encoding" "^0.7.2" -+ just-extend "^6.2.0" -+ path-to-regexp "^6.2.1" -+ -+nock@^13.5.4: -+ version "13.5.4" -+ resolved "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz" -+ integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== -+ dependencies: -+ debug "^4.1.0" -+ json-stringify-safe "^5.0.1" -+ propagate "^2.0.0" -+ -+node-addon-api@^5.0.0: -+ version "5.1.0" -+ resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" -+ integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== -+ -+node-fetch@^2.6.7: -+ version "2.7.0" -+ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" -+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== -+ dependencies: -+ whatwg-url "^5.0.0" - --natural-compare@^1.4.0: -- version "1.4.0" -- resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" -- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -+node-red-admin@^3.1.3: -+ version "3.1.3" -+ resolved "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz" -+ integrity sha512-RRkjwLjriCKW3bqiU21y3j+wpZ4bDf2EH3IEqxwP6hT4ccIwEK8Nt9dPZRWD6NyWGbEVDSTM5H0/whaRdFCqSw== -+ dependencies: -+ ansi-colors "^4.1.3" -+ axios "^1.6.8" -+ bcryptjs "^2.4.3" -+ cli-table "^0.3.11" -+ enquirer "^2.3.6" -+ minimist "^1.2.8" -+ mustache "^4.2.0" -+ read "^1.0.7" -+ optionalDependencies: -+ bcrypt "5.1.1" -+ -+node-red-node-test-helper@^0.3.4: -+ version "0.3.4" -+ resolved "https://registry.npmjs.org/node-red-node-test-helper/-/node-red-node-test-helper-0.3.4.tgz" -+ integrity sha512-OFXGEkKZpLkgoijAgpUIjzn5RF8QnbwPX9RjfI2LWXq1ACfeXkXcW0i1ioiphrokdE3MiWQJtH5omLNnSNdyaQ== -+ dependencies: -+ body-parser "^1.20.2" -+ express "^4.19.2" -+ semver "^7.5.4" -+ should "^13.2.3" -+ should-sinon "^0.0.6" -+ sinon "^11.1.2" -+ stoppable "^1.1.0" -+ supertest "^7.0.0" -+ -+node-red@^3.1.9: -+ version "3.1.9" -+ resolved "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz" -+ integrity sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw== -+ dependencies: -+ "@node-red/editor-api" "3.1.9" -+ "@node-red/nodes" "3.1.9" -+ "@node-red/runtime" "3.1.9" -+ "@node-red/util" "3.1.9" -+ basic-auth "2.0.1" -+ bcryptjs "2.4.3" -+ express "4.19.2" -+ fs-extra "11.1.1" -+ node-red-admin "^3.1.3" -+ nopt "5.0.0" -+ semver "7.5.4" -+ optionalDependencies: -+ bcrypt "5.1.0" - - node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - -+node-watch@0.7.4: -+ version "0.7.4" -+ resolved "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz" -+ integrity sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ== -+ -+nopt@^5.0.0, nopt@5.0.0: -+ version "5.0.0" -+ resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" -+ integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== -+ dependencies: -+ abbrev "1" -+ -+normalize-path@^3.0.0, normalize-path@~3.0.0: -+ version "3.0.0" -+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" -+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -+ -+normalize-url@^8.0.0: -+ version "8.0.1" -+ resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" -+ integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== -+ -+npmlog@^5.0.1: -+ version "5.0.1" -+ resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" -+ integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== -+ dependencies: -+ are-we-there-yet "^2.0.0" -+ console-control-strings "^1.1.0" -+ gauge "^3.0.0" -+ set-blocking "^2.0.0" -+ -+nth-check@^2.0.1: -+ 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== -+ dependencies: -+ boolbase "^1.0.0" -+ -+number-allocator@^1.0.9: -+ version "1.0.14" -+ resolved "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz" -+ integrity sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA== -+ dependencies: -+ debug "^4.3.1" -+ js-sdsl "4.3.0" -+ -+oauth2orize@1.11.1: -+ version "1.11.1" -+ resolved "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz" -+ integrity sha512-9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA== -+ dependencies: -+ debug "2.x.x" -+ uid2 "0.0.x" -+ utils-merge "1.x.x" -+ -+object-assign@^4, object-assign@^4.1.1: -+ version "4.1.1" -+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" -+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -+ - object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" -@@ -1722,7 +4038,19 @@ object.values@^1.1.7: - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - --once@^1.3.0: -+on-finished@2.4.1: -+ version "2.4.1" -+ resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" -+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== -+ dependencies: -+ ee-first "1.1.1" -+ -+on-headers@~1.0.2, on-headers@1.0.2: -+ 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== -+ -+once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== -@@ -1741,6 +4069,11 @@ optionator@^0.9.3: - type-check "^0.4.0" - word-wrap "^1.2.5" - -+p-cancelable@^3.0.0: -+ version "3.0.0" -+ resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" -+ integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== -+ - p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" -@@ -1762,6 +4095,51 @@ parent-module@^1.0.0: - dependencies: - callsites "^3.0.0" - -+parse5-htmlparser2-tree-adapter@^6.0.1: -+ version "6.0.1" -+ resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" -+ integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== -+ dependencies: -+ parse5 "^6.0.1" -+ -+parse5@^6.0.1: -+ version "6.0.1" -+ resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" -+ integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -+ -+parseurl@~1.3.3: -+ version "1.3.3" -+ resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" -+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -+ -+passport-http-bearer@1.0.1: -+ version "1.0.1" -+ resolved "https://registry.npmjs.org/passport-http-bearer/-/passport-http-bearer-1.0.1.tgz" -+ integrity sha512-SELQM+dOTuMigr9yu8Wo4Fm3ciFfkMq5h/ZQ8ffi4ELgZrX1xh9PlglqZdcUZ1upzJD/whVyt+YWF62s3U6Ipw== -+ dependencies: -+ passport-strategy "1.x.x" -+ -+passport-oauth2-client-password@0.1.2: -+ version "0.1.2" -+ resolved "https://registry.npmjs.org/passport-oauth2-client-password/-/passport-oauth2-client-password-0.1.2.tgz" -+ integrity sha512-GHQH4UtaEZvCLulAxGKHYoSsPRoPRmGsdmaZtMh5nmz80yMLQbdMA9Bg2sp4/UW3PIxJH/143hVjPTiXaNngTQ== -+ dependencies: -+ passport-strategy "1.x.x" -+ -+passport-strategy@1.x.x: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz" -+ integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== -+ -+passport@0.6.0: -+ version "0.6.0" -+ resolved "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz" -+ integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== -+ dependencies: -+ passport-strategy "1.x.x" -+ pause "0.0.1" -+ utils-merge "^1.0.1" -+ - path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" -@@ -1782,11 +4160,31 @@ path-parse@^1.0.7: - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -+path-to-regexp@^6.2.1: -+ version "6.2.2" -+ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz" -+ integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== -+ -+path-to-regexp@0.1.7: -+ version "0.1.7" -+ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" -+ integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -+ -+pause@0.0.1: -+ version "0.0.1" -+ resolved "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz" -+ integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== -+ - picocolors@^1.0.0, picocolors@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== - -+picomatch@^2.0.4, picomatch@^2.2.1: -+ version "2.3.1" -+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" -+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -+ - possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" -@@ -1809,26 +4207,171 @@ prettier@^2.8.8, prettier@>=2.0.0: - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -+process-nextick-args@^2.0.1, process-nextick-args@~2.0.0: -+ 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== -+ -+propagate@^2.0.0: -+ version "2.0.1" -+ resolved "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz" -+ integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== -+ -+proxy-addr@~2.0.7: -+ 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== -+ dependencies: -+ forwarded "0.2.0" -+ ipaddr.js "1.9.1" -+ - proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -+pseudomap@^1.0.2: -+ version "1.0.2" -+ resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" -+ integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== -+ -+psl@^1.1.33: -+ version "1.9.0" -+ resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" -+ integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -+ -+pump@^3.0.0: -+ version "3.0.0" -+ resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" -+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== -+ dependencies: -+ end-of-stream "^1.1.0" -+ once "^1.3.1" -+ - punycode.js@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" - integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== - --punycode@^2.1.0: -+punycode@^2.1.0, punycode@^2.1.1: - version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -+qs@^6.11.0, qs@6.11.0: -+ version "6.11.0" -+ resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" -+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== -+ dependencies: -+ side-channel "^1.0.4" -+ -+querystringify@^2.1.1: -+ version "2.2.0" -+ resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" -+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -+ - queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -+quick-lru@^5.1.1: -+ version "5.1.1" -+ resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" -+ integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -+ -+rambda@^7.4.0: -+ version "7.5.0" -+ resolved "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz" -+ integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== -+ -+random-bytes@~1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz" -+ integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== -+ -+randombytes@^2.1.0: -+ version "2.1.0" -+ resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" -+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== -+ dependencies: -+ safe-buffer "^5.1.0" -+ -+range-parser@~1.2.1: -+ version "1.2.1" -+ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" -+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -+ -+raw-body@2.5.2: -+ 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== -+ dependencies: -+ bytes "3.1.2" -+ http-errors "2.0.0" -+ iconv-lite "0.4.24" -+ unpipe "1.0.0" -+ -+read@^1.0.7: -+ version "1.0.7" -+ resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" -+ integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== -+ dependencies: -+ mute-stream "~0.0.4" -+ -+readable-stream@^2.2.2: -+ version "2.3.8" -+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" -+ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== -+ dependencies: -+ core-util-is "~1.0.0" -+ inherits "~2.0.3" -+ isarray "~1.0.0" -+ process-nextick-args "~2.0.0" -+ safe-buffer "~5.1.1" -+ string_decoder "~1.1.1" -+ util-deprecate "~1.0.1" -+ -+readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^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== -+ dependencies: -+ inherits "^2.0.3" -+ string_decoder "^1.1.1" -+ util-deprecate "^1.0.1" -+ -+readdirp@~3.6.0: -+ version "3.6.0" -+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" -+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== -+ dependencies: -+ picomatch "^2.2.1" -+ -+regenerate-unicode-properties@^10.1.0: -+ version "10.1.1" -+ resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" -+ integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== -+ dependencies: -+ regenerate "^1.4.2" -+ -+regenerate@^1.4.2: -+ version "1.4.2" -+ resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" -+ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -+ -+regenerator-runtime@^0.14.0: -+ version "0.14.1" -+ resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" -+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -+ -+regenerator-transform@^0.15.2: -+ version "0.15.2" -+ resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" -+ integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== -+ dependencies: -+ "@babel/runtime" "^7.8.4" -+ - regexp.prototype.flags@^1.5.2: - version "1.5.2" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz" -@@ -1844,6 +4387,45 @@ regexpp@^3.0.0: - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -+regexpu-core@^5.3.1: -+ version "5.3.2" -+ resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" -+ integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== -+ dependencies: -+ "@babel/regjsgen" "^0.8.0" -+ regenerate "^1.4.2" -+ regenerate-unicode-properties "^10.1.0" -+ regjsparser "^0.9.1" -+ unicode-match-property-ecmascript "^2.0.0" -+ unicode-match-property-value-ecmascript "^2.1.0" -+ -+regjsparser@^0.9.1: -+ version "0.9.1" -+ resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" -+ integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== -+ dependencies: -+ jsesc "~0.5.0" -+ -+reinterval@^1.1.0: -+ version "1.1.0" -+ resolved "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz" -+ integrity sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ== -+ -+require-directory@^2.1.1: -+ 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== -+ -+require-from-string@^2.0.2: -+ 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== -+ -+requires-port@^1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" -+ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -+ - requizzle@^0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz" -@@ -1851,12 +4433,17 @@ requizzle@^0.2.3: - dependencies: - lodash "^4.17.21" - -+resolve-alpn@^1.2.0: -+ version "1.2.1" -+ resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" -+ integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== -+ - resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - --resolve@^1.22.1, resolve@^1.22.4: -+resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== -@@ -1865,11 +4452,23 @@ resolve@^1.22.1, resolve@^1.22.4: - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -+responselike@^3.0.0: -+ version "3.0.0" -+ resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" -+ integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== -+ dependencies: -+ lowercase-keys "^3.0.0" -+ - reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -+rfdc@^1.3.0: -+ version "1.3.1" -+ resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz" -+ integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== -+ - rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" -@@ -1894,6 +4493,21 @@ safe-array-concat@^1.1.2: - has-symbols "^1.0.3" - isarray "^2.0.5" - -+safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2: -+ version "5.1.2" -+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" -+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -+ -+safe-buffer@~5.2.0: -+ version "5.2.1" -+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" -+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -+ -+safe-buffer@5.2.1: -+ version "5.2.1" -+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" -+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -+ - safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" -@@ -1903,16 +4517,79 @@ safe-regex-test@^1.0.3: - es-errors "^1.3.0" - is-regex "^1.1.4" - -+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": -+ version "2.1.2" -+ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" -+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -+ -+sax@>=0.6.0: -+ version "1.3.0" -+ resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" -+ integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== -+ -+semver@^6.0.0: -+ version "6.3.1" -+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" -+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -+ - semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - --semver@^7.0.0, semver@^7.3.8, semver@^7.5.1: -+semver@^7.0.0, semver@^7.3.5, semver@^7.3.8, semver@^7.5.1, semver@^7.5.4: - version "7.6.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -+semver@7.5.4: -+ version "7.5.4" -+ resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" -+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== -+ dependencies: -+ lru-cache "^6.0.0" -+ -+send@0.18.0: -+ version "0.18.0" -+ resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" -+ integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== -+ dependencies: -+ debug "2.6.9" -+ depd "2.0.0" -+ destroy "1.2.0" -+ encodeurl "~1.0.2" -+ escape-html "~1.0.3" -+ etag "~1.8.1" -+ fresh "0.5.2" -+ http-errors "2.0.0" -+ mime "1.6.0" -+ ms "2.1.3" -+ on-finished "2.4.1" -+ range-parser "~1.2.1" -+ statuses "2.0.1" -+ -+serialize-javascript@6.0.0: -+ version "6.0.0" -+ resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" -+ integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== -+ dependencies: -+ randombytes "^2.1.0" -+ -+serve-static@1.15.0: -+ version "1.15.0" -+ resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" -+ integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== -+ dependencies: -+ encodeurl "~1.0.2" -+ escape-html "~1.0.3" -+ parseurl "~1.3.3" -+ send "0.18.0" -+ -+set-blocking@^2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" -+ integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -+ - set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" -@@ -1935,6 +4612,11 @@ set-function-name@^2.0.1: - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -+setprototypeof@1.2.0: -+ version "1.2.0" -+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" -+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -+ - shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" -@@ -1947,6 +4629,55 @@ shebang-regex@^3.0.0: - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -+should-equal@^2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz" -+ integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== -+ dependencies: -+ should-type "^1.4.0" -+ -+should-format@^3.0.3: -+ version "3.0.3" -+ resolved "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz" -+ integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== -+ dependencies: -+ should-type "^1.3.0" -+ should-type-adaptors "^1.0.1" -+ -+should-sinon@^0.0.6: -+ version "0.0.6" -+ resolved "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz" -+ integrity sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g== -+ -+should-type-adaptors@^1.0.1: -+ version "1.1.0" -+ resolved "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz" -+ integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== -+ dependencies: -+ should-type "^1.3.0" -+ should-util "^1.0.0" -+ -+should-type@^1.3.0, should-type@^1.4.0: -+ version "1.4.0" -+ resolved "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz" -+ integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== -+ -+should-util@^1.0.0: -+ version "1.0.1" -+ resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz" -+ integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== -+ -+should@^13.2.3, "should@>= 8.x": -+ version "13.2.3" -+ resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz" -+ integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== -+ dependencies: -+ should-equal "^2.0.0" -+ should-format "^3.0.3" -+ should-type "^1.4.0" -+ should-type-adaptors "^1.0.1" -+ should-util "^1.0.0" -+ - side-channel@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" -@@ -1957,6 +4688,23 @@ side-channel@^1.0.4: - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -+signal-exit@^3.0.0: -+ version "3.0.7" -+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" -+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -+ -+sinon@^11.1.2: -+ version "11.1.2" -+ resolved "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz" -+ integrity sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw== -+ dependencies: -+ "@sinonjs/commons" "^1.8.3" -+ "@sinonjs/fake-timers" "^7.1.2" -+ "@sinonjs/samsam" "^6.0.2" -+ diff "^5.0.0" -+ nise "^5.1.0" -+ supports-color "^7.2.0" -+ - spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz" -@@ -1975,6 +4723,56 @@ spdx-license-ids@^3.0.0: - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz" - integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== - -+split2@^3.1.0: -+ version "3.2.2" -+ resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" -+ integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== -+ dependencies: -+ readable-stream "^3.0.0" -+ -+statuses@2.0.1: -+ version "2.0.1" -+ resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" -+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -+ -+stoppable@^1.1.0: -+ version "1.1.0" -+ resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz" -+ integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== -+ -+stream-shift@^1.0.2: -+ version "1.0.3" -+ resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz" -+ integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== -+ -+streamsearch@^1.1.0: -+ version "1.1.0" -+ resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" -+ integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -+ -+string_decoder@^1.1.1: -+ 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== -+ dependencies: -+ safe-buffer "~5.2.0" -+ -+string_decoder@~1.1.1: -+ version "1.1.1" -+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" -+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== -+ dependencies: -+ safe-buffer "~5.1.0" -+ -+"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: -+ version "4.2.3" -+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" -+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== -+ dependencies: -+ emoji-regex "^8.0.0" -+ is-fullwidth-code-point "^3.0.0" -+ strip-ansi "^6.0.1" -+ - string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" -@@ -2003,7 +4801,7 @@ string.prototype.trimstart@^1.0.8: - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - --strip-ansi@^6.0.1: -+strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== -@@ -2015,11 +4813,34 @@ strip-bom@^3.0.0: - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - --strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: -+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@3.1.1: - 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== - -+superagent@^9.0.1: -+ version "9.0.2" -+ resolved "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz" -+ integrity sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w== -+ dependencies: -+ component-emitter "^1.3.0" -+ cookiejar "^2.1.4" -+ debug "^4.3.4" -+ fast-safe-stringify "^2.1.1" -+ form-data "^4.0.0" -+ formidable "^3.5.1" -+ methods "^1.1.2" -+ mime "2.6.0" -+ qs "^6.11.0" -+ -+supertest@^7.0.0: -+ version "7.0.0" -+ resolved "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz" -+ integrity sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA== -+ dependencies: -+ methods "^1.1.2" -+ superagent "^9.0.1" -+ - supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" -@@ -2027,18 +4848,37 @@ supports-color@^5.3.0: - dependencies: - has-flag "^3.0.0" - --supports-color@^7.1.0: -+supports-color@^7.1.0, supports-color@^7.2.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== - dependencies: - has-flag "^4.0.0" - -+supports-color@8.1.1: -+ version "8.1.1" -+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" -+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== -+ dependencies: -+ has-flag "^4.0.0" -+ - supports-preserve-symlinks-flag@^1.0.0: - 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== - -+tar@^6.1.11, tar@6.2.1: -+ version "6.2.1" -+ resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" -+ integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== -+ dependencies: -+ chownr "^2.0.0" -+ fs-minipass "^2.0.0" -+ minipass "^5.0.0" -+ minizlib "^2.1.1" -+ mkdirp "^1.0.3" -+ yallist "^4.0.0" -+ - text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" -@@ -2049,6 +4889,33 @@ to-fast-properties@^2.0.0: - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -+to-regex-range@^5.0.1: -+ 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== -+ dependencies: -+ is-number "^7.0.0" -+ -+toidentifier@1.0.1: -+ version "1.0.1" -+ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" -+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -+ -+tough-cookie@4.1.3: -+ version "4.1.3" -+ resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" -+ integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== -+ dependencies: -+ psl "^1.1.33" -+ punycode "^2.1.1" -+ universalify "^0.2.0" -+ url-parse "^1.5.3" -+ -+tr46@~0.0.3: -+ version "0.0.3" -+ resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" -+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -+ - tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" -@@ -2059,6 +4926,11 @@ tsconfig-paths@^3.15.0: - minimist "^1.2.6" - strip-bom "^3.0.0" - -+tslib@^2.2.0, tslib@^2.4.0: -+ version "2.6.2" -+ resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" -+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -+ - type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" -@@ -2066,11 +4938,24 @@ type-check@^0.4.0, type-check@~0.4.0: - dependencies: - prelude-ls "^1.2.1" - -+type-detect@^4.0.8, type-detect@4.0.8: -+ version "4.0.8" -+ resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" -+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -+ - type-fest@^0.20.2: - 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== - -+type-is@^1.6.4, type-is@~1.6.18: -+ version "1.6.18" -+ resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" -+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== -+ dependencies: -+ media-typer "0.3.0" -+ mime-types "~2.1.24" -+ - typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" -@@ -2115,11 +5000,33 @@ typed-array-length@^1.0.6: - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - -+typedarray@^0.0.6: -+ version "0.0.6" -+ resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" -+ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -+ - uc.micro@^2.0.0, uc.micro@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" - integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== - -+uglify-js@3.17.4: -+ version "3.17.4" -+ resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" -+ integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -+ -+uid-safe@~2.1.5: -+ version "2.1.5" -+ resolved "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz" -+ integrity sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA== -+ dependencies: -+ random-bytes "~1.0.0" -+ -+uid2@0.0.x: -+ version "0.0.4" -+ resolved "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz" -+ integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA== -+ - unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" -@@ -2135,6 +5042,44 @@ underscore@~1.13.2: - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" - integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== - -+unicode-canonical-property-names-ecmascript@^2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" -+ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -+ -+unicode-match-property-ecmascript@^2.0.0: -+ 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== -+ dependencies: -+ unicode-canonical-property-names-ecmascript "^2.0.0" -+ unicode-property-aliases-ecmascript "^2.0.0" -+ -+unicode-match-property-value-ecmascript@^2.1.0: -+ version "2.1.0" -+ resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" -+ integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== -+ -+unicode-property-aliases-ecmascript@^2.0.0: -+ 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== -+ -+universalify@^0.2.0: -+ version "0.2.0" -+ resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" -+ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== -+ -+universalify@^2.0.0: -+ version "2.0.1" -+ resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" -+ integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -+ -+unpipe@~1.0.0, unpipe@1.0.0: -+ version "1.0.0" -+ resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" -+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -+ - update-browserslist-db@^1.0.13: - version "1.0.16" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz" -@@ -2150,6 +5095,47 @@ uri-js@^4.2.2: - dependencies: - punycode "^2.1.0" - -+url-parse@^1.5.3: -+ version "1.5.10" -+ resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" -+ integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== -+ dependencies: -+ querystringify "^2.1.1" -+ requires-port "^1.0.0" -+ -+util-deprecate@^1.0.1, util-deprecate@~1.0.1: -+ version "1.0.2" -+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" -+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -+ -+utils-merge@^1.0.1, utils-merge@1.0.1, utils-merge@1.x.x: -+ version "1.0.1" -+ resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" -+ integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -+ -+uuid@9.0.0: -+ version "9.0.0" -+ resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" -+ integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== -+ -+vary@^1, vary@~1.1.2: -+ version "1.1.2" -+ resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" -+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -+ -+webidl-conversions@^3.0.0: -+ version "3.0.1" -+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" -+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -+ -+whatwg-url@^5.0.0: -+ version "5.0.0" -+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" -+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== -+ dependencies: -+ tr46 "~0.0.3" -+ webidl-conversions "^3.0.0" -+ - which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" -@@ -2179,26 +5165,113 @@ which@^2.0.1: - dependencies: - isexe "^2.0.0" - -+wide-align@^1.1.2: -+ version "1.1.5" -+ resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" -+ integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== -+ dependencies: -+ string-width "^1.0.2 || 2 || 3 || 4" -+ - word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -+workerpool@6.2.1: -+ version "6.2.1" -+ resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" -+ integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -+ -+wrap-ansi@^7.0.0: -+ version "7.0.0" -+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" -+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== -+ dependencies: -+ ansi-styles "^4.0.0" -+ string-width "^4.1.0" -+ strip-ansi "^6.0.0" -+ - wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -+ws@^7.5.5, ws@7.5.6: -+ version "7.5.6" -+ resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" -+ integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== -+ -+xml2js@0.6.2: -+ version "0.6.2" -+ resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz" -+ integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== -+ dependencies: -+ sax ">=0.6.0" -+ xmlbuilder "~11.0.0" -+ -+xmlbuilder@~11.0.0: -+ version "11.0.1" -+ resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" -+ integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -+ - xmlcreate@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz" - integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== - -+xtend@^4.0.0, xtend@^4.0.2: -+ version "4.0.2" -+ resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" -+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -+ -+y18n@^5.0.5: -+ version "5.0.8" -+ resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" -+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -+ -+yallist@^2.1.2: -+ version "2.1.2" -+ resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" -+ integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== -+ - yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -+yallist@^4.0.0: -+ version "4.0.0" -+ resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" -+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -+ -+yargs-parser@^20.2.2, yargs-parser@20.2.4: -+ version "20.2.4" -+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" -+ integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -+ -+yargs-unparser@2.0.0: -+ version "2.0.0" -+ resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" -+ integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== -+ dependencies: -+ camelcase "^6.0.0" -+ decamelize "^4.0.0" -+ flat "^5.0.2" -+ is-plain-obj "^2.1.0" -+ -+yargs@16.2.0: -+ version "16.2.0" -+ resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" -+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== -+ 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" -+ - yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" From ab155698a1a91e83fbbe235ad94a49c2e2f9532e Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Thu, 23 May 2024 00:53:25 -0300 Subject: [PATCH 3/8] Update dependencies and refactor OAuth2 node - Updated the `oauth2.js` node to handle additional edge cases and improve error handling. - Refactored `logger.js` for better readability and consistency. - Added new test cases in `oauth2_spec.js` to cover more scenarios and ensure robustness. - Removed unused dependencies and cleaned up `package.json` and `yarn.lock` files. - Adjusted the `package.json` scripts to include a new `coverage` script for test coverage reporting. --- .eslintrc.yml | 2 +- .prettierrc | 5 +- package-lock.json | 1249 +++++++++++++-------------- package.json | 8 +- src/locales/en-US/oauth2.html | 264 +++--- src/logger.js | 96 +++ src/oauth2.html | 832 +++++++++--------- src/oauth2.js | 624 +++++++------- test/oauth2_spec.js | 1505 ++++++++++++++++++++++++--------- yarn.lock | 131 ++- 10 files changed, 2781 insertions(+), 1935 deletions(-) create mode 100644 src/logger.js diff --git a/.eslintrc.yml b/.eslintrc.yml index 4bfe8d6..5d52750 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -14,7 +14,7 @@ parserOptions: rules: indent: - error - - 2 + - 3 linebreak-style: - error - unix diff --git a/.prettierrc b/.prettierrc index f7267d2..ecbc1a5 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,11 +1,12 @@ { "useTabs": false, + "tabWidth": 3, "singleQuote": true, "trailingComma": "none", "semi": true, "printWidth": 250, "pluginSearchDirs": [ - "." + "." ], "overrides": [] -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index c16e217..5b4f8ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -103,29 +103,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/eslint-parser": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz", @@ -144,26 +121,6 @@ "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", @@ -220,15 +177,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz", @@ -252,15 +200,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", @@ -278,15 +217,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", @@ -542,77 +472,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", @@ -1071,15 +930,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", @@ -1811,15 +1661,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", @@ -1888,16 +1729,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", @@ -1917,7 +1748,6 @@ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", "dev": true, - "license": "MIT", "dependencies": { "comment-parser": "1.3.1", "esquery": "^1.5.0", @@ -1932,7 +1762,6 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -1943,12 +1772,23 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { "version": "4.10.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -1958,7 +1798,6 @@ "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", @@ -1977,12 +1816,26 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -1992,7 +1845,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -2007,7 +1859,6 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2020,8 +1871,7 @@ "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==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", @@ -2109,40 +1959,28 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, - "license": "MIT", "dependencies": { "eslint-scope": "5.1.1" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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/@nicolo-ribaudo/eslint-scope-5-internals/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/@node-red/editor-api": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.9.tgz", @@ -2332,7 +2170,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2346,7 +2183,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } @@ -2356,7 +2192,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2434,8 +2269,7 @@ "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/linkify-it": { "version": "5.0.0", @@ -2463,8 +2297,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/abbrev": { "version": "1.1.1", @@ -2490,7 +2323,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -2503,7 +2335,6 @@ "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" } @@ -2534,7 +2365,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", @@ -2558,24 +2388,20 @@ "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": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/anymatch": { @@ -2608,7 +2434,6 @@ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "dev": true, - "license": "MIT", "engines": { "node": ">=14" } @@ -2631,15 +2456,13 @@ "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==", - "license": "Python-2.0" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" @@ -2662,7 +2485,6 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -2683,7 +2505,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -2704,7 +2525,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -2723,7 +2543,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -2742,7 +2561,6 @@ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, - "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.5", @@ -2778,15 +2596,13 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "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": { "possible-typed-array-names": "^1.0.0" }, @@ -2801,7 +2617,6 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", - "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -2822,15 +2637,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", @@ -2859,8 +2665,7 @@ "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==", - "license": "MIT" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -3005,7 +2810,6 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3094,11 +2898,22 @@ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^7.0.0" } }, + "node_modules/builtins/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/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -3152,7 +2967,6 @@ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -3172,7 +2986,6 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -3221,19 +3034,17 @@ } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, "node_modules/cheerio": { @@ -3351,22 +3162,19 @@ } }, "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, "node_modules/color-support": { "version": "1.1.3", @@ -3391,7 +3199,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -3404,7 +3211,6 @@ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 12.0.0" } @@ -3432,8 +3238,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/concat-stream": { "version": "2.0.0", @@ -3594,7 +3399,6 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3637,7 +3441,6 @@ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -3655,7 +3458,6 @@ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -3673,7 +3475,6 @@ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -3690,7 +3491,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -3745,8 +3545,7 @@ "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" + "dev": true }, "node_modules/defer-to-connect": { "version": "2.0.1", @@ -3762,7 +3561,6 @@ "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": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -3780,7 +3578,6 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -3797,7 +3594,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -3866,16 +3662,15 @@ } }, "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "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": { "esutils": "^2.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, "node_modules/dom-serializer": { @@ -4019,7 +3814,6 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, - "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "arraybuffer.prototype.slice": "^1.0.3", @@ -4080,7 +3874,6 @@ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -4093,7 +3886,6 @@ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4103,7 +3895,6 @@ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -4116,7 +3907,6 @@ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4", "has-tostringtag": "^1.0.2", @@ -4131,7 +3921,6 @@ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.0" } @@ -4141,7 +3930,6 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -4169,15 +3957,12 @@ "dev": true }, "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/eslint": { @@ -4240,7 +4025,6 @@ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, - "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -4267,7 +4051,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "engines": { "node": ">=12.0.0" }, @@ -4283,7 +4066,6 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -4295,24 +4077,15 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/eslint-module-utils": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -4330,24 +4103,15 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/eslint-plugin-es": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, - "license": "MIT", "dependencies": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" @@ -4367,7 +4131,6 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -4383,7 +4146,6 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=4" } @@ -4393,7 +4155,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -4425,26 +4186,20 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/eslint-plugin-jsdoc": { @@ -4452,7 +4207,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.39.4", "are-docs-informative": "^0.0.2", @@ -4470,6 +4224,30 @@ "eslint": "^7.0.0 || ^8.0.0" } }, + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-jsdoc/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/eslint-plugin-mocha": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz", @@ -4487,12 +4265,26 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-plugin-mocha/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint-plugin-n": { "version": "15.7.0", "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", "dev": true, - "license": "MIT", "dependencies": { "builtins": "^5.0.1", "eslint-plugin-es": "^4.1.0", @@ -4513,12 +4305,23 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-plugin-n/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/eslint-plugin-prettier": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", "dev": true, - "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -4540,7 +4343,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", "dev": true, - "license": "ISC", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4549,20 +4351,16 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "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": "^5.2.0" + "estraverse": "^4.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8.0.0" } }, "node_modules/eslint-utils": { @@ -4570,7 +4368,6 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -4584,92 +4381,225 @@ "eslint": ">=5" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10" } }, - "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": "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/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/eslint/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": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10" + "node": ">=7.0.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "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, "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/eslint/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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { "node": ">=4.0" } }, - "node_modules/estraverse": { + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "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, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, "engines": { "node": ">=4.0" } @@ -4679,7 +4609,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -4846,29 +4775,25 @@ "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" + "dev": true }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "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" + "dev": true }, "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" + "dev": true }, "node_modules/fast-safe-stringify": { "version": "2.1.1", @@ -4881,7 +4806,6 @@ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -4891,7 +4815,6 @@ "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": { "flat-cache": "^3.0.4" }, @@ -4947,7 +4870,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4972,7 +4894,6 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -4986,8 +4907,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/follow-redirects": { "version": "1.15.6", @@ -4999,7 +4919,6 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -5014,7 +4933,6 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } @@ -5023,7 +4941,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5121,8 +5038,7 @@ "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==", - "license": "ISC" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -5142,7 +5058,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5152,7 +5067,6 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5171,7 +5085,6 @@ "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": { "url": "https://github.com/sponsors/ljharb" } @@ -5221,7 +5134,6 @@ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -5253,7 +5165,6 @@ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "es-errors": "^1.3.0", @@ -5267,21 +5178,18 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "license": "ISC", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "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" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5292,7 +5200,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -5300,20 +5207,32 @@ "node": ">=10.13.0" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", + "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==", "dependencies": { - "type-fest": "^0.20.2" + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/globalthis": { @@ -5321,7 +5240,6 @@ "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.2.1", "gopd": "^1.0.1" @@ -5338,7 +5256,6 @@ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -5381,26 +5298,24 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/has-property-descriptors": { @@ -5408,7 +5323,6 @@ "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": { "es-define-property": "^1.0.0" }, @@ -5421,7 +5335,6 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5434,7 +5347,6 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5447,7 +5359,6 @@ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -5476,7 +5387,6 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5502,6 +5412,26 @@ "readable-stream": "^3.6.0" } }, + "node_modules/help-me/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/hexoid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", @@ -5656,7 +5586,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -5666,7 +5595,6 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5683,7 +5611,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -5692,7 +5619,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5701,15 +5627,13 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, - "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", @@ -5733,7 +5657,6 @@ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" @@ -5750,7 +5673,6 @@ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -5774,7 +5696,6 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -5791,7 +5712,6 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5804,7 +5724,6 @@ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -5817,7 +5736,6 @@ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "license": "MIT", "dependencies": { "is-typed-array": "^1.1.13" }, @@ -5833,7 +5751,6 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5848,7 +5765,6 @@ "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" } @@ -5865,7 +5781,6 @@ "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" }, @@ -5878,7 +5793,6 @@ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5899,7 +5813,6 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5915,7 +5828,6 @@ "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" } @@ -5933,7 +5845,6 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -5950,7 +5861,6 @@ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7" }, @@ -5966,7 +5876,6 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -5982,7 +5891,6 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -5998,7 +5906,6 @@ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" }, @@ -6031,7 +5938,6 @@ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -6043,15 +5949,13 @@ "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" + "dev": true }, "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" + "dev": true }, "node_modules/js-sdsl": { "version": "4.3.0", @@ -6073,7 +5977,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -6124,7 +6027,6 @@ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.0.0" } @@ -6155,29 +6057,25 @@ "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" + "dev": true }, "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)" + "dev": true }, "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" + "dev": true }, "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" + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -6186,16 +6084,16 @@ "dev": true }, "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==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, + "peer": true, "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/jsonata": { @@ -6230,7 +6128,6 @@ "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" } @@ -6258,7 +6155,6 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -6280,7 +6176,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -6319,22 +6214,85 @@ "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" + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/lowercase-keys": { @@ -6374,16 +6332,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -6498,7 +6446,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6507,7 +6454,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -6532,7 +6478,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6545,7 +6490,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6644,22 +6588,23 @@ "balanced-match": "^1.0.0" } }, - "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" } }, "node_modules/mocha/node_modules/minimatch": { @@ -6778,8 +6723,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multer": { "version": "1.4.5-lts.1", @@ -6875,8 +6819,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/negotiator": { "version": "0.6.3", @@ -7063,6 +7006,18 @@ "node": ">=14" } }, + "node_modules/node-red-node-test-helper/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/node-red/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -7229,7 +7184,6 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7239,7 +7193,6 @@ "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" } @@ -7249,7 +7202,6 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -7268,7 +7220,6 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -7287,7 +7238,6 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -7302,7 +7252,6 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -7340,7 +7289,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", "dependencies": { "wrappy": "1" } @@ -7350,7 +7298,6 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -7376,7 +7323,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7391,7 +7337,6 @@ "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==", - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -7407,7 +7352,6 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -7494,7 +7438,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", "engines": { "node": ">=8" } @@ -7504,7 +7447,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7514,7 +7456,6 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -7523,8 +7464,7 @@ "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" + "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -7560,7 +7500,6 @@ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } @@ -7570,7 +7509,6 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -7595,7 +7533,6 @@ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -7634,8 +7571,7 @@ "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==", - "license": "MIT" + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/pseudomap": { "version": "1.0.2", @@ -7664,7 +7600,6 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -7717,8 +7652,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/quick-lru": { "version": "5.1.1", @@ -7866,7 +7800,6 @@ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", @@ -7885,7 +7818,6 @@ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -7974,7 +7906,6 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -7998,7 +7929,6 @@ "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" } @@ -8023,7 +7953,6 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -8040,7 +7969,6 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -8051,6 +7979,26 @@ "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==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8070,7 +8018,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -8080,7 +8027,6 @@ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4", @@ -8104,7 +8050,6 @@ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "es-errors": "^1.3.0", @@ -8130,16 +8075,12 @@ "dev": true }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/send": { @@ -8234,7 +8175,6 @@ "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.4", "es-errors": "^1.3.0", @@ -8252,7 +8192,6 @@ "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": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -8274,7 +8213,6 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -8287,7 +8225,6 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -8360,7 +8297,6 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -8400,19 +8336,38 @@ "url": "https://opencollective.com/sinon" } }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" + "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, - "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -8422,8 +8377,7 @@ "version": "3.0.17", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true, - "license": "CC0-1.0" + "dev": true }, "node_modules/split2": { "version": "3.2.2", @@ -8515,7 +8469,6 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8534,7 +8487,6 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8549,7 +8501,6 @@ "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.7", "define-properties": "^1.2.1", @@ -8566,7 +8517,6 @@ "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" }, @@ -8579,7 +8529,6 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -8588,7 +8537,6 @@ "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==", - "license": "MIT", "engines": { "node": ">=8" }, @@ -8642,15 +8590,15 @@ } }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -8658,7 +8606,6 @@ "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": { "node": ">= 0.4" }, @@ -8693,8 +8640,7 @@ "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" + "dev": true }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -8761,7 +8707,6 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -8769,6 +8714,18 @@ "strip-bom": "^3.0.0" } }, + "node_modules/tsconfig-paths/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, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -8780,7 +8737,6 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -8802,7 +8758,6 @@ "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": { "node": ">=10" }, @@ -8837,7 +8792,6 @@ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -8852,7 +8806,6 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -8872,7 +8825,6 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -8893,7 +8845,6 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -8956,7 +8907,6 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -9066,7 +9016,6 @@ "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" } @@ -9137,7 +9086,6 @@ "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" }, @@ -9153,7 +9101,6 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -9170,7 +9117,6 @@ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, - "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -9200,7 +9146,6 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9226,11 +9171,40 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "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==", - "license": "ISC" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { "version": "7.5.6", @@ -9347,7 +9321,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index e4a92a3..c194263 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,12 @@ "lint": "prettier --plugin-search-dir . --check ./src/. && npx eslint ./src/.", "format": "prettier --plugin-search-dir . --write ./src/.", "doc": "jsdoc -c jsdoc.json", - "test": "mocha \"test/**/*_spec.js\"" + "test1": "mocha \"test/**/*_spec.js\"", + "test": "mocha --recursive", + "coverage": "nyc npm test" + }, + "nyc": { + "reporter": ["html", "text"], + "report-dir": "./coverage" } } diff --git a/src/locales/en-US/oauth2.html b/src/locales/en-US/oauth2.html index f51b078..913419f 100644 --- a/src/locales/en-US/oauth2.html +++ b/src/locales/en-US/oauth2.html @@ -23,143 +23,143 @@ --> diff --git a/src/logger.js b/src/logger.js new file mode 100644 index 0000000..15953df --- /dev/null +++ b/src/logger.js @@ -0,0 +1,96 @@ +const loggerStatusActive = { fill: 'yellow', shape: 'ring', text: 'Logging' }; +const loggerStatusOff = { fill: 'green', shape: 'ring', text: '' }; +const { inspect } = require('util'); + +function Logger(label = '***', active = true, count = 111, msg) { + this.consoleFunction = console.log; + this.sendFunction = this.sendConsole; + this.type = 'debug'; + if (label instanceof Object) Object.assign(this, label); + else this.label = label; + if (this.active == undefined) this.active = active; + if (this.count == undefined) this.count = count; + this.set(this.active, this.count); + return msg ? this.sendInfo(msg) : this; +} +Logger.prototype.objectDump = function (o) { + return o ? this.send(inspect(o, { showHidden: true, depth: null })) : this; +}; +Logger.prototype.send = function (message, type, node, sendFunction = this.sendFunction) { + if (!this.active) return this; + if (--this.count) { + try { + sendFunction.apply(this, [message instanceof Object ? JSON.stringify(message) : message, type, node]); + } catch (ex) { + sendFunction.apply(this, [ex.message, type, node]); + } + } else { + this.setOff(); + } + return this; +}; +Logger.prototype.sendConsole = function (message, type = this.type, consoleFunction = this.consoleFunction) { + const ts = new Date().toString().split(' '); + consoleFunction.apply(this, [[parseInt(ts[2], 10), ts[1], ts[4]].join(' ') + ' - [' + type + '] ' + this.label + ' ' + message]); + return this; +}; +Logger.prototype.sendDebug = function (message, values) { + if (values) return this.send(Object.assign({}, { label: message }, values), 'debug'); + return this.send(message, 'debug'); +}; +Logger.prototype.debug = Logger.prototype.sendDebug; +Logger.prototype.sendError = function (message) { + return this.send(message, 'error'); +}; +Logger.prototype.error = Logger.prototype.sendError; +Logger.prototype.sendErrorAndDump = function (message, o, ex) { + return this.sendError(message).objectDump(o).stackDump(ex); +}; +Logger.prototype.sendErrorAndStackDump = function (message, ex) { + return this.sendError(message).stackDump(ex); +}; +Logger.prototype.sendInfo = function (message) { + return this.send(message, 'info'); +}; +Logger.prototype.info = Logger.prototype.sendInfo; +Logger.prototype.sendNode = function (message, node = this.node, type = this.noderedLogType) { + return node[type](message); +}; +Logger.prototype.sendWarn = function (message) { + return this.send(message, 'warn'); +}; +Logger.prototype.sendWarning = Logger.prototype.sendWarn; +Logger.prototype.warn = Logger.prototype.sendWarn; +Logger.prototype.warning = Logger.prototype.sendWarn; +Logger.prototype.setNodeStatus = function (node) { + if (node) this.node = node; + if (this.node == null) throw Error('No node set'); + this.showNodeStatus(); + return this; +}; +Logger.prototype.set = function (active, count) { + if (count !== undefined) { + this.count = count; + this.countDefault = count; + } + if (active !== undefined) this.active = active; + this.showNodeStatus(); + this.sendConsole('logging turning ' + (this.active ? 'on logging next ' + this.count + ' log points' : 'off')); + return this; +}; +Logger.prototype.setOff = function () { + return this.set(false); +}; +Logger.prototype.setOn = function (count = this.countDefault) { + return this.set(true, count); +}; +Logger.prototype.showNodeStatus = function () { + if (this.node) this.node.status(this.active ? loggerStatusActive : loggerStatusOff); +}; +Logger.prototype.stackDump = function (ex) { + if (ex) console.log(ex.stack); + else console.trace(); + return this; +}; + +module.exports = Logger; diff --git a/src/oauth2.html b/src/oauth2.html index 6835e1f..1f884bd 100644 --- a/src/oauth2.html +++ b/src/oauth2.html @@ -1,457 +1,457 @@ diff --git a/src/oauth2.js b/src/oauth2.js index 6b063c6..af67241 100644 --- a/src/oauth2.js +++ b/src/oauth2.js @@ -1,318 +1,326 @@ module.exports = function (RED) { - 'use strict'; - - const axios = require('axios'); - const { URL } = require('url'); - const http = require('http'); - const https = require('https'); - - /** - * Class representing an OAuth2 Node. - */ - class OAuth2Node { - /** - * Create an OAuth2Node. - * @param {Object} config - Node configuration object. - */ - constructor(config) { - RED.nodes.createNode(this, config); - - // Node configuration properties - this.name = config.name || ''; - this.container = config.container || ''; - this.access_token_url = config.access_token_url || ''; - this.redirect_uri = config.redirect_uri || ''; - this.grant_type = config.grant_type || ''; - this.username = config.username || ''; - this.password = config.password || ''; - this.client_id = config.client_id || ''; - this.client_secret = config.client_secret || ''; - this.scope = config.scope || ''; - this.resource = config.resource || ''; - this.state = config.state || ''; - this.rejectUnauthorized = config.rejectUnauthorized || false; - this.client_credentials_in_body = config.client_credentials_in_body || false; - this.headers = config.headers || {}; - this.sendErrorsToCatch = config.senderr || false; - - // Proxy settings from environment variables or configuration - this.prox = process.env.http_proxy || process.env.HTTP_PROXY || config.proxy; - this.noprox = (process.env.no_proxy || process.env.NO_PROXY || '').split(','); - - // Register the input handler - this.on('input', this.onInput.bind(this)); - this.host = RED.settings.uiHost || 'localhost'; - } - - /** - * Handles input messages. - * @param {Object} msg - Input message object. - * @param {Function} send - Function to send messages. - * @param {Function} done - Function to indicate processing is complete. - */ - async onInput(msg, send, done) { - // console.log('OAuth2Node received input:', msg); - - const options = this.generateOptions(msg); // Generate request options - // console.log('Generated options:', options); - - this.configureProxy(); // Configure proxy settings - // console.log('Configured proxy settings:', this.proxy); - - delete msg.oauth2Request; // Remove oauth2Request from msg - options.form = this.cleanForm(options.form); // Clean the form data - - try { - // console.log('Making POST request...'); - const response = await this.makePostRequest(options); // Make the POST request - // console.log('Received response:', response); - this.handleResponse(response, msg, send); // Handle the response - } catch (error) { - // console.error('Error making POST request:', error); - this.handleError(error, msg, send); // Handle any errors + 'use strict'; + + const axios = require('axios'); + const { URL } = require('url'); + const http = require('http'); + const https = require('https'); + + /** + * Class representing an OAuth2 Node. + */ + class OAuth2Node { + /** + * Create an OAuth2Node. + * @param {Object} config - Node configuration object. + */ + constructor(config) { + RED.nodes.createNode(this, config); + + // Node configuration properties + this.name = config.name || ''; + this.container = config.container || ''; + this.access_token_url = config.access_token_url || ''; + this.redirect_uri = config.redirect_uri || ''; + this.grant_type = config.grant_type || ''; + this.username = config.username || ''; + this.password = config.password || ''; + this.client_id = config.client_id || ''; + this.client_secret = config.client_secret || ''; + this.scope = config.scope || ''; + this.resource = config.resource || ''; + this.state = config.state || ''; + this.rejectUnauthorized = config.rejectUnauthorized || false; + this.client_credentials_in_body = config.client_credentials_in_body || false; + this.headers = config.headers || {}; + this.sendErrorsToCatch = config.senderr || false; + + // Proxy settings from environment variables or configuration + this.prox = process.env.http_proxy || process.env.HTTP_PROXY || config.proxy; + this.noprox = (process.env.no_proxy || process.env.NO_PROXY || '').split(','); + + // Register the input handler + this.on('input', this.onInput.bind(this)); + this.host = RED.settings.uiHost || 'localhost'; } - done(); // Indicate that processing is complete - // console.log('Finished processing input.'); - } - - /** - * Generates options for the HTTP request. - * @param {Object} msg - Input message object. - * @returns {Object} - The request options. - */ - generateOptions(msg) { - let form = {}; - let url = this.access_token_url; - let headers = { - 'Content-Type': 'application/x-www-form-urlencoded', - Accept: 'application/json' - }; - - // Set options based on grant type - if (msg.oauth2Request) { - const creds = msg.oauth2Request.credentials; - form = { - grant_type: creds.grant_type || this.grant_type, - scope: creds.scope || this.scope, - resource: creds.resource || this.resource, - state: creds.state || this.state - }; - - if (creds.grant_type === 'password') { - form.username = creds.username || this.username; - form.password = creds.password || this.password; - } else if (creds.grant_type === 'refresh_token') { - form.refresh_token = creds.refresh_token; - } - - if (this.client_credentials_in_body) { - form.client_id = creds.client_id || this.client_id; - form.client_secret = creds.client_secret || this.client_secret; - } else { - headers.Authorization = 'Basic ' + Buffer.from(`${creds.client_id}:${creds.client_secret}`).toString('base64'); - } - - url = msg.oauth2Request.access_token_url || this.access_token_url; - } else { - form = { - grant_type: this.grant_type, - scope: this.scope, - resource: this.resource, - state: this.state - }; - - if (this.grant_type === 'password') { - form.username = this.username; - form.password = this.password; - } else if (this.grant_type === 'authorization_code') { - const credentials = RED.nodes.getCredentials(this.id); - if (credentials) { - form.code = credentials.code; - form.redirect_uri = this.redirect_uri; - } - } else if (this.grant_type === 'implicit_flow') { - const credentials = RED.nodes.getCredentials(this.id); - if (credentials) { - form.client_id = this.client_id; - form.client_secret = this.client_secret; - form.code = credentials.code; - form.grant_type = 'authorization_code'; - form.redirect_uri = this.redirect_uri; - } - } - - if (this.client_credentials_in_body) { - form.client_id = this.client_id; - form.client_secret = this.client_secret; - } else { - headers.Authorization = 'Basic ' + Buffer.from(`${this.client_id}:${this.client_secret}`).toString('base64'); - } + + /** + * Handles input messages. + * @param {Object} msg - Input message object. + * @param {Function} send - Function to send messages. + * @param {Function} done - Function to indicate processing is complete. + */ + async onInput(msg, send, done) { + // console.log('OAuth2Node received input:', msg); + + const options = this.generateOptions(msg); // Generate request options + // console.log('Generated options:', options); + + this.configureProxy(); // Configure proxy settings + // console.log('Configured proxy settings:', this.proxy); + + delete msg.oauth2Request; // Remove oauth2Request from msg + options.form = this.cleanForm(options.form); // Clean the form data + + try { + // console.log('Making POST request...'); + const response = await this.makePostRequest(options); // Make the POST request + // console.log('Received response:', response); + this.handleResponse(response, msg, send); // Handle the response + } catch (error) { + // console.error('Error making POST request:', error); + this.handleError(error, msg, send); // Handle any errors + } + done(); // Indicate that processing is complete + // console.log('Finished processing input.'); + } + + /** + * Generates options for the HTTP request. + * @param {Object} msg - Input message object. + * @returns {Object} - The request options. + */ + generateOptions(msg) { + let form = {}; + let url = this.access_token_url; + let headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json' + }; + + if (msg.oauth2Request) { + const creds = msg.oauth2Request.credentials || {}; + form = { + grant_type: creds.grant_type || this.grant_type, + scope: creds.scope || this.scope, + resource: creds.resource || this.resource, + state: creds.state || this.state + }; + + if (creds.grant_type === 'password') { + form.username = creds.username || this.username; + form.password = creds.password || this.password; + } else if (creds.grant_type === 'refresh_token') { + form.refresh_token = creds.refresh_token; + } + + if (this.client_credentials_in_body) { + form.client_id = creds.client_id || this.client_id; + form.client_secret = creds.client_secret || this.client_secret; + } else { + headers.Authorization = 'Basic ' + Buffer.from(`${creds.client_id || this.client_id}:${creds.client_secret || this.client_secret}`).toString('base64'); + } + + url = msg.oauth2Request.access_token_url || this.access_token_url; + } else { + form = { + grant_type: this.grant_type, + scope: this.scope, + resource: this.resource, + state: this.state + }; + + if (this.grant_type === 'password') { + form.username = this.username; + form.password = this.password; + } else if (this.grant_type === 'authorization_code') { + const credentials = RED.nodes.getCredentials(this.id) || {}; + if (credentials) { + form.code = credentials.code; + form.redirect_uri = this.redirect_uri; + } + } else if (this.grant_type === 'implicit_flow') { + const credentials = RED.nodes.getCredentials(this.id) || {}; + if (credentials) { + form.client_id = this.client_id; + form.client_secret = this.client_secret; + form.code = credentials.code; + form.grant_type = 'authorization_code'; + form.redirect_uri = this.redirect_uri; + } + } + + if (this.client_credentials_in_body) { + form.client_id = this.client_id; + form.client_secret = this.client_secret; + } else { + headers.Authorization = 'Basic ' + Buffer.from(`${this.client_id}:${this.client_secret}`).toString('base64'); + } + } + + return { + method: 'POST', + url: url, + headers: { ...headers, ...this.headers }, + rejectUnauthorized: this.rejectUnauthorized, + form: form + }; } - return { - method: 'POST', - url: url, - headers: { ...headers, ...this.headers }, - rejectUnauthorized: this.rejectUnauthorized, - form: form - }; - } - - /** - * Configures proxy settings. - */ - configureProxy() { - if (!this.prox) return; - - const proxyURL = new URL(this.prox); - this.proxy = { - protocol: proxyURL.protocol, - hostname: proxyURL.hostname, - port: proxyURL.port, - username: proxyURL.username || null, - password: proxyURL.password || null - }; - } - - /** - * Cleans form data by removing undefined or empty values. - * @param {Object} form - The form data. - * @returns {Object} - The cleaned form data. - */ - cleanForm(form) { - return Object.fromEntries(Object.entries(form).filter(([, value]) => value !== undefined && value !== '')); - } - - /** - * Makes a POST request. - * @param {Object} options - The request options. - * @returns {Promise} - The response from the request. - */ - async makePostRequest(options) { - const axiosOptions = { - method: options.method, - url: options.url, - headers: options.headers, - data: new URLSearchParams(options.form).toString(), - proxy: false, - httpAgent: new http.Agent({ rejectUnauthorized: options.rejectUnauthorized }), - httpsAgent: new https.Agent({ rejectUnauthorized: options.rejectUnauthorized }) - }; - - if (this.proxy) { - const HttpsProxyAgent = require('https-proxy-agent'); - axiosOptions.httpsAgent = new HttpsProxyAgent(this.proxy); + /** + * Configures proxy settings. + */ + configureProxy() { + if (!this.prox) return; + + const proxyURL = new URL(this.prox); + this.proxy = { + protocol: proxyURL.protocol, + hostname: proxyURL.hostname, + port: proxyURL.port, + username: proxyURL.username || null, + password: proxyURL.password || null + }; } - return axios(axiosOptions); - } - - /** - * Handles the response from the POST request. - * @param {Object} response - The response object. - * @param {Object} msg - Input message object. - * @param {Function} send - Function to send messages. - */ - handleResponse(response, msg, send) { - msg.oauth2Response = response.data || {}; - msg.headers = response.headers || {}; // Include headers in the message - this.setStatus('green', `HTTP ${response.status}, ok`); - send(msg); - } - /** - * Handles errors from the POST request. - * @param {Object} error - The error object. - * @param {Object} msg - Input message object. - * @param {Function} send - Function to send messages. - */ - handleError(error, msg, send) { - const status = error.response ? error.response.status : error.code; - const message = error.response ? error.response.statusText : error.message; - msg.oauth2Error = error.response || { status, message }; - this.setStatus('red', `HTTP ${status}, ${message}`); - if (this.sendErrorsToCatch) send([null, msg]); - else { - this.error(message, msg); - send([null, msg]); + /** + * Cleans form data by removing undefined or empty values. + * @param {Object} form - The form data. + * @returns {Object} - The cleaned form data. + */ + cleanForm(form) { + return Object.fromEntries(Object.entries(form).filter(([, value]) => value !== undefined && value !== '')); } - } - - /** - * Sets the status of the node. - * @param {string} color - The color of the status indicator. - * @param {string} text - The status text. - */ - setStatus(color, text) { - this.status({ fill: color, shape: 'dot', text }); - setTimeout(() => { - this.status({}); - }, 250); - } - } - - /** - * Endpoint to retrieve OAuth2 credentials based on a token. - * @param {Object} req - The request object. - * @param {Object} res - The response object. - */ - RED.httpAdmin.get('/oauth2/credentials/:token', (req, res) => { - const credentials = RED.nodes.getCredentials(req.params.token); - if (credentials) { - res.json({ code: credentials.code, redirect_uri: credentials.redirect_uri }); - } else { - res.send('oauth2.error.no-credentials'); - } - }); - - /** - * Endpoint to handle OAuth2 redirect and store the authorization code. - * @param {Object} req - The request object. - * @param {Object} res - The response object. - */ - RED.httpAdmin.get('/oauth2/redirect', (req, res) => { - if (req.query.code) { - const [node_id] = req.query.state.split(':'); - let credentials = RED.nodes.getCredentials(node_id); - - if (!credentials) { - credentials = {}; + + /** + * Makes a POST request. + * @param {Object} options - The request options. + * @returns {Promise} - The response from the request. + */ + async makePostRequest(options) { + const axiosOptions = { + method: options.method, + url: options.url, + headers: options.headers, + data: new URLSearchParams(options.form).toString(), + proxy: false, + httpAgent: new http.Agent({ rejectUnauthorized: options.rejectUnauthorized }), + httpsAgent: new https.Agent({ rejectUnauthorized: options.rejectUnauthorized }) + }; + + if (this.proxy) { + const HttpsProxyAgent = require('https-proxy-agent'); + axiosOptions.httpsAgent = new HttpsProxyAgent(this.proxy); + } + + return axios(axiosOptions).catch((error) => { + throw error; + }); + } + + /** + * Handles the response from the POST request. + * @param {Object} response - The response object. + * @param {Object} msg - Input message object. + * @param {Function} send - Function to send messages. + */ + handleResponse(response, msg, send) { + if (!response || !response.data) { + this.handleError({ message: 'Invalid response data' }, msg, send); + return; + } + msg.oauth2Response = response.data || {}; + msg.headers = response.headers || {}; // Include headers in the message + this.setStatus('green', `HTTP ${response.status}, ok`); + send(msg); } - credentials = { ...credentials, ...req.query }; - RED.nodes.addCredentials(node_id, credentials); - - res.send(` - - - - - -

Success! This page can be closed if it doesn't do so automatically.

- - - `); - } else { - res.send('oauth2.error.no-credentials'); - } - }); - - // Register the OAuth2Node node type - RED.nodes.registerType('oauth2', OAuth2Node, { - credentials: { - clientId: { type: 'text' }, - clientSecret: { type: 'password' }, - accessToken: { type: 'password' }, - refreshToken: { type: 'password' }, - expireTime: { type: 'password' }, - code: { type: 'password' } - } - }); + /** + * Handles errors from the POST request. + * @param {Object} error - The error object. + * @param {Object} msg - Input message object. + * @param {Function} send - Function to send messages. + */ + handleError(error, msg, send) { + const status = error.response ? error.response.status : error.code; + const message = error.response ? error.response.statusText : error.message; + const data = error.response && error.response.data ? error.response.data : {}; + const headers = error.response ? error.response.headers : {}; + msg.oauth2Error = { status, message, data, headers }; + this.setStatus('red', `HTTP ${status}, ${message}`); + if (this.sendErrorsToCatch) send([null, msg]); + else { + this.error(msg); + send([null, msg]); + } + } + + /** + * Sets the status of the node. + * @param {string} color - The color of the status indicator. + * @param {string} text - The status text. + */ + setStatus(color, text) { + this.status({ fill: color, shape: 'dot', text }); + setTimeout(() => { + this.status({}); + }, 250); + } + } + + /** + * Endpoint to retrieve OAuth2 credentials based on a token. + * @param {Object} req - The request object. + * @param {Object} res - The response object. + */ + RED.httpAdmin.get('/oauth2/credentials/:token', (req, res) => { + const credentials = RED.nodes.getCredentials(req.params.token); + if (credentials) { + res.json({ code: credentials.code, redirect_uri: credentials.redirect_uri }); + } else { + res.send('oauth2.error.no-credentials'); + } + }); + + /** + * Endpoint to handle OAuth2 redirect and store the authorization code. + * @param {Object} req - The request object. + * @param {Object} res - The response object. + */ + RED.httpAdmin.get('/oauth2/redirect', (req, res) => { + if (req.query.code) { + const [node_id] = req.query.state.split(':'); + let credentials = RED.nodes.getCredentials(node_id); + + if (!credentials) { + credentials = {}; + } + + credentials = { ...credentials, ...req.query }; + RED.nodes.addCredentials(node_id, credentials); + + res.send(` + + + + + +

Success! This page can be closed if it doesn't do so automatically.

+ + + `); + } else { + res.send('oauth2.error.no-credentials'); + } + }); + + // Register the OAuth2Node node type + RED.nodes.registerType('oauth2', OAuth2Node, { + credentials: { + clientId: { type: 'text' }, + clientSecret: { type: 'password' }, + accessToken: { type: 'password' }, + refreshToken: { type: 'password' }, + expireTime: { type: 'password' }, + code: { type: 'password' } + } + }); }; diff --git a/test/oauth2_spec.js b/test/oauth2_spec.js index 012ee33..98d1a48 100644 --- a/test/oauth2_spec.js +++ b/test/oauth2_spec.js @@ -2,467 +2,1156 @@ const should = require('should'); // eslint-disable-line no-unused-vars const helper = require('node-red-node-test-helper'); const nock = require('nock'); const oauth2Node = require('../src/oauth2.js'); +const RED = require('node-red'); +const express = require('express'); +const bodyParser = require('body-parser'); +const app = express(); +app.use(bodyParser.json()); helper.init(require.resolve('node-red')); describe('OAuth2 Node', function () { - this.timeout(5000); // Increase timeout to 10000ms for more room - - before(function (done) { - console.log('Starting Node-RED server...'); - helper.startServer(done); - }); - - after(function (done) { - console.log('Stopping Node-RED server...'); - helper.stopServer(done); - }); - - afterEach(function (done) { - console.log('Unloading flows...'); - helper.unload().then(function () { - done(); - }); - }); - - it('should be loaded', function (done) { - console.log('Testing if node loads correctly...'); - const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; - helper.load(oauth2Node, flow, function () { - const n1 = helper.getNode('n1'); - try { - n1.should.have.property('name', 'oauth2'); - console.log('Node loaded successfully'); - done(); - } catch (err) { - console.error('Node failed to load', err); - done(err); - } - }); - }); - - it('should handle input and make POST request', function (done) { - console.log('Testing input handling and POST request...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { + before(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Starting Node-RED server...'); + helper.startServer(done); + }); + + after(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Stopping Node-RED server...'); + helper.stopServer(done); + }); + + afterEach(function (done) { + console.log('Unloading flows...'); + helper.unload().then(function () { + nock.cleanAll(); + done(); + }); + }); + + /** + * Test if the OAuth2 node loads correctly. + */ + it('should be loaded', function (done) { + this.timeout(30000); // Increase timeout for individual test + console.log('Testing if node loads correctly...'); + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + try { + n1.should.have.property('name', 'oauth2'); + console.log('Node loaded successfully'); + done(); + } catch (err) { + console.error('Node failed to load', err); + done(err); + } + }); + }); + + /** + * Test if the OAuth2 node handles input and makes POST request. + */ + it('should handle input and make POST request', async function () { + this.timeout(30000); // Increase timeout for individual test + console.log('Testing input handling and POST request...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + await helper.load(oauth2Node, flow, credentials); const n1 = helper.getNode('n1'); const n2 = helper.getNode('n2'); console.log('Setting up nock for example.com...'); const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed input handling test', err); - done(err); - } + return new Promise((resolve, reject) => { + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + resolve(); + } catch (err) { + console.error('Failed input handling test', err); + reject(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); }); + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } + /** + * Test if the OAuth2 node handles errors. + */ + it('should handle errors', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing error handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for invalid-url.com...'); + const scope = nock('https://invalid-url.com').post('/').replyWithError('mocked error'); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('message', 'mocked error'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed error handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://invalid-url.com', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); }); - }); - }); - - it('should handle errors', function (done) { - console.log('Testing error handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); - - console.log('Setting up nock for invalid-url.com...'); - const scope = nock('https://invalid-url.com').post('/').replyWithError('mocked error'); - - n3.on('input', function (msg) { - console.log('Received input on error helper node'); - try { - msg.should.have.property('oauth2Error'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed error handling test', err); - done(err); - } + }); + + /** + * Test if the OAuth2 node handles invalid client credentials. + */ + it('should handle invalid client credentials', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing invalid client credentials handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'invalidClientId', + clientSecret: 'invalidClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(401, { error: 'invalid_client' }); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('status', 401); + msg.oauth2Error.data.should.have.property('error', 'invalid_client'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed invalid client credentials handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'invalidClientId', + client_secret: 'invalidClientSecret', + scope: 'testScope' + } + } + }); }); + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://invalid-url.com', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } + /** + * Test if the OAuth2 node handles authorization_code grant type. + */ + it('should handle authorization_code grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing authorization_code grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { + access_token: 'mocked_access_token', + refresh_token: 'mocked_refresh_token' + }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed authorization_code grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'authorization_code', + code: 'testAuthorizationCode', + redirect_uri: 'https://example.com/redirect', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); }); - }); - }); - - it('should handle invalid client credentials', function (done) { - console.log('Testing invalid client credentials handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'invalidClientId', - clientSecret: 'invalidClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); + }); - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(401, { error: 'invalid_client' }); - - n3.on('input', function (msg) { - console.log('Received input on error helper node'); - try { - msg.should.have.property('oauth2Error'); - msg.oauth2Error.should.have.property('status', 401); - msg.oauth2Error.data.should.have.property('error', 'invalid_client'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed invalid client credentials handling test', err); - done(err); - } + /** + * Test if the OAuth2 node handles refresh_token grant type. + */ + it('should handle refresh_token grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing refresh_token grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'new_mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'new_mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed refresh_token grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'refresh_token', + refresh_token: 'testRefreshToken', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); }); + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'invalidClientId', - client_secret: 'invalidClientSecret', - scope: 'testScope' - } - } + /** + * Test if the OAuth2 node handles network failures. + */ + it('should handle network failure', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing network failure handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').replyWithError('Network error'); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('message', 'Network error'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed network failure handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); }); - }); - }); - - it('should handle authorization_code grant type', function (done) { - console.log('Testing authorization_code grant type handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); + }); - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { - access_token: 'mocked_access_token', - refresh_token: 'mocked_refresh_token' + /** + * Test if the OAuth2 node handles custom headers in the response. + */ + it('should handle custom headers in response', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing custom headers handling...'); + const flow = [ + { + id: 'n1', + type: 'oauth2', + name: 'test name', + wires: [['n2']], + access_token_url: 'https://example.com/oauth2/token', + headers: { 'X-Custom-Header': 'CustomValue' } + }, + { id: 'n2', type: 'helper' } + ]; + + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }, { 'x-custom-header': 'CustomValue' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('headers'); + msg.headers.should.have.property('x-custom-header', 'CustomValue'); + scope.done(); + done(); + } catch (err) { + console.error('Failed custom headers handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); }); + }); + + /** + * Test if the OAuth2 node handles multiple scopes. + */ + it('should handle multiple scopes', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing multiple scopes handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed authorization_code grant type handling test', err); - done(err); - } + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed multiple scopes handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'scope1 scope2' + } + } + }); }); + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'authorization_code', - code: 'testAuthorizationCode', - redirect_uri: 'https://example.com/redirect', - client_id: 'testClientId', - client_secret: 'testClientSecret' - } - } + /** + * Test if the OAuth2 node handles proxy settings. + */ + it('should handle proxy settings', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing proxy settings handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], access_token_url: 'https://example.com/oauth2/token' }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + const proxySettings = { + prox: 'http://proxy.example.com:8080' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + n1.prox = proxySettings.prox; + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); + done(); + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); }); - }); - }); - - it('should handle refresh_token grant type', function (done) { - console.log('Testing refresh_token grant type handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); + }); - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'new_mocked_access_token' }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'new_mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed refresh_token grant type handling test', err); - done(err); - } + /** + * Test if the OAuth2 node generates options for authorization_code grant type. + */ + it('should generate options for authorization_code grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'authorization_code', + code: 'testAuthorizationCode', + redirect_uri: 'https://example.com/redirect', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + + // Assert conditions based on the generated options + done(); }); + }); + + /** + * Test if the OAuth2 node generates options for implicit_flow grant type. + */ + it('should generate options for implicit_flow grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'implicit_flow', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'refresh_token', - refresh_token: 'testRefreshToken', - client_id: 'testClientId', - client_secret: 'testClientSecret' - } - } + // Assert conditions based on the generated options + done(); }); - }); - }); - - it('should handle network failure', function (done) { - console.log('Testing network failure handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); + }); - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').replyWithError('Network error'); - - n3.on('input', function (msg) { - console.log('Received input on error helper node'); - try { - msg.should.have.property('oauth2Error'); - msg.oauth2Error.should.have.property('message', 'Network error'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed network failure handling test', err); - done(err); - } + /** + * Test if the OAuth2 node generates options for password grant type. + */ + it('should generate options for password grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'password', + client_id: 'testClientId', + client_secret: 'testClientSecret', + username: 'testUsername', + password: 'testPassword', + scope: 'testScope' + } + } + }); + + // Assert conditions based on the generated options + done(); }); + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } + /** + * Test if the OAuth2 node makes a POST request with proxy settings. + */ + it('should make a POST request with proxy settings', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + const proxySettings = { + prox: 'http://proxy.example.com:8080' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + n1.prox = proxySettings.prox; + + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + + // Assert conditions based on the proxy settings + done(); }); - }); - }); - - it('should handle custom headers in response', function (done) { - console.log('Testing custom headers handling...'); - const flow = [ - { - id: 'n1', - type: 'oauth2', - name: 'test name', - wires: [['n2']], - access_token_url: 'https://example.com/oauth2/token', - headers: { 'X-Custom-Header': 'CustomValue' } - }, - { id: 'n2', type: 'helper' } - ]; - - helper.load(oauth2Node, flow, function () { + }); + + /** + * Test if the OAuth2 node handles server errors correctly. + */ + it('should handle server errors correctly', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + nock('https://example.com').post('/oauth2/token').reply(500, { error: 'server_error' }); + + n3.on('input', function (msg) { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('status', 500); + msg.oauth2Error.data.should.have.property('error', 'server_error'); + done(); + }); + + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + /** + * Test if the OAuth2 node handles client_credentials grant type. + */ + it('should handle client_credentials grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + done(); + }); + + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + /** + * Test if the OAuth2 node handles HTTP 401 error correctly. + */ + it('should handle HTTP 401 error correctly', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + nock('https://example.com').post('/oauth2/token').reply(401, { error: 'unauthorized' }); + + n3.on('input', function (msg) { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('status', 401); + msg.oauth2Error.data.should.have.property('error', 'unauthorized'); + done(); + }); + + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + /** + * Test if the OAuth2 node handles client_credentials_in_body. + */ + it('should handle client_credentials_in_body', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing client_credentials_in_body handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', client_credentials_in_body: true, wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed client_credentials_in_body handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + /** + * Test if the OAuth2 node handles password grant type. + */ + it('should handle password grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing password grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret', + username: 'testUser', + password: 'testPassword' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed password grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'password', + username: 'testUser', + password: 'testPassword', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + /** + * Test if the OAuth2 node handles default grant_type. + */ + it('should handle default grant_type', async function () { + this.timeout(10000); // Set timeout for individual test + console.log('Starting test case...'); + + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', grant_type: 'client_credentials', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'defaultClientId', + clientSecret: 'defaultClientSecret' + }; + + await helper.load(oauth2Node, flow, credentials); + console.log('Flow loaded...'); + const n1 = helper.getNode('n1'); const n2 = helper.getNode('n2'); - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }, { 'x-custom-header': 'CustomValue' }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('headers'); - msg.headers.should.have.property('x-custom-header', 'CustomValue'); - scope.done(); - done(); - } catch (err) { - console.error('Failed custom headers handling test', err); - done(err); - } - }); + nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'default_access_token' }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret' - } - } + return new Promise((resolve, reject) => { + n2.on('input', function (msg) { + console.log('Received input message...'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'default_access_token'); + // Signal the completion of the test + console.log('Test case completed successfully.'); + resolve(); + } catch (err) { + console.error('Error during test execution:', err); + reject(err); + } + }); + + console.log('Sending message to n1...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'defaultClientId', + client_secret: 'defaultClientSecret' + } + } + }); }); - }); - }); - - it('should handle multiple scopes', function (done) { - console.log('Testing multiple scopes handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { + }); + + it('should handle password grant_type', async function () { + this.timeout(1000); // Set timeout for individual test + console.log('Testing password grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret', + username: 'testUser', + password: 'testPassword' + }; + + await helper.load(oauth2Node, flow, credentials); const n1 = helper.getNode('n1'); const n2 = helper.getNode('n2'); console.log('Setting up nock for example.com...'); const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed multiple scopes handling test', err); - done(err); - } + return new Promise((resolve, reject) => { + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + resolve(); + } catch (err) { + console.error('Failed password grant type handling test', err); + reject(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'password', + username: 'testUser', + password: 'testPassword', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); }); + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'scope1 scope2' - } - } + /** + * Test if the OAuth2 node handles authorization_code grant_type. + */ + it('should handle authorization_code grant_type', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [ + { + id: 'n1', + type: 'oauth2', + name: 'oauth2', + grant_type: 'authorization_code', + client_id: 'defaultClientId', + client_secret: 'defaultClientSecret', + redirect_uri: 'https://example.com/redirect', + access_token_url: 'https://example.com/oauth2/token', + wires: [['n2']] + }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { code: 'testAuthorizationCode' }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'authorization_code_access_token' }); + + n2.on('input', function (msg) { + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'authorization_code_access_token'); + done(); + } catch (err) { + done(err); + } + }); + + n1.receive({ payload: {} }); }); - }); - }); - it('should handle proxy settings', function (done) { - console.log('Testing proxy settings handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], access_token_url: 'https://example.com/oauth2/token' }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - const proxySettings = { - prox: 'http://proxy.example.com:8080' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); + }); - n1.prox = proxySettings.prox; + /** + * Test if the OAuth2 node handles implicit_flow grant_type. + */ + it('should handle implicit_flow grant_type', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [ + { + id: 'n1', + type: 'oauth2', + name: 'oauth2', + grant_type: 'implicit_flow', + client_id: 'defaultClientId', + client_secret: 'defaultClientSecret', + redirect_uri: 'https://example.com/redirect', + access_token_url: 'https://example.com/oauth2/token', + wires: [['n2']] + }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { code: 'testImplicitFlowCode' }; - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'implicit_flow_access_token' }); + + n2.on('input', function (msg) { + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'implicit_flow_access_token'); + done(); + } catch (err) { + done(err); + } + }); - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); - done(); - } catch (err) { - console.error('Failed proxy settings handling test', err); - done(err); - } + n1.receive({ payload: {} }); }); + }); - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { + /** + * Test if the OAuth2 node handles client_credentials_in_body when no oauth2Request. + */ + it('should handle client_credentials_in_body when no oauth2Request', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [ + { + id: 'n1', + type: 'oauth2', + name: 'oauth2', + client_credentials_in_body: true, grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } + client_id: 'defaultClientId', + client_secret: 'defaultClientSecret', + access_token_url: 'https://example.com/oauth2/token', + wires: [['n2']] + }, + { id: 'n2', type: 'helper' } + ]; + + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'client_credentials_body_access_token' }); + + n2.on('input', function (msg) { + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'client_credentials_body_access_token'); + done(); + } catch (err) { + done(err); + } + }); + + n1.receive({ payload: {} }); + }); + }); + + /** + * Test if the OAuth2 node handles client credentials in headers when no oauth2Request. + */ + it('should handle client credentials in headers when no oauth2Request', function (done) { + this.timeout(10000); // Set timeout for individual test + const flow = [ + { + id: 'n1', + type: 'oauth2', + name: 'oauth2', + client_credentials_in_body: false, + grant_type: 'client_credentials', + client_id: 'defaultClientId', + client_secret: 'defaultClientSecret', + access_token_url: 'https://example.com/oauth2/token', + wires: [['n2']] + }, + { id: 'n2', type: 'helper' } + ]; + + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'client_credentials_header_access_token' }); + + n2.on('input', function (msg) { + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'client_credentials_header_access_token'); + done(); + } catch (err) { + done(err); + } + }); + + n1.receive({ payload: {} }); + }); + }); + it('should handle password grant type in generateOptions', function (done) { + console.log('Testing password grant type handling in generateOptions...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', grant_type: 'password', username: 'testUser', password: 'testPassword', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + grant_type: 'password', + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const options = n1.generateOptions({ oauth2Request: { credentials } }); + + try { + options.form.should.have.property('username', 'testUser'); + options.form.should.have.property('password', 'testPassword'); + done(); + } catch (err) { + done(err); + } }); - }); - }); + }); }); diff --git a/yarn.lock b/yarn.lock index 5bf38fe..592ce29 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1376,7 +1376,14 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -1756,7 +1763,15 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2376,7 +2391,12 @@ escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -2522,17 +2542,22 @@ eslint-visitor-keys@^1.1.0: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: +eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== +eslint-visitor-keys@^3.3.0: + 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== + +eslint-visitor-keys@^3.4.1: + 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== -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.4.3: 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== @@ -2609,7 +2634,12 @@ estraverse@^4.1.1: resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estraverse@^5.2.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -2911,7 +2941,19 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.1.3, glob@^7.1.6: +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +glob@^7.1.6: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2939,7 +2981,14 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0, globals@^13.24.0: +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globals@^13.24.0: version "13.24.0" resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== @@ -3676,7 +3725,14 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@5.0.1: +minimatch@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== @@ -3790,21 +3846,16 @@ mqtt@4.3.7: ws "^7.5.5" xtend "^4.0.2" -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +ms@^2.1.1, ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" @@ -4527,17 +4578,32 @@ sax@>=0.6.0: resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== -semver@^6.0.0: +semver@^6.0.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.0.0: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +semver@^7.3.5: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +semver@^7.3.8: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +semver@^7.5.1: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== -semver@^7.0.0, semver@^7.3.5, semver@^7.3.8, semver@^7.5.1, semver@^7.5.4: +semver@^7.5.4: version "7.6.2" resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== @@ -4848,7 +4914,14 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7.1.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== + dependencies: + has-flag "^4.0.0" + +supports-color@^7.2.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== From a2170978f64b96968dbeb0c5e2ebc457bedfe885 Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Thu, 23 May 2024 02:09:16 -0300 Subject: [PATCH 4/8] Refactor oauth2.json and oauth2.html for clarity and add debug mode This commit introduces several changes to improve the clarity and functionality of the oauth2 configuration. In the oauth2.json locale file, the tips for debug mode, client credentials, and rejectUnauthorized have been added, and the labels have been updated to be more concise. The oauth2.html file has been updated to include a new debug mode checkbox with corresponding help information, a the labels for client credentials and rejectUnauthorized have been adjusted to match the updated locale file. Additionally, the logger.js file has been removed as it appears to be no longer needed, and the corresponding references to the logger have been added to the oauth2.js file to incorporate logging functionality directly within the OAuth2 node implementation. The debug mode can now be toggled via the node configuration, and the logger is initialized with the debug setting from the config. Lastly, the oauth2.js file has been refactored to include more descriptive logging messages that will aid in debugging and understanding the flow of the OAuth2 node's operations. --- src/{ => libs}/logger.js | 2 +- src/locales/en-US/oauth2.json | 12 +++++--- src/oauth2.html | 19 +++++++++--- src/oauth2.js | 55 ++++++++++++++++++++++++++++------- 4 files changed, 68 insertions(+), 20 deletions(-) rename src/{ => libs}/logger.js (96%) diff --git a/src/logger.js b/src/libs/logger.js similarity index 96% rename from src/logger.js rename to src/libs/logger.js index 15953df..512a35a 100644 --- a/src/logger.js +++ b/src/libs/logger.js @@ -75,7 +75,7 @@ Logger.prototype.set = function (active, count) { } if (active !== undefined) this.active = active; this.showNodeStatus(); - this.sendConsole('logging turning ' + (this.active ? 'on logging next ' + this.count + ' log points' : 'off')); + // this.sendConsole('logging turning ' + (this.active ? 'on logging next ' + this.count + ' log points' : 'off')); return this; }; Logger.prototype.setOff = function () { diff --git a/src/locales/en-US/oauth2.json b/src/locales/en-US/oauth2.json index 476d8cb..f6ece4e 100644 --- a/src/locales/en-US/oauth2.json +++ b/src/locales/en-US/oauth2.json @@ -1,7 +1,13 @@ { "oauth2": { "oauth2": "oauth2", + "tips": { + "debug": "Check the box to enable debug mode with extra logs.", + "client_credentials_in_body": "Ensure that the client credentials are included in the token request body for authentication purposes.", + "rejectUnauthorized": "The rejectUnauthorized parameter controls SSL/TLS certificate validation for the server, with true enforcing validation and false disabling it." + }, "label": { + "debug": "Debug Mode.", "grant_type": "Grant Type", "name": "Name", "container": "Container", @@ -19,10 +25,8 @@ "scope": "Scope", "resource": "Resource", "state": "State", - "rejectUnauthorized": "The rejectUnauthorized parameter controls SSL/TLS certificate validation for the server, with true enforcing validation and false disabling it.", - "rejectUnauthorized_label": "Reject Unauthorized", - "client_credentials_in_body": "Ensure that the client credentials are included in the token request body for authentication purposes.", - "client_credentials_in_body_label": "Embedded Credentials", + "rejectUnauthorized": "Reject Unauthorized", + "client_credentials_in_body": "Embedded Credentials", "proxy-config": "Proxy Configuration", "use-proxy": "Use proxy", "senderr": "Only send non-2xx responses to Catch node" diff --git a/src/oauth2.html b/src/oauth2.html index 1f884bd..acd4ee2 100644 --- a/src/oauth2.html +++ b/src/oauth2.html @@ -104,23 +104,33 @@ + +
+ + +
+ Debug Mode - + +
+
+
- +
Embedded Credentials - - +
- +
Reject Unauthorized - - +
@@ -191,6 +201,7 @@ required: false, label: RED._('node-red:oauth2.label.proxy-config') }, + debug: { value: false }, senderr: { value: false }, client_credentials_in_body: { value: false }, rejectUnauthorized: { value: true }, diff --git a/src/oauth2.js b/src/oauth2.js index af67241..35f3921 100644 --- a/src/oauth2.js +++ b/src/oauth2.js @@ -6,6 +6,8 @@ module.exports = function (RED) { const http = require('http'); const https = require('https'); + const Logger = require('node-red-contrib-oauth2/src/libs/logger'); + /** * Class representing an OAuth2 Node. */ @@ -16,7 +18,8 @@ module.exports = function (RED) { */ constructor(config) { RED.nodes.createNode(this, config); - + this.logger = new Logger({ name: 'identifier', count: 10, active: config.debug || false, label: 'debug' }); + this.logger.debug('Constructor: Initializing node with config', config); // Node configuration properties this.name = config.name || ''; this.container = config.container || ''; @@ -39,9 +42,12 @@ module.exports = function (RED) { this.prox = process.env.http_proxy || process.env.HTTP_PROXY || config.proxy; this.noprox = (process.env.no_proxy || process.env.NO_PROXY || '').split(','); + this.logger.debug('Constructor: Finished setting up node properties'); + // Register the input handler this.on('input', this.onInput.bind(this)); this.host = RED.settings.uiHost || 'localhost'; + this.logger.debug('Constructor: Node input handler registered'); } /** @@ -51,28 +57,32 @@ module.exports = function (RED) { * @param {Function} done - Function to indicate processing is complete. */ async onInput(msg, send, done) { - // console.log('OAuth2Node received input:', msg); + // this.debug ? this.logger.setOn() : this.logger.setOff(); + this.logger.debug('onInput: Received message', msg); const options = this.generateOptions(msg); // Generate request options - // console.log('Generated options:', options); + this.logger.debug('onInput: Generated request options', options); this.configureProxy(); // Configure proxy settings - // console.log('Configured proxy settings:', this.proxy); + this.logger.debug('onInput: Configured proxy settings', this.prox); delete msg.oauth2Request; // Remove oauth2Request from msg + this.logger.debug('onInput: Removed oauth2Request from message'); + options.form = this.cleanForm(options.form); // Clean the form data + this.logger.debug('onInput: Cleaned form data', options.form); try { - // console.log('Making POST request...'); const response = await this.makePostRequest(options); // Make the POST request - // console.log('Received response:', response); + this.logger.debug('onInput: POST request response', response); this.handleResponse(response, msg, send); // Handle the response } catch (error) { - // console.error('Error making POST request:', error); + this.logger.error('onInput: Error making POST request', error); this.handleError(error, msg, send); // Handle any errors } + done(); // Indicate that processing is complete - // console.log('Finished processing input.'); + this.logger.debug('onInput: Finished processing input'); } /** @@ -81,6 +91,8 @@ module.exports = function (RED) { * @returns {Object} - The request options. */ generateOptions(msg) { + this.logger.debug('generateOptions: Configuring options with message', msg); + let form = {}; let url = this.access_token_url; let headers = { @@ -148,6 +160,7 @@ module.exports = function (RED) { } } + this.logger.debug('generateOptions: Returning options', { method: 'POST', url, headers, form }); return { method: 'POST', url: url, @@ -171,6 +184,8 @@ module.exports = function (RED) { username: proxyURL.username || null, password: proxyURL.password || null }; + + this.logger.debug('configureProxy: Proxy configured', this.proxy); } /** @@ -179,7 +194,9 @@ module.exports = function (RED) { * @returns {Object} - The cleaned form data. */ cleanForm(form) { - return Object.fromEntries(Object.entries(form).filter(([, value]) => value !== undefined && value !== '')); + const cleanedForm = Object.fromEntries(Object.entries(form).filter(([, value]) => value !== undefined && value !== '')); + this.logger.debug('cleanForm: Cleaned form data', cleanedForm); + return cleanedForm; } /** @@ -188,6 +205,8 @@ module.exports = function (RED) { * @returns {Promise} - The response from the request. */ async makePostRequest(options) { + this.logger.debug('makePostRequest: Making POST request with options', options); + const axiosOptions = { method: options.method, url: options.url, @@ -203,7 +222,10 @@ module.exports = function (RED) { axiosOptions.httpsAgent = new HttpsProxyAgent(this.proxy); } + this.logger.debug('makePostRequest: Axios request options prepared', axiosOptions); + return axios(axiosOptions).catch((error) => { + this.logger.error('makePostRequest: Error during POST request', error); throw error; }); } @@ -215,13 +237,18 @@ module.exports = function (RED) { * @param {Function} send - Function to send messages. */ handleResponse(response, msg, send) { + this.logger.debug('handleResponse: Handling response', response); + if (!response || !response.data) { + this.logger.warn('handleResponse: Invalid response data', response); this.handleError({ message: 'Invalid response data' }, msg, send); return; } + msg.oauth2Response = response.data || {}; msg.headers = response.headers || {}; // Include headers in the message this.setStatus('green', `HTTP ${response.status}, ok`); + this.logger.debug('handleResponse: Response data set in message', msg); send(msg); } @@ -232,14 +259,19 @@ module.exports = function (RED) { * @param {Function} send - Function to send messages. */ handleError(error, msg, send) { + this.logger.error('handleError: Handling error', error); + const status = error.response ? error.response.status : error.code; const message = error.response ? error.response.statusText : error.message; const data = error.response && error.response.data ? error.response.data : {}; const headers = error.response ? error.response.headers : {}; msg.oauth2Error = { status, message, data, headers }; this.setStatus('red', `HTTP ${status}, ${message}`); - if (this.sendErrorsToCatch) send([null, msg]); - else { + this.logger.debug('handleError: Error data set in message', msg); + + if (this.sendErrorsToCatch) { + send([null, msg]); + } else { this.error(msg); send([null, msg]); } @@ -251,6 +283,7 @@ module.exports = function (RED) { * @param {string} text - The status text. */ setStatus(color, text) { + this.logger.debug('setStatus: Setting status', { color, text }); this.status({ fill: color, shape: 'dot', text }); setTimeout(() => { this.status({}); From c6f96af538e0884eacb0a5d705f0a8f312a46239 Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Thu, 23 May 2024 15:51:03 -0300 Subject: [PATCH 5/8] Add refresh token support and refactor oauth2 node options This commit introduces several changes to the oauth2 node configuration and handling of OAuth2 flows. The primary addition is the support for the refresh token grant type, which allows the node to obtai new access tokens using a refresh token. Key changes include: - Added a new `refresh_token` field in the oauth2.html file to allow users to input their refresh token. - Updated oauth2.js to handle the new refresh token flow, including generating the appropriate form data and handling the client credentials. - Refactored the `generateOptions` function in oauth2.js to improve readability and maintainability. The function now uses a mapping of grant type to specific handling functions. - Updated the logger.js to allow for an undefined `count` parameter, which means logging will not be limited unless specified. - Enhanced the localization file (oauth2.json) to include the new refresh token field. These changes aim to enhance the node-red-contrib-oauth2 package by providing a more comprehensive and user-friendly OAuth2 implementation. --- examples/node-red-contrib-oauth2.json | 2 +- src/libs/logger.js | 23 ++++-- src/locales/en-US/oauth2.json | 7 +- src/oauth2.html | 9 +- src/oauth2.js | 113 +++++++++++++++++--------- 5 files changed, 105 insertions(+), 49 deletions(-) diff --git a/examples/node-red-contrib-oauth2.json b/examples/node-red-contrib-oauth2.json index 4f5671f..2a6915d 100644 --- a/examples/node-red-contrib-oauth2.json +++ b/examples/node-red-contrib-oauth2.json @@ -1 +1 @@ -[{"id":"d15d33a4fa9a8ad9","type":"tab","label":"node-red-contrib-oauth2","disabled":false,"info":"","env":[]},{"id":"7e1a2f9059f99060","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"REFRESH","style":{"label":true,"stroke":"#7f7f7f","color":"#000000","fill":"#bfdbef"},"nodes":["d1ba341040cea0c3","aa24d69faa1640cd","efd1a2a910ca1051","a8fca004e704e071","9e9332c792dbdc01","7f22873286146e83"],"x":76,"y":499,"w":1210,"h":208},{"id":"7f22873286146e83","type":"group","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"via HTTP REQUEST","style":{"label":true},"nodes":["64d9243f.b7be7c","31727a2c.05a026","4030c52c.c2c29c","3b67977c.a53c08"],"x":102,"y":599,"w":1158,"h":82},{"id":"54025cb0a19e0f14","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"Client Credentials","style":{"label":true,"stroke":"#a4a4a4","color":"#ffffff","fill":"#3f93cf"},"nodes":["10de26226e66ea9e","147aae5c70a7eecb","1e2169485cd2be43","ca6a8cddea946ab2","c6d4eb5c867902eb","d7a2041ef2683870","3f5a09c4fc8e769f"],"x":74,"y":179,"w":1212,"h":142},{"id":"f37b3410d0e03c57","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"Authorization Code","style":{"label":true,"fill":"#3f93cf","color":"#ffffff"},"nodes":["8bd177259bc473f4","ee86852f62926632","d340377991d2d9b9","9e4d3edfde1766b9"],"x":74,"y":59,"w":1212,"h":82},{"id":"a783ce686ac81a0c","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"Password","style":{"label":true,"fill":"#3f93cf","color":"#ffffff"},"nodes":["5ff7fb2616706080","8eadc61e4e5b4ac2","d857d0bc3e90d394","95745c4253c151f0","dcbde702eae7191d","d6a9695a923ab18b","c5da03044bdca6f1"],"x":74,"y":339,"w":1212,"h":142},{"id":"368ef084fe6b53de","type":"group","z":"d15d33a4fa9a8ad9","name":"Grant Type","style":{"label":true,"fill":"#bfc7d7","color":"#0070c0"},"nodes":["7e1a2f9059f99060","54025cb0a19e0f14","f37b3410d0e03c57","a783ce686ac81a0c"],"x":48,"y":33,"w":1264,"h":700},{"id":"ee86852f62926632","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"Authorization Code","container":"oauth2Response","grant_type":"authorization_code","access_token_url":"http://localhost:8080/v1/oauth/tokens","authorization_endpoint":"http://localhost:8080/web/authorize","redirect_uri":"/oauth2/redirect_uri","open_authentication":"c9cf92ea-6f1d-44b6-86ed-6de1279f45d8","username":"","password":"","client_id":"test_client_1","client_secret":"test_secret","scope":"read_write","client_credentials_in_body":false,"rejectUnauthorized":true,"headers":{},"x":450,"y":100,"wires":[["8bd177259bc473f4"]]},{"id":"9e4d3edfde1766b9","type":"inject","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":100,"wires":[["ee86852f62926632"]]},{"id":"d7a2041ef2683870","type":"debug","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"DBG 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1190,"y":220,"wires":[]},{"id":"c6d4eb5c867902eb","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"Client Credentials","container":"oauth2Response","grant_type":"client_credentials","access_token_url":"http://localhost:8080/v1/oauth/tokens","authorization_endpoint":"http://localhost:8080/web/authorize","redirect_uri":"/oauth2/redirect_uri","open_authentication":"41595d3b-a2b5-41aa-84e7-02d2c7b54304","username":"","password":"","client_id":"test_client_1","client_secret":"test_secret","scope":"read_write","client_credentials_in_body":false,"rejectUnauthorized":true,"headers":{},"x":450,"y":220,"wires":[["1e2169485cd2be43"]]},{"id":"3f5a09c4fc8e769f","type":"inject","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":220,"wires":[["c6d4eb5c867902eb"]]},{"id":"d1ba341040cea0c3","type":"inject","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Refresh Token","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"3300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":208,"y":540,"wires":[["aa24d69faa1640cd"]]},{"id":"aa24d69faa1640cd","type":"function","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"set msg.oauth2Request","func":"let refreshToken = global.get('refreshToken');\n\nmsg.oauth2Request = { \n \"access_token_url\": \"http://localhost:8080/v1/oauth/tokens\",\n \"credentials\": {\n \"grant_type\": \"refresh_token\",\n \"client_id\": \"test_client_1\",\n \"client_secret\": \"test_secret\",\n \"scope\": \"read_write\",\n \"refresh_token\": refreshToken \n },\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":438,"y":540,"wires":[["efd1a2a910ca1051"]]},{"id":"efd1a2a910ca1051","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Set by msg.oauth2Request","container":"oauth2Response","grant_type":"set_by_credentials","access_token_url":"http://localhost:3000/oauth/token ","username":"pedroet","password":"","client_id":"confidentialApplication","client_secret":"topSecret","scope":"*","headers":{},"x":708,"y":540,"wires":[["a8fca004e704e071"]]},{"id":"a8fca004e704e071","type":"function","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":978,"y":540,"wires":[["9e9332c792dbdc01"]]},{"id":"9e9332c792dbdc01","type":"debug","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"DBG 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1187,"y":540,"wires":[]},{"id":"4030c52c.c2c29c","type":"inject","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"Refresh Token","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":218,"y":640,"wires":[["31727a2c.05a026"]]},{"id":"31727a2c.05a026","type":"function","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"SETTING REQUEST","func":"var REFRESH_TOKEN = global.get('refreshToken');\nvar ACCESS_TOKEN = global.get('accessToken');\n\nmsg.method = \"POST\"\nmsg.url = `http://localhost:8080/v1/oauth/tokens?grant_type=refresh_token&refresh_token=${REFRESH_TOKEN}`\n\nmsg.headers = {}\nmsg.headers[\"content-type\"] = \"application/json\"\nmsg.headers[\"Authorization\"] = 'Basic ' + Buffer.from('test_client_1:test_secret').toString('base64');\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":468,"y":640,"wires":[["64d9243f.b7be7c"]]},{"id":"64d9243f.b7be7c","type":"http request","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":798,"y":640,"wires":[["3b67977c.a53c08"]]},{"id":"3b67977c.a53c08","type":"debug","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"DBG 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1164,"y":640,"wires":[]},{"id":"1e2169485cd2be43","type":"function","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":220,"wires":[["d7a2041ef2683870"]]},{"id":"147aae5c70a7eecb","type":"function","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"set msg.oauth2Request","func":"msg.oauth2Request = { \n \"access_token_url\": \"http://localhost:8080/v1/oauth/tokens\",\n \"credentials\": {\n \"grant_type\": \"client_credentials\",\n \"client_id\": \"test_client_1\",\n \"client_secret\": \"test_secret\",\n \"scope\": \"read_write\"\n },\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":280,"wires":[["10de26226e66ea9e"]]},{"id":"10de26226e66ea9e","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"Set by msg.oauth2Request","container":"oauth2Response","grant_type":"set_by_credentials","access_token_url":"http://localhost:3000/oauth/token ","authorization_endpoint":"","open_authentication":"","username":"pedroet","password":"","client_id":"confidentialApplication","client_secret":"topSecret","scope":"*","client_credentials_in_body":false,"rejectUnauthorized":true,"headers":{},"x":720,"y":280,"wires":[["1e2169485cd2be43"]]},{"id":"ca6a8cddea946ab2","type":"inject","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":280,"wires":[["147aae5c70a7eecb"]]},{"id":"8bd177259bc473f4","type":"function","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":100,"wires":[["d340377991d2d9b9"]]},{"id":"d340377991d2d9b9","type":"debug","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"DBG 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1190,"y":100,"wires":[]},{"id":"5ff7fb2616706080","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"Set by msg.oauth2Request","container":"oauth2Response","grant_type":"set_by_credentials","access_token_url":"http://localhost:3000/oauth/token ","authorization_endpoint":"","open_authentication":"","username":"pedroet","password":"","client_id":"confidentialApplication","client_secret":"topSecret","scope":"*","client_credentials_in_body":false,"rejectUnauthorized":true,"headers":{},"x":720,"y":440,"wires":[["d857d0bc3e90d394"]]},{"id":"8eadc61e4e5b4ac2","type":"function","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"set msg.oauth2Request","func":"msg.oauth2Request = {\n \"access_token_url\": \"http://localhost:8080/v1/oauth/tokens\",\n \"credentials\": {\n \"grant_type\": \"password\",\n \"client_id\": \"test_client_1\",\n \"client_secret\": \"test_secret\",\n \"scope\": \"read_write\",\n \"username\": \"test@user\",\n \"password\": \"test_password\"\n },\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":440,"wires":[["5ff7fb2616706080"]]},{"id":"d857d0bc3e90d394","type":"function","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":380,"wires":[["dcbde702eae7191d"]]},{"id":"95745c4253c151f0","type":"inject","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":440,"wires":[["8eadc61e4e5b4ac2"]]},{"id":"dcbde702eae7191d","type":"debug","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"DBG 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1190,"y":380,"wires":[]},{"id":"d6a9695a923ab18b","type":"inject","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":380,"wires":[["c5da03044bdca6f1"]]},{"id":"c5da03044bdca6f1","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"Password","container":"oauth2Response","grant_type":"password","access_token_url":"http://localhost:8080/v1/oauth/tokens","authorization_endpoint":"http://localhost:8080/web/authorize","redirect_uri":"/oauth2/redirect_uri","open_authentication":"41595d3b-a2b5-41aa-84e7-02d2c7b54304","username":"caputo.marcos@gmail.com","password":"123123","client_id":"test_client_1","client_secret":"test_secret","scope":"read_write","client_credentials_in_body":false,"rejectUnauthorized":true,"headers":{},"x":480,"y":380,"wires":[["d857d0bc3e90d394"]]}] +[{"id":"d15d33a4fa9a8ad9","type":"tab","label":"node-red-contrib-oauth2","disabled":false,"info":"","env":[]},{"id":"368ef084fe6b53de","type":"group","z":"d15d33a4fa9a8ad9","name":"Grant Type","style":{"label":true,"fill":"#bfc7d7","color":"#0070c0"},"nodes":["7e1a2f9059f99060","54025cb0a19e0f14","f37b3410d0e03c57","a783ce686ac81a0c"],"x":48,"y":33,"w":1276,"h":760},{"id":"7e1a2f9059f99060","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"REFRESH","style":{"label":true,"stroke":"#7f7f7f","color":"#000000","fill":"#bfdbef"},"nodes":["d1ba341040cea0c3","efd1a2a910ca1051","a8fca004e704e071","9e9332c792dbdc01","7f22873286146e83","950f5dc3363c0b75","7eca8d657ce494b0","ec929c9a7e6cd3fa","f8505333b297b225","2b42ac78e4a9307d"],"x":74,"y":499,"w":1224,"h":268},{"id":"54025cb0a19e0f14","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"Client Credentials","style":{"label":true,"stroke":"#a4a4a4","color":"#ffffff","fill":"#3f93cf"},"nodes":["10de26226e66ea9e","147aae5c70a7eecb","1e2169485cd2be43","ca6a8cddea946ab2","c6d4eb5c867902eb","d7a2041ef2683870","3f5a09c4fc8e769f"],"x":74,"y":179,"w":1212,"h":142},{"id":"f37b3410d0e03c57","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"Authorization Code","style":{"label":true,"fill":"#3f93cf","color":"#ffffff"},"nodes":["8bd177259bc473f4","ee86852f62926632","d340377991d2d9b9","9e4d3edfde1766b9"],"x":74,"y":59,"w":1212,"h":82},{"id":"a783ce686ac81a0c","type":"group","z":"d15d33a4fa9a8ad9","g":"368ef084fe6b53de","name":"Password","style":{"label":true,"fill":"#3f93cf","color":"#ffffff"},"nodes":["5ff7fb2616706080","8eadc61e4e5b4ac2","d857d0bc3e90d394","95745c4253c151f0","dcbde702eae7191d","d6a9695a923ab18b","c5da03044bdca6f1"],"x":74,"y":339,"w":1212,"h":142},{"id":"7f22873286146e83","type":"group","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"via HTTP REQUEST","style":{"label":true},"nodes":["64d9243f.b7be7c","31727a2c.05a026","4030c52c.c2c29c","3b67977c.a53c08"],"x":104,"y":659,"w":1168,"h":82},{"id":"ee86852f62926632","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"Authorization Code","container":"oauth2Response","grant_type":"refresh_token","access_token_url":"http://localhost:8088/v1/oauth/tokens","authorization_endpoint":"http://localhost:8088/web/authorize","redirect_uri":"http://localhost:1880/oauth2/redirect","open_authentication":"1a4132fe-b0c6-4f0b-9e3c-ef40d5f6ef90","username":"","password":"","client_id":"test_client_1","client_secret":"test_secret","response_type":"","access_type":"","prompt":"","scope":"read_write","resource":"","state":"","proxy":"","debug":true,"senderr":true,"client_credentials_in_body":false,"rejectUnauthorized":false,"headers":{},"x":450,"y":100,"wires":[["8bd177259bc473f4"]]},{"id":"9e4d3edfde1766b9","type":"inject","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":100,"wires":[["ee86852f62926632"]]},{"id":"d7a2041ef2683870","type":"debug","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"DBG 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1190,"y":220,"wires":[]},{"id":"c6d4eb5c867902eb","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"Client Credentials","container":"oauth2Response","grant_type":"client_credentials","access_token_url":"http://localhost:8088/v1/oauth/tokens","authorization_endpoint":"http://localhost:8080/web/authorize","redirect_uri":"http://localhost:1880/oauth2/redirect","open_authentication":"41595d3b-a2b5-41aa-84e7-02d2c7b54304","username":"","password":"","client_id":"test_client_1","client_secret":"test_secret","response_type":"","access_type":"","prompt":"","scope":"read_write","resource":"","state":"","proxy":"","debug":true,"senderr":true,"client_credentials_in_body":false,"rejectUnauthorized":false,"headers":{},"x":450,"y":220,"wires":[["1e2169485cd2be43"]]},{"id":"3f5a09c4fc8e769f","type":"inject","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":220,"wires":[["c6d4eb5c867902eb"]]},{"id":"d1ba341040cea0c3","type":"inject","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Refresh Token","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"3300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":200,"y":540,"wires":[["efd1a2a910ca1051"]]},{"id":"efd1a2a910ca1051","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Refresh Token","container":"oauth2Response","grant_type":"refresh_token","access_token_url":"http://localhost:8088/v1/oauth/tokens","authorization_endpoint":"","redirect_uri":"http://localhost:1880/oauth2/redirect","open_authentication":"","username":"pedroet","password":"","client_id":"test_client_1","client_secret":"test_secret","response_type":"","access_type":"","refresh_token":"b44b45c2-bc7e-4c8f-859b-6890d9d22eeb","prompt":"","scope":"read_write","resource":"","state":"","proxy":"","debug":false,"senderr":false,"client_credentials_in_body":false,"rejectUnauthorized":false,"headers":{},"x":700,"y":540,"wires":[["a8fca004e704e071"]]},{"id":"a8fca004e704e071","type":"function","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":978,"y":540,"wires":[["9e9332c792dbdc01"]]},{"id":"9e9332c792dbdc01","type":"debug","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"DBG 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1187,"y":540,"wires":[]},{"id":"4030c52c.c2c29c","type":"inject","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"Refresh Token","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":230,"y":700,"wires":[["31727a2c.05a026"]]},{"id":"31727a2c.05a026","type":"function","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"SETTING REQUEST","func":"var REFRESH_TOKEN = global.get('refreshToken');\nvar ACCESS_TOKEN = global.get('accessToken');\n\nmsg.method = \"POST\"\nmsg.url = `http://localhost:8088/v1/oauth/tokens?grant_type=refresh_token&refresh_token=${REFRESH_TOKEN}`\n\nmsg.headers = {}\nmsg.headers[\"content-type\"] = \"application/json\"\nmsg.headers[\"Authorization\"] = 'Basic ' + Buffer.from('test_client_1:test_secret').toString('base64');\n\nreturn msg","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":452,"y":700,"wires":[["64d9243f.b7be7c"]]},{"id":"64d9243f.b7be7c","type":"http request","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":810,"y":700,"wires":[["3b67977c.a53c08"]]},{"id":"3b67977c.a53c08","type":"debug","z":"d15d33a4fa9a8ad9","g":"7f22873286146e83","name":"DBG 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1176,"y":700,"wires":[]},{"id":"1e2169485cd2be43","type":"function","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":220,"wires":[["d7a2041ef2683870"]]},{"id":"147aae5c70a7eecb","type":"function","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"set msg.oauth2Request","func":"msg.oauth2Request = { \n \"access_token_url\": \"http://localhost:8088/v1/oauth/tokens\",\n \"credentials\": {\n \"grant_type\": \"client_credentials\",\n \"client_id\": \"test_client_1\",\n \"client_secret\": \"test_secret\",\n \"scope\": \"read_write\"\n },\n};\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":280,"wires":[["10de26226e66ea9e"]]},{"id":"10de26226e66ea9e","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"Set by msg.oauth2Request","container":"oauth2Response","grant_type":"set_by_credentials","access_token_url":"http://localhost:3000/oauth/token ","authorization_endpoint":"","redirect_uri":"http://localhost:1880/oauth2/redirect","open_authentication":"","username":"pedroet","password":"","client_id":"confidentialApplication","client_secret":"topSecret","response_type":"","access_type":"","prompt":"","scope":"*","resource":"","state":"","proxy":"","senderr":false,"client_credentials_in_body":false,"rejectUnauthorized":false,"headers":{},"x":720,"y":280,"wires":[["1e2169485cd2be43"]]},{"id":"ca6a8cddea946ab2","type":"inject","z":"d15d33a4fa9a8ad9","g":"54025cb0a19e0f14","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":280,"wires":[["147aae5c70a7eecb"]]},{"id":"8bd177259bc473f4","type":"function","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":100,"wires":[["d340377991d2d9b9"]]},{"id":"d340377991d2d9b9","type":"debug","z":"d15d33a4fa9a8ad9","g":"f37b3410d0e03c57","name":"DBG 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1190,"y":100,"wires":[]},{"id":"5ff7fb2616706080","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"Set by msg.oauth2Request","container":"oauth2Response","grant_type":"set_by_credentials","access_token_url":"http://localhost:3000/oauth/token ","authorization_endpoint":"","redirect_uri":"http://localhost:1880/oauth2/redirect","open_authentication":"","username":"pedroet","password":"","client_id":"confidentialApplication","client_secret":"topSecret","response_type":"","access_type":"","prompt":"","scope":"*","resource":"","state":"","proxy":"","debug":false,"senderr":false,"client_credentials_in_body":false,"rejectUnauthorized":false,"headers":{},"x":720,"y":440,"wires":[["d857d0bc3e90d394"]]},{"id":"8eadc61e4e5b4ac2","type":"function","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"set msg.oauth2Request","func":"msg.oauth2Request = {\n \"access_token_url\": \"http://localhost:8088/v1/oauth/tokens\",\n \"credentials\": {\n \"grant_type\": \"password\",\n \"client_id\": \"test_client_1\",\n \"client_secret\": \"test_secret\",\n \"scope\": \"read_write\",\n \"username\": \"test@user\",\n \"password\": \"test_password\"\n },\n};\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":440,"wires":[["5ff7fb2616706080"]]},{"id":"d857d0bc3e90d394","type":"function","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":380,"wires":[["dcbde702eae7191d"]]},{"id":"95745c4253c151f0","type":"inject","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":440,"wires":[["8eadc61e4e5b4ac2"]]},{"id":"dcbde702eae7191d","type":"debug","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"DBG 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1190,"y":380,"wires":[]},{"id":"d6a9695a923ab18b","type":"inject","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":380,"wires":[["c5da03044bdca6f1"]]},{"id":"c5da03044bdca6f1","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"a783ce686ac81a0c","name":"Password","container":"oauth2Response","grant_type":"password","access_token_url":"http://localhost:8088/v1/oauth/tokens","authorization_endpoint":"http://localhost:8080/web/authorize","redirect_uri":"http://localhost:1880/oauth2/redirect","open_authentication":"41595d3b-a2b5-41aa-84e7-02d2c7b54304","username":"test@user","password":"test_password","client_id":"test_client_1","client_secret":"test_secret","response_type":"","access_type":"","prompt":"","scope":"read_write","resource":"","state":"","proxy":"","senderr":true,"client_credentials_in_body":false,"rejectUnauthorized":false,"headers":{},"x":480,"y":380,"wires":[["d857d0bc3e90d394"]]},{"id":"950f5dc3363c0b75","type":"oauth2","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Set by msg.oauth2Request","container":"oauth2Response","grant_type":"set_by_credentials","access_token_url":"http://localhost:3000/oauth/token ","authorization_endpoint":"","redirect_uri":"http://localhost:1880/oauth2/redirect","open_authentication":"","username":"pedroet","password":"","client_id":"confidentialApplication","client_secret":"topSecret","response_type":"","access_type":"","prompt":"","scope":"*","resource":"","state":"","proxy":"","senderr":true,"client_credentials_in_body":false,"rejectUnauthorized":false,"headers":{},"x":740,"y":600,"wires":[["ec929c9a7e6cd3fa"]]},{"id":"7eca8d657ce494b0","type":"function","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"set msg.oauth2Request","func":"let refreshToken = global.get('refreshToken');\n\nmsg.oauth2Request = { \n \"access_token_url\": \"http://localhost:8088/v1/oauth/tokens\",\n \"credentials\": {\n \"grant_type\": \"refresh_token\",\n \"client_id\": \"test_client_1\",\n \"client_secret\": \"test_secret\",\n \"scope\": \"read_write\",\n \"refresh_token\": refreshToken \n },\n};\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":470,"y":600,"wires":[["950f5dc3363c0b75"]]},{"id":"ec929c9a7e6cd3fa","type":"function","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Set refreshToken","func":"if (msg.oauth2Response.refresh_token) {\n global.set('refreshToken', msg.oauth2Response.refresh_token);\n}\nif (msg.oauth2Response.access_token) {\n global.set('accessToken', msg.oauth2Response.access_token);\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":980,"y":600,"wires":[["2b42ac78e4a9307d"]]},{"id":"f8505333b297b225","type":"inject","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"Refresh Token","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"3300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":200,"y":600,"wires":[["7eca8d657ce494b0"]]},{"id":"2b42ac78e4a9307d","type":"debug","z":"d15d33a4fa9a8ad9","g":"7e1a2f9059f99060","name":"DBG 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1190,"y":600,"wires":[]}] \ No newline at end of file diff --git a/src/libs/logger.js b/src/libs/logger.js index 512a35a..67e2866 100644 --- a/src/libs/logger.js +++ b/src/libs/logger.js @@ -2,7 +2,7 @@ const loggerStatusActive = { fill: 'yellow', shape: 'ring', text: 'Logging' }; const loggerStatusOff = { fill: 'green', shape: 'ring', text: '' }; const { inspect } = require('util'); -function Logger(label = '***', active = true, count = 111, msg) { +function Logger(label = '***', active = true, count = null, msg) { this.consoleFunction = console.log; this.sendFunction = this.sendConsole; this.type = 'debug'; @@ -18,15 +18,26 @@ Logger.prototype.objectDump = function (o) { }; Logger.prototype.send = function (message, type, node, sendFunction = this.sendFunction) { if (!this.active) return this; - if (--this.count) { + + const sendMessage = (msg) => { try { - sendFunction.apply(this, [message instanceof Object ? JSON.stringify(message) : message, type, node]); + sendFunction.call(this, msg instanceof Object ? JSON.stringify(msg) : msg, type, node); } catch (ex) { - sendFunction.apply(this, [ex.message, type, node]); + sendFunction.call(this, ex.message, type, node); + } + }; + + if (!this.count) { + sendMessage(message); + } + + if (this.count > 0) { + sendMessage(message); + if (--this.count === 0) { + this.setOff(); } - } else { - this.setOff(); } + return this; }; Logger.prototype.sendConsole = function (message, type = this.type, consoleFunction = this.consoleFunction) { diff --git a/src/locales/en-US/oauth2.json b/src/locales/en-US/oauth2.json index f6ece4e..3666748 100644 --- a/src/locales/en-US/oauth2.json +++ b/src/locales/en-US/oauth2.json @@ -29,7 +29,8 @@ "client_credentials_in_body": "Embedded Credentials", "proxy-config": "Proxy Configuration", "use-proxy": "Use proxy", - "senderr": "Only send non-2xx responses to Catch node" + "senderr": "Only send non-2xx responses to Catch node", + "refresh_token": "Refresh Token" }, "placeholder": { "name": "oauth2", @@ -49,13 +50,15 @@ "resource": "resource", "state": "state", "rejectUnauthorized": "rejectUnauthorized", - "headers": "headers" + "headers": "headers", + "refresh_token": "refresh_token" }, "opts": { "client_credentials": "Client Credentials", "password_credentials": "Password", "authorization_code": "Authorization Code", "implicit_flow": "Implicit Flow", + "refresh_token": "Refresh Token", "set_by_credentials": "- Set by msg.oauth2Request -" } } diff --git a/src/oauth2.html b/src/oauth2.html index acd4ee2..8165b2d 100644 --- a/src/oauth2.html +++ b/src/oauth2.html @@ -17,6 +17,7 @@ + @@ -53,7 +54,11 @@ - + +
+ + +
@@ -192,6 +197,7 @@ client_secret: { value: '' }, response_type: { value: '' }, access_type: { value: '' }, + refresh_token: { value: '' }, prompt: { value: '' }, scope: { value: '' }, resource: { value: '' }, @@ -247,6 +253,7 @@ }); const elementMapping = { + refresh_token: ['#node-access_token_url', '#node-client_id', '#node-client_secret', '#node-refresh_token', '#node-scope', '#node-rejectUnauthorized', '#node-client_credentials_in_body'], set_by_credentials: ['#node-rejectUnauthorized', '#node-client_credentials_in_body'], client_credentials: ['#node-access_token_url', '#node-client_id', '#node-client_secret', '#node-scope', '#node-resource', '#node-state', '#node-rejectUnauthorized', '#node-client_credentials_in_body'], password: ['#node-password_credentials', '#node-access_token_url', '#node-client_id', '#node-client_secret', '#node-scope', '#node-resource', '#node-state', '#node-rejectUnauthorized', '#node-client_credentials_in_body'], diff --git a/src/oauth2.js b/src/oauth2.js index 35f3921..850d850 100644 --- a/src/oauth2.js +++ b/src/oauth2.js @@ -1,3 +1,5 @@ +const { count } = require('console'); + module.exports = function (RED) { 'use strict'; @@ -18,7 +20,7 @@ module.exports = function (RED) { */ constructor(config) { RED.nodes.createNode(this, config); - this.logger = new Logger({ name: 'identifier', count: 10, active: config.debug || false, label: 'debug' }); + this.logger = new Logger({ name: 'identifier', count: null, active: config.debug || false, label: 'debug' }); this.logger.debug('Constructor: Initializing node with config', config); // Node configuration properties this.name = config.name || ''; @@ -26,6 +28,7 @@ module.exports = function (RED) { this.access_token_url = config.access_token_url || ''; this.redirect_uri = config.redirect_uri || ''; this.grant_type = config.grant_type || ''; + this.refresh_token = config.refresh_token || ''; this.username = config.username || ''; this.password = config.password || ''; this.client_id = config.client_id || ''; @@ -91,57 +94,62 @@ module.exports = function (RED) { * @returns {Object} - The request options. */ generateOptions(msg) { + // Log the start of the option generation process with the input message this.logger.debug('generateOptions: Configuring options with message', msg); + // Initialize the form object to hold the form data let form = {}; + // Set the default URL to the access token URL configured in the node let url = this.access_token_url; + // Initialize headers with default Content-Type and Accept headers let headers = { 'Content-Type': 'application/x-www-form-urlencoded', Accept: 'application/json' }; - if (msg.oauth2Request) { - const creds = msg.oauth2Request.credentials || {}; - form = { - grant_type: creds.grant_type || this.grant_type, - scope: creds.scope || this.scope, - resource: creds.resource || this.resource, - state: creds.state || this.state - }; + // Retrieve credentials from the message if available, otherwise use an empty object + const creds = msg.oauth2Request ? msg.oauth2Request.credentials || {} : {}; + // Initialize the form data with grant_type, scope, resource, and state + form = { + grant_type: creds.grant_type || this.grant_type, + scope: creds.scope || this.scope, + resource: creds.resource || this.resource, + state: creds.state || this.state + }; - if (creds.grant_type === 'password') { + // Define functions for different OAuth2 flows + const flows = { + // Password flow function + password: () => { + this.logger.debug('generateOptions: Password flow detected'); form.username = creds.username || this.username; form.password = creds.password || this.password; - } else if (creds.grant_type === 'refresh_token') { - form.refresh_token = creds.refresh_token; - } - - if (this.client_credentials_in_body) { + }, + // Client credentials flow function + client_credential: () => { + this.logger.debug('generateOptions: Client credentials flow detected'); form.client_id = creds.client_id || this.client_id; form.client_secret = creds.client_secret || this.client_secret; - } else { - headers.Authorization = 'Basic ' + Buffer.from(`${creds.client_id || this.client_id}:${creds.client_secret || this.client_secret}`).toString('base64'); - } - - url = msg.oauth2Request.access_token_url || this.access_token_url; - } else { - form = { - grant_type: this.grant_type, - scope: this.scope, - resource: this.resource, - state: this.state - }; - - if (this.grant_type === 'password') { - form.username = this.username; - form.password = this.password; - } else if (this.grant_type === 'authorization_code') { + }, + // Refresh token flow function + refresh_token: () => { + this.logger.debug('generateOptions: Refresh token flow detected'); + form.client_id = creds.client_id || this.client_id; + form.client_secret = creds.client_secret || this.client_secret; + form.refresh_token = creds.refresh_token || this.refresh_token; + }, + // Authorization code flow function + authorization_code: () => { + this.logger.debug('generateOptions: Authorization code flow detected'); const credentials = RED.nodes.getCredentials(this.id) || {}; if (credentials) { form.code = credentials.code; form.redirect_uri = this.redirect_uri; } - } else if (this.grant_type === 'implicit_flow') { + }, + // Implicit flow function + implicit_flow: () => { + this.logger.debug('generateOptions: Implicit flow detected'); const credentials = RED.nodes.getCredentials(this.id) || {}; if (credentials) { form.client_id = this.client_id; @@ -150,17 +158,44 @@ module.exports = function (RED) { form.grant_type = 'authorization_code'; form.redirect_uri = this.redirect_uri; } + }, + // Set by credentials function + set_by_credentials: () => { + this.logger.debug('generateOptions: Set by credentials flow detected'); + if (msg.oauth2Request) { + const credentials = msg.oauth2Request.credentials || {}; + form.client_id = credentials.client_id || this.client_id; + form.client_secret = credentials.client_secret || this.client_secret; + form.refresh_token = credentials.refresh_token || ''; + } } + }; - if (this.client_credentials_in_body) { - form.client_id = this.client_id; - form.client_secret = this.client_secret; - } else { - headers.Authorization = 'Basic ' + Buffer.from(`${this.client_id}:${this.client_secret}`).toString('base64'); - } + // Check if the grant type from the credentials is supported and call the corresponding function + if (creds.grant_type && flows[creds.grant_type]) { + flows[creds.grant_type](); + } + // Check if the default grant type of the node is supported and call the corresponding function + else if (this.grant_type && flows[this.grant_type]) { + flows[this.grant_type](); } + // Check if client credentials should be included in the body + if (this.client_credentials_in_body) { + this.logger.debug('generateOptions: Client credentials in body detected, using credentials'); + form.client_id = creds.client_id || this.client_id; + form.client_secret = creds.client_secret || this.client_secret; + } else { + // Otherwise, add the Authorization header with client credentials encoded in base64 + headers.Authorization = 'Basic ' + Buffer.from(`${creds.client_id || this.client_id}:${creds.client_secret || this.client_secret}`).toString('base64'); + } + + // Set the URL to the access token URL from the message if available, otherwise use the default + url = msg.oauth2Request ? msg.oauth2Request.access_token_url || this.access_token_url : this.access_token_url; + + // Log the final generated options this.logger.debug('generateOptions: Returning options', { method: 'POST', url, headers, form }); + // Return the HTTP request options return { method: 'POST', url: url, From fe2bcd794c838113764df17f00aae7d4cfad2a4e Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Thu, 23 May 2024 19:59:01 -0300 Subject: [PATCH 6/8] Update dependencies and adjust code for compatibility This commit updates several dependencies to their latest versions, including axios, eslint, and prettier. It also includes adjustments to the codebase to ensure compatibility with the updated dependencies. Notably, the eslint-plugin-n and eslint-plugin-jsdoc have been updated, which required changes to the eslint configuration. Additionally, the Logger.prototype.objectDump method in logger.j has been modified to handle invalid objects more gracefully. --- package-lock.json | 1493 ++++++++++++++++--- package.json | 35 +- src/libs/logger.js | 11 +- src/oauth2.js | 2 - test/logger_spec.js | 166 +++ test/node-loading_spec.js | 21 + test/oauth2/oauth2-edge-cases_spec.js | 217 +++ test/oauth2/oauth2-error-handling_spec.js | 123 ++ test/oauth2/oauth2-flows_spec.js | 107 ++ test/oauth2/oauth2-generate-options_spec.js | 357 +++++ test/oauth2/oauth2-grant-types_spec.js | 299 ++++ test/oauth2/oauth2-loading_spec.js | 45 + test/oauth2/oauth2-post-request_spec.js | 76 + test/oauth2_spec.js | 1157 -------------- test/setup-teardown._spec.js | 81 + yarn.lock | 1102 ++++++++++---- 16 files changed, 3597 insertions(+), 1695 deletions(-) create mode 100644 test/logger_spec.js create mode 100644 test/node-loading_spec.js create mode 100644 test/oauth2/oauth2-edge-cases_spec.js create mode 100644 test/oauth2/oauth2-error-handling_spec.js create mode 100644 test/oauth2/oauth2-flows_spec.js create mode 100644 test/oauth2/oauth2-generate-options_spec.js create mode 100644 test/oauth2/oauth2-grant-types_spec.js create mode 100644 test/oauth2/oauth2-loading_spec.js create mode 100644 test/oauth2/oauth2-post-request_spec.js delete mode 100644 test/oauth2_spec.js create mode 100644 test/setup-teardown._spec.js diff --git a/package-lock.json b/package-lock.json index 5b4f8ea..24f1d71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,27 +9,28 @@ "version": "6.0.0", "license": "MIT", "dependencies": { - "axios": ">=1.3.3", + "axios": "^1.7.2", "mocha": "^10.4.0" }, "devDependencies": { "@babel/eslint-parser": "^7.24.5", "@babel/preset-env": "^7.24.5", - "eslint": "^8.57.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^44.2.4", + "eslint": "^8.0.1", + "eslint-config-prettier": "^9.1.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jsdoc": "^48.2.6", "eslint-plugin-mocha": "^10.4.3", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-n": "^17.7.0", + "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.1.1", "jsdoc": "^4.0.3", "json-schema": ">=0.4.0", "nock": "^13.5.4", "node-red": "^3.1.9", "node-red-node-test-helper": "^0.3.4", - "prettier": "^2.8.8", + "nyc": "^15.1.0", + "prettier": "^3.2.5", "should": "^13.2.3" }, "engines": { @@ -41,7 +42,6 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -77,7 +77,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dev": true, - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", @@ -103,6 +102,12 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@babel/eslint-parser": { "version": "7.24.5", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.5.tgz", @@ -126,7 +131,6 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.24.5", "@jridgewell/gen-mapping": "^0.3.5", @@ -447,7 +451,6 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, - "peer": true, "dependencies": { "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.5", @@ -1712,7 +1715,6 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.24.2", "@babel/generator": "^7.24.5", @@ -1744,12 +1746,15 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.39.4", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz", - "integrity": "sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz", + "integrity": "sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ==", "dev": true, "dependencies": { - "comment-parser": "1.3.1", + "@types/eslint": "^8.56.5", + "@types/estree": "^1.0.5", + "@typescript-eslint/types": "^7.2.0", + "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, @@ -1831,6 +1836,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", @@ -1873,12 +1890,119 @@ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1893,7 +2017,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -1903,7 +2026,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "peer": true, "engines": { "node": ">=6.0.0" } @@ -1912,15 +2034,13 @@ "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2200,6 +2320,18 @@ "node": ">= 8" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@sindresorhus/is": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", @@ -2259,12 +2391,34 @@ "node": ">=14.16" } }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -2293,6 +2447,19 @@ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", "dev": true }, + "node_modules/@typescript-eslint/types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", + "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -2360,6 +2527,19 @@ "node": ">= 6.0.0" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2422,6 +2602,18 @@ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", "dev": true }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", @@ -2429,6 +2621,12 @@ "dev": true, "optional": true }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", @@ -2614,9 +2812,9 @@ } }, "node_modules/axios": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", - "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -2893,27 +3091,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/builtins/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/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", @@ -2962,6 +3139,21 @@ "node": ">=14.16" } }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -2991,20 +3183,18 @@ } }, "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001620", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", - "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", + "version": "1.0.30001621", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", + "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", "dev": true, "funding": [ { @@ -3130,6 +3320,15 @@ "node": ">=10" } }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/cli-table": { "version": "0.3.11", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", @@ -3207,9 +3406,9 @@ } }, "node_modules/comment-parser": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", - "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, "engines": { "node": ">= 12.0.0" @@ -3225,6 +3424,12 @@ "minimist": "^1.1.0" } }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, "node_modules/component-emitter": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", @@ -3304,11 +3509,10 @@ } }, "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, - "peer": true + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "node_modules/cookie": { "version": "0.5.0", @@ -3504,14 +3708,12 @@ } }, "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/decompress-response": { @@ -3547,6 +3749,21 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -3756,9 +3973,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.775", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", - "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==", + "version": "1.4.780", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.780.tgz", + "integrity": "sha512-NPtACGFe7vunRYzvYqVRhQvsDrTevxpgDKxG/Vcbe0BTNOY+5+/2mOXSw2ls7ToNbE5Bf/+uQbjTxcmwMozpCw==", "dev": true }, "node_modules/emoji-regex": { @@ -3784,6 +4001,19 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz", + "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/enquirer": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", @@ -3942,6 +4172,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -4020,10 +4256,37 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-compat-utils": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz", + "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==", + "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-compat-utils/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/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -4107,47 +4370,24 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "node_modules/eslint-plugin-es-x": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz", + "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==", "dev": true, "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.5.0" }, "engines": { - "node": ">=8.10.0" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/ota-meshi" }, "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "eslint": ">=8" } }, "node_modules/eslint-plugin-import": { @@ -4203,25 +4443,25 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "44.2.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz", - "integrity": "sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg==", + "version": "48.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.6.tgz", + "integrity": "sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.39.4", + "@es-joy/jsdoccomment": "~0.43.0", "are-docs-informative": "^0.0.2", - "comment-parser": "1.3.1", + "comment-parser": "1.4.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.5.1", - "spdx-expression-parse": "^3.0.1" + "semver": "^7.6.1", + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { @@ -4280,29 +4520,77 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-n": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", - "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "node_modules/eslint-plugin-mocha/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.7.0.tgz", + "integrity": "sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==", "dev": true, "dependencies": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" + "@eslint-community/eslint-utils": "^4.4.0", + "enhanced-resolve": "^5.15.0", + "eslint-plugin-es-x": "^7.5.0", + "get-tsconfig": "^4.7.0", + "globals": "^15.0.0", + "ignore": "^5.2.4", + "minimatch": "^9.0.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=12.22.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://opencollective.com/eslint" }, "peerDependencies": { - "eslint": ">=7.0.0" + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.3.0.tgz", + "integrity": "sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/eslint-plugin-n/node_modules/semver": { @@ -4318,21 +4606,30 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", "dev": true, "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" }, "engines": { - "node": ">=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } @@ -4524,6 +4821,18 @@ "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -4553,6 +4862,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", @@ -4866,6 +5188,23 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4937,6 +5276,19 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -4991,6 +5343,26 @@ "node": ">= 0.6" } }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", @@ -5116,7 +5488,6 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" } @@ -5148,6 +5519,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -5177,6 +5557,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -5216,9 +5608,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5382,6 +5774,22 @@ "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", "dev": true }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -5450,6 +5858,12 @@ "node": ">=14" } }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -5615,10 +6029,20 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "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.", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5871,6 +6295,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -5916,6 +6352,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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 + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -5945,6 +6387,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -5957,6 +6408,157 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/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/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/js-sdsl": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", @@ -6045,7 +6647,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -6088,7 +6689,6 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -6204,6 +6804,12 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -6321,7 +6927,6 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "optional": true, "dependencies": { "semver": "^6.0.0" }, @@ -6909,10 +7514,22 @@ } } }, - "node_modules/node-red": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz", - "integrity": "sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw==", + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-red": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/node-red/-/node-red-3.1.9.tgz", + "integrity": "sha512-SNuXZoplH/UewibVbe/UPyMhsmeuoCGjDVmBmWo+Wj8arE14PF1cOoTKdnbv5F/vPc1kbUvd0+oWCm9kv7wfkw==", "dev": true, "dependencies": { "@node-red/editor-api": "3.1.9", @@ -7137,6 +7754,227 @@ "js-sdsl": "4.3.0" } }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nyc/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/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 + }, + "node_modules/nyc/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, + "dependencies": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/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, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/oauth2orize": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz", @@ -7347,6 +8185,42 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7495,6 +8369,70 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -7514,15 +8452,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -7546,6 +8484,18 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/propagate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", @@ -7813,18 +8763,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -7869,6 +8807,18 @@ "integrity": "sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==", "dev": true }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7886,6 +8836,12 @@ "node": ">=0.10.0" } }, + "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 + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -7933,6 +8889,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", @@ -8167,8 +9132,7 @@ "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, - "optional": true + "dev": true }, "node_modules/set-function-length": { "version": "1.2.2", @@ -8314,8 +9278,7 @@ "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, - "optional": true + "dev": true }, "node_modules/sinon": { "version": "11.1.2", @@ -8357,6 +9320,32 @@ "node": ">=8" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", @@ -8364,9 +9353,9 @@ "dev": true }, "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", @@ -8374,9 +9363,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", "dev": true }, "node_modules/split2": { @@ -8388,6 +9377,12 @@ "readable-stream": "^3.0.0" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -8525,12 +9520,12 @@ } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -8613,6 +9608,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -8636,6 +9656,40 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -8726,6 +9780,15 @@ "json5": "lib/cli.js" } }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -8754,15 +9817,12 @@ } }, "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==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/type-is": { @@ -8866,6 +9926,15 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", @@ -9112,6 +10181,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -9206,6 +10281,18 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "node_modules/ws": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", @@ -9317,6 +10404,28 @@ "node": ">=10" } }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index c194263..7780edd 100644 --- a/package.json +++ b/package.json @@ -33,29 +33,33 @@ "oauth2": "src/oauth2.js" } }, + "resolutions": { + "eslint": "^8.0.1" + }, "dependencies": { - "axios": ">=1.3.3", + "axios": "^1.7.2", "mocha": "^10.4.0" }, "devDependencies": { - "@babel/eslint-parser": "^7.24.5", "@babel/preset-env": "^7.24.5", - "eslint": "^8.57.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^44.2.4", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jsdoc": "^48.2.6", "eslint-plugin-mocha": "^10.4.3", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-n": "^17.7.0", + "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.1.1", "jsdoc": "^4.0.3", "json-schema": ">=0.4.0", "nock": "^13.5.4", "node-red": "^3.1.9", "node-red-node-test-helper": "^0.3.4", - "prettier": "^2.8.8", - "should": "^13.2.3" + "nyc": "^15.1.0", + "prettier": "^3.2.5", + "should": "^13.2.3", + "eslint": "^8.0.1", + "eslint-config-standard": "^17.1.0", + "@babel/eslint-parser": "^7.24.5" }, "eslintConfig": { "extends": "./.eslintrc.yml" @@ -66,11 +70,14 @@ "format": "prettier --plugin-search-dir . --write ./src/.", "doc": "jsdoc -c jsdoc.json", "test1": "mocha \"test/**/*_spec.js\"", - "test": "mocha --recursive", - "coverage": "nyc npm test" + "test": "mocha --recursive --async-stack-traces --full-trace ", + "coverage": "nyc npm test && nyc report --reporter=text-summary --reporter=html" }, "nyc": { - "reporter": ["html", "text"], + "reporter": [ + "html", + "text" + ], "report-dir": "./coverage" } } diff --git a/src/libs/logger.js b/src/libs/logger.js index 67e2866..e59d04e 100644 --- a/src/libs/logger.js +++ b/src/libs/logger.js @@ -14,10 +14,16 @@ function Logger(label = '***', active = true, count = null, msg) { return msg ? this.sendInfo(msg) : this; } Logger.prototype.objectDump = function (o) { - return o ? this.send(inspect(o, { showHidden: true, depth: null })) : this; + if (typeof o !== 'object' || o === null) { + this.send('Invalid object', 'error'); + return this; + } + this.send(inspect(o, { showHidden: true, depth: null }), 'info'); + return this; }; + Logger.prototype.send = function (message, type, node, sendFunction = this.sendFunction) { - if (!this.active) return this; + if (!this.active || !type || message == null) return this; const sendMessage = (msg) => { try { @@ -40,6 +46,7 @@ Logger.prototype.send = function (message, type, node, sendFunction = this.sendF return this; }; + Logger.prototype.sendConsole = function (message, type = this.type, consoleFunction = this.consoleFunction) { const ts = new Date().toString().split(' '); consoleFunction.apply(this, [[parseInt(ts[2], 10), ts[1], ts[4]].join(' ') + ' - [' + type + '] ' + this.label + ' ' + message]); diff --git a/src/oauth2.js b/src/oauth2.js index 850d850..ffc1260 100644 --- a/src/oauth2.js +++ b/src/oauth2.js @@ -1,5 +1,3 @@ -const { count } = require('console'); - module.exports = function (RED) { 'use strict'; diff --git a/test/logger_spec.js b/test/logger_spec.js new file mode 100644 index 0000000..1cd309f --- /dev/null +++ b/test/logger_spec.js @@ -0,0 +1,166 @@ +const assert = require('assert'); +const sinon = require('sinon'); +const Logger = require('node-red-contrib-oauth2/src/libs/logger'); // Adjust the path as necessary + +const loggerStatusActive = { fill: 'yellow', shape: 'ring', text: 'Logging' }; + +describe('Logger', function () { + let consoleStub; + + beforeEach(function () { + consoleStub = sinon.stub(console, 'log'); + }); + + afterEach(function () { + consoleStub.restore(); + }); + + it('should initialize with default values', function () { + const logger = new Logger(); + assert.strictEqual(logger.label, '***'); + assert.strictEqual(logger.active, true); + assert.strictEqual(logger.count, null); + }); + + it('should initialize with given values', function () { + const logger = new Logger('test', false, 5); + assert.strictEqual(logger.label, 'test'); + assert.strictEqual(logger.active, false); + assert.strictEqual(logger.count, 5); + }); + + it('should set logger active status and count', function () { + const logger = new Logger(); + logger.set(false, 10); + assert.strictEqual(logger.active, false); + assert.strictEqual(logger.count, 10); + }); + + it('should log a message when active', function () { + const logger = new Logger(); + logger.send('test message', 'info'); + assert(consoleStub.calledWith(sinon.match('test message'))); + }); + + it('should not log a message when inactive', function () { + const logger = new Logger(); + logger.set(false); + logger.send('test message', 'info'); + assert(consoleStub.notCalled); + }); + + it('should decrement count and stop logging when count reaches zero', function () { + const logger = new Logger('test', true, 1); + logger.send('test message 1', 'info'); + assert(consoleStub.calledOnce); + logger.send('test message 2', 'info'); + assert(consoleStub.calledOnce); + }); + + it('should dump object', function () { + const logger = new Logger(); + const obj = { key: 'value' }; + logger.objectDump(obj); + assert(consoleStub.calledWith(sinon.match('key'))); + assert(consoleStub.calledWith(sinon.match('value'))); + }); + + // Additional tests to improve coverage + + it('should not log message when type is not specified', function () { + const logger = new Logger(); + logger.send('test message'); + assert(consoleStub.notCalled); + }); + + it('should log different types of messages', function () { + const logger = new Logger(); + logger.send('info message', 'info'); + assert(consoleStub.calledWith(sinon.match('info message'))); + logger.send('error message', 'error'); + assert(consoleStub.calledWith(sinon.match('error message'))); + }); + + it('should handle edge case with null count', function () { + const logger = new Logger('test', true, null); + logger.send('test message', 'info'); + assert(consoleStub.calledWith(sinon.match('test message'))); + }); + + it('should handle undefined or null inputs gracefully', function () { + const logger = new Logger(); + logger.send(null, 'info'); + assert(consoleStub.notCalled); + logger.send(undefined, 'info'); + assert(consoleStub.notCalled); + }); + + it('should reset count and become active when count is reset', function () { + const logger = new Logger('test', true, 1); + logger.send('test message 1', 'info'); + assert(consoleStub.calledOnce); + logger.set(true, 2); + logger.send('test message 2', 'info'); + assert(consoleStub.calledTwice); + }); + + it('should not throw error on objectDump with non-object', function () { + const logger = new Logger(); + logger.objectDump('string'); + assert(consoleStub.calledWith(sinon.match('Invalid object'))); + }); + + // Additional tests for full coverage + + it('should handle sendConsole properly', function () { + const logger = new Logger(); + const message = 'console message'; + logger.sendConsole(message, 'info'); + assert(consoleStub.calledWith(sinon.match(message))); + }); + + it('should handle sendErrorAndDump properly', function () { + const logger = new Logger(); + const obj = { key: 'value' }; + const errorMsg = 'error message'; + logger.sendErrorAndDump(errorMsg, obj); + assert(consoleStub.calledWith(sinon.match(errorMsg))); + assert(consoleStub.calledWith(sinon.match('key'))); + }); + + it('should handle sendErrorAndStackDump properly', function () { + const logger = new Logger(); + const errorMsg = 'error message'; + const error = new Error('test error'); + logger.sendErrorAndStackDump(errorMsg, error); + assert(consoleStub.calledWith(sinon.match(errorMsg))); + assert(consoleStub.calledWith(sinon.match(error.stack))); + }); + + it('should setNodeStatus properly', function () { + const logger = new Logger(); + const node = { + status: sinon.spy() + }; + logger.setNodeStatus(node); + assert(node.status.calledWith(loggerStatusActive)); + }); + + it('should handle setOff and setOn properly', function () { + const logger = new Logger('test', true, 1); + logger.setOff(); + assert.strictEqual(logger.active, false); + logger.setOn(); + assert.strictEqual(logger.active, true); + assert.strictEqual(logger.count, 1); + }); + + it('should handle stackDump properly', function () { + const logger = new Logger(); + const error = new Error('test error'); + logger.stackDump(error); + assert(consoleStub.calledWith(sinon.match(error.stack))); + logger.stackDump(); + assert(consoleStub.calledOnce); // As console.trace is used here + }); +}); diff --git a/test/node-loading_spec.js b/test/node-loading_spec.js new file mode 100644 index 0000000..21f68aa --- /dev/null +++ b/test/node-loading_spec.js @@ -0,0 +1,21 @@ +const helper = require('node-red-node-test-helper'); +const oauth2Node = require('../src/oauth2.js'); + +describe('OAuth2 Node Loading', function () { + it('should be loaded', function (done) { + this.timeout(30000); // Increase timeout for individual test + console.log('Testing if node loads correctly...'); + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + try { + n1.should.have.property('name', 'oauth2'); + console.log('Node loaded successfully'); + done(); + } catch (err) { + console.error('Node failed to load', err); + done(err); + } + }); + }); +}); diff --git a/test/oauth2/oauth2-edge-cases_spec.js b/test/oauth2/oauth2-edge-cases_spec.js new file mode 100644 index 0000000..a9f4016 --- /dev/null +++ b/test/oauth2/oauth2-edge-cases_spec.js @@ -0,0 +1,217 @@ +const should = require('should'); // eslint-disable-line no-unused-vars +const helper = require('node-red-node-test-helper'); +const nock = require('nock'); +const oauth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); + +helper.init(require.resolve('node-red')); + +describe('OAuth2 Node Edge Cases', function () { + before(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Starting Node-RED server...'); + helper.startServer(done); + }); + + after(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Stopping Node-RED server...'); + helper.stopServer(done); + }); + + afterEach(function (done) { + console.log('Unloading flows...'); + helper.unload().then(function () { + nock.cleanAll(); + done(); + }); + }); + + it('should handle custom headers in response', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing custom headers handling...'); + const flow = [ + { + id: 'n1', + type: 'oauth2', + name: 'test name', + wires: [['n2']], + access_token_url: 'https://example.com/oauth2/token', + headers: { 'X-Custom-Header': 'CustomValue' } + }, + { id: 'n2', type: 'helper' } + ]; + + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }, { 'x-custom-header': 'CustomValue' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('headers'); + msg.headers.should.have.property('x-custom-header', 'CustomValue'); + scope.done(); + done(); + } catch (err) { + console.error('Failed custom headers handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); + + it('should handle multiple scopes', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing multiple scopes handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed multiple scopes handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'scope1 scope2' + } + } + }); + }); + }); + + it('should handle proxy settings', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing proxy settings handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], access_token_url: 'https://example.com/oauth2/token' }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + const proxySettings = { + prox: 'http://proxy.example.com:8080' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + n1.prox = proxySettings.prox; + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); + done(); + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + it('should handle network failure', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing network failure handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').replyWithError('Network error'); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('message', 'Network error'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed network failure handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); +}); diff --git a/test/oauth2/oauth2-error-handling_spec.js b/test/oauth2/oauth2-error-handling_spec.js new file mode 100644 index 0000000..e54ca55 --- /dev/null +++ b/test/oauth2/oauth2-error-handling_spec.js @@ -0,0 +1,123 @@ +const should = require('should'); // eslint-disable-line no-unused-vars +const helper = require('node-red-node-test-helper'); +const nock = require('nock'); +const oauth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); + +helper.init(require.resolve('node-red')); + +describe('OAuth2 Node Error Handling', function () { + before(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Starting Node-RED server...'); + helper.startServer(done); + }); + + after(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Stopping Node-RED server...'); + helper.stopServer(done); + }); + + afterEach(function (done) { + console.log('Unloading flows...'); + helper.unload().then(function () { + nock.cleanAll(); + done(); + }); + }); + + it('should handle errors', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing error handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for invalid-url.com...'); + const scope = nock('https://invalid-url.com').post('/').replyWithError('mocked error'); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('message', 'mocked error'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed error handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://invalid-url.com', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + it('should handle invalid client credentials', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing invalid client credentials handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, + { id: 'n3', type: 'helper' } + ]; + const credentials = { + clientId: 'invalidClientId', + clientSecret: 'invalidClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n3 = helper.getNode('n3'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(401, { error: 'invalid_client' }); + + n3.on('input', function (msg) { + console.log('Received input on error helper node'); + try { + msg.should.have.property('oauth2Error'); + msg.oauth2Error.should.have.property('status', 401); + msg.oauth2Error.data.should.have.property('error', 'invalid_client'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed invalid client credentials handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'invalidClientId', + client_secret: 'invalidClientSecret', + scope: 'testScope' + } + } + }); + }); + }); +}); diff --git a/test/oauth2/oauth2-flows_spec.js b/test/oauth2/oauth2-flows_spec.js new file mode 100644 index 0000000..c3363d3 --- /dev/null +++ b/test/oauth2/oauth2-flows_spec.js @@ -0,0 +1,107 @@ +const helper = require('node-red-node-test-helper'); +const nock = require('nock'); +const oauth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); + +describe('OAuth2 Node Flows', function () { + it('should handle input and make POST request', async function () { + this.timeout(30000); // Increase timeout for individual test + console.log('Testing input handling and POST request...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + await helper.load(oauth2Node, flow, credentials); + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + return new Promise((resolve, reject) => { + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + resolve(); + } catch (err) { + console.error('Failed input handling test', err); + reject(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + it('should handle authorization_code grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing authorization_code grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(oauth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { + access_token: 'mocked_access_token', + refresh_token: 'mocked_refresh_token' + }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed authorization_code grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'authorization_code', + code: 'testAuthorizationCode', + redirect_uri: 'https://example.com/redirect', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); + + // Add other OAuth2 flow related tests here... +}); diff --git a/test/oauth2/oauth2-generate-options_spec.js b/test/oauth2/oauth2-generate-options_spec.js new file mode 100644 index 0000000..1d695d6 --- /dev/null +++ b/test/oauth2/oauth2-generate-options_spec.js @@ -0,0 +1,357 @@ +const helper = require('node-red-node-test-helper'); +const OAuth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); +const should = require('should'); + +helper.init(require.resolve('node-red')); + +describe('OAuth2 Node generateOptions', function () { + const defaultCredentials = { + client_id: 'testClientId', + client_secret: 'testClientSecret', + username: 'testUser', + password: 'testPassword', + refresh_token: 'testRefreshToken', + redirect_uri: 'https://example.com/redirect', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const createFlow = (credentials = defaultCredentials) => [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], ...credentials }, + { id: 'n2', type: 'helper' } + ]; + + const testGenerateOptions = (flow, input, expectedForm, expectedHeaders, done) => { + helper.load(OAuth2Node, flow, function () { + const n1 = helper.getNode('n1'); + console.log('Input to generateOptions:', JSON.stringify(input, null, 2)); + const options = n1.generateOptions(input); + console.log('Generated options:', JSON.stringify(options, null, 2)); + try { + options.form.should.deepEqual(expectedForm); + options.headers.should.deepEqual(expectedHeaders); + done(); + } catch (err) { + done(err); + } + }); + }; + + this.timeout(60000); // Increase timeout to 60 seconds + + it('should handle password flow', function (done) { + const flow = createFlow(); + const input = { + oauth2Request: { + credentials: { + grant_type: 'password', + client_id: 'testClientId', + client_secret: 'testClientSecret', + username: 'testUser', + password: 'testPassword', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'password', + username: 'testUser', + password: 'testPassword', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('testClientId:testClientSecret').toString('base64') + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should handle client credentials flow', function (done) { + const flow = createFlow(); + const input = { + oauth2Request: { + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'client_credentials', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('testClientId:testClientSecret').toString('base64') + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should handle refresh token flow', function (done) { + const flow = createFlow(); + const input = { + oauth2Request: { + credentials: { + grant_type: 'refresh_token', + client_id: 'testClientId', + client_secret: 'testClientSecret', + refresh_token: 'testRefreshToken', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'refresh_token', + client_id: 'testClientId', + client_secret: 'testClientSecret', + refresh_token: 'testRefreshToken', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('testClientId:testClientSecret').toString('base64') + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should handle authorization code flow', function (done) { + const flow = createFlow(); + const input = { + oauth2Request: { + credentials: { + grant_type: 'authorization_code', + client_id: 'testClientId', + client_secret: 'testClientSecret', + code: 'testCode', + redirect_uri: 'https://example.com/redirect', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'authorization_code', + code: undefined, + redirect_uri: 'https://example.com/redirect', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('testClientId:testClientSecret').toString('base64') + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should handle implicit flow', function (done) { + const flow = createFlow(); + const input = { + oauth2Request: { + credentials: { + grant_type: 'implicit_flow', + client_id: 'testClientId', + client_secret: 'testClientSecret', + code: 'testCode', + redirect_uri: 'https://example.com/redirect', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'authorization_code', + client_id: 'testClientId', + client_secret: 'testClientSecret', + code: undefined, + redirect_uri: 'https://example.com/redirect', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('testClientId:testClientSecret').toString('base64') + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should handle set by credentials flow', function (done) { + const flow = createFlow(); + const input = { + oauth2Request: { + credentials: { + grant_type: 'set_by_credentials', + client_id: 'setClientId', + client_secret: 'setClientSecret', + refresh_token: 'setRefreshToken', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'set_by_credentials', + client_id: 'setClientId', + client_secret: 'setClientSecret', + refresh_token: 'setRefreshToken', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + const expectedHeaders = { + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('setClientId:setClientSecret').toString('base64'), + 'Content-Type': 'application/x-www-form-urlencoded' + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should include client credentials in the body if configured', function (done) { + const flow = createFlow({ client_credentials_in_body: true }); + const input = { + oauth2Request: { + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json' + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should add Authorization header with client credentials if not in body', function (done) { + const flow = createFlow({ client_credentials_in_body: false }); + const input = { + oauth2Request: { + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'client_credentials', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('testClientId:testClientSecret').toString('base64') + }; + + testGenerateOptions(flow, input, expectedForm, expectedHeaders, done); + }); + + it('should use access token URL from the message if available', function (done) { + const flow = createFlow(); + const input = { + oauth2Request: { + access_token_url: 'https://custom.example.com/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + } + } + }; + + const expectedForm = { + grant_type: 'client_credentials', + scope: 'testScope', + resource: 'testResource', + state: 'testState' + }; + + const expectedHeaders = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + Authorization: 'Basic ' + Buffer.from('testClientId:testClientSecret').toString('base64') + }; + + helper.load(OAuth2Node, flow, function () { + const n1 = helper.getNode('n1'); + console.log('Input to generateOptions:', JSON.stringify(input, null, 2)); + const options = n1.generateOptions(input); + console.log('Generated options:', JSON.stringify(options, null, 2)); + try { + options.form.should.deepEqual(expectedForm); + options.headers.should.deepEqual(expectedHeaders); + options.url.should.equal('https://custom.example.com/token'); + done(); + } catch (err) { + done(err); + } + }); + }); +}); diff --git a/test/oauth2/oauth2-grant-types_spec.js b/test/oauth2/oauth2-grant-types_spec.js new file mode 100644 index 0000000..b2c074c --- /dev/null +++ b/test/oauth2/oauth2-grant-types_spec.js @@ -0,0 +1,299 @@ +const should = require('should'); // eslint-disable-line no-unused-vars +const helper = require('node-red-node-test-helper'); +const nock = require('nock'); +const OAuth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); // Adjust the path as needed + +helper.init(require.resolve('node-red')); + +describe('OAuth2 Node Grant Types', function () { + before(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Starting Node-RED server...'); + helper.startServer(done); + }); + + after(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Stopping Node-RED server...'); + helper.stopServer(done); + }); + + afterEach(function (done) { + console.log('Unloading flows...'); + helper.unload().then(function () { + nock.cleanAll(); + done(); + }); + }); + + it('should handle authorization_code grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing authorization_code grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(OAuth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { + access_token: 'mocked_access_token', + refresh_token: 'mocked_refresh_token' + }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed authorization_code grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'authorization_code', + code: 'testAuthorizationCode', + redirect_uri: 'https://example.com/redirect', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); + + it('should handle refresh_token grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing refresh_token grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(OAuth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'new_mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'new_mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed refresh_token grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'refresh_token', + refresh_token: 'testRefreshToken', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); + + it('should handle password grant type', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing password grant type handling...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret', + username: 'testUser', + password: 'testPassword' + }; + + helper.load(OAuth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed password grant type handling test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'password', + username: 'testUser', + password: 'testPassword', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); + + it('should handle default grant_type', async function () { + this.timeout(10000); // Set timeout for individual test + console.log('Starting test case...'); + + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', grant_type: 'client_credentials', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'defaultClientId', + clientSecret: 'defaultClientSecret' + }; + + await helper.load(OAuth2Node, flow, credentials); + console.log('Flow loaded...'); + + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'default_access_token' }); + + return new Promise((resolve, reject) => { + n2.on('input', function (msg) { + console.log('Received input message...'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'default_access_token'); + // Signal the completion of the test + console.log('Test case completed successfully.'); + resolve(); + } catch (err) { + console.error('Error during test execution:', err); + reject(err); + } + }); + + console.log('Sending message to n1...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'defaultClientId', + client_secret: 'defaultClientSecret' + } + } + }); + }); + }); + + it('should handle password grant type in generateOptions', function (done) { + console.log('Testing password grant type handling in generateOptions...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', grant_type: 'password', username: 'testUser', password: 'testPassword', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + grant_type: 'password', + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(OAuth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const options = n1.generateOptions({ oauth2Request: { credentials } }); + + try { + options.form.should.have.property('username', 'testUser'); + options.form.should.have.property('password', 'testPassword'); + done(); + } catch (err) { + done(err); + } + }); + }); + it('should cover client credentials in body', function (done) { + this.timeout(10000); // Set timeout for individual test + console.log('Testing client credentials in body...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', client_credentials_in_body: true, wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + helper.load(OAuth2Node, flow, credentials, function () { + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + done(); + } catch (err) { + console.error('Failed client credentials in body test', err); + done(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret' + } + } + }); + }); + }); +}); diff --git a/test/oauth2/oauth2-loading_spec.js b/test/oauth2/oauth2-loading_spec.js new file mode 100644 index 0000000..c5e116a --- /dev/null +++ b/test/oauth2/oauth2-loading_spec.js @@ -0,0 +1,45 @@ +const should = require('should'); // eslint-disable-line no-unused-vars +const helper = require('node-red-node-test-helper'); +const oauth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); +const nock = require('nock'); + +helper.init(require.resolve('node-red')); + +describe('OAuth2 Node Loading', function () { + before(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Starting Node-RED server...'); + helper.startServer(done); + }); + + after(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Stopping Node-RED server...'); + helper.stopServer(done); + }); + + afterEach(function (done) { + console.log('Unloading flows...'); + helper.unload().then(function () { + nock.cleanAll(); + done(); + }); + }); + + it('should be loaded', function (done) { + this.timeout(30000); // Increase timeout for individual test + console.log('Testing if node loads correctly...'); + const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; + helper.load(oauth2Node, flow, function () { + const n1 = helper.getNode('n1'); + try { + n1.should.have.property('name', 'oauth2'); + console.log('Node loaded successfully'); + done(); + } catch (err) { + console.error('Node failed to load', err); + done(err); + } + }); + }); +}); diff --git a/test/oauth2/oauth2-post-request_spec.js b/test/oauth2/oauth2-post-request_spec.js new file mode 100644 index 0000000..c8b3b6c --- /dev/null +++ b/test/oauth2/oauth2-post-request_spec.js @@ -0,0 +1,76 @@ +const should = require('should'); // eslint-disable-line no-unused-vars +const helper = require('node-red-node-test-helper'); +const nock = require('nock'); +const oauth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); + +helper.init(require.resolve('node-red')); + +describe('OAuth2 Node POST Request', function () { + before(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Starting Node-RED server...'); + helper.startServer(done); + }); + + after(function (done) { + this.timeout(20000); // Increase timeout to 20000ms for more room + console.log('Stopping Node-RED server...'); + helper.stopServer(done); + }); + + afterEach(function (done) { + console.log('Unloading flows...'); + helper.unload().then(function () { + nock.cleanAll(); + done(); + }); + }); + + it('should handle input and make POST request', async function () { + this.timeout(30000); // Increase timeout for individual test + console.log('Testing input handling and POST request...'); + const flow = [ + { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, + { id: 'n2', type: 'helper' } + ]; + const credentials = { + clientId: 'testClientId', + clientSecret: 'testClientSecret' + }; + + await helper.load(oauth2Node, flow, credentials); + const n1 = helper.getNode('n1'); + const n2 = helper.getNode('n2'); + + console.log('Setting up nock for example.com...'); + const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); + + return new Promise((resolve, reject) => { + n2.on('input', function (msg) { + console.log('Received input on helper node'); + try { + msg.should.have.property('oauth2Response'); + msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); + scope.done(); // Verify if the nock interceptor was called + resolve(); + } catch (err) { + console.error('Failed input handling test', err); + reject(err); + } + }); + + console.log('Sending input to node...'); + n1.receive({ + oauth2Request: { + access_token_url: 'https://example.com/oauth2/token', + credentials: { + grant_type: 'client_credentials', + client_id: 'testClientId', + client_secret: 'testClientSecret', + scope: 'testScope' + } + } + }); + }); + }); +}); diff --git a/test/oauth2_spec.js b/test/oauth2_spec.js deleted file mode 100644 index 98d1a48..0000000 --- a/test/oauth2_spec.js +++ /dev/null @@ -1,1157 +0,0 @@ -const should = require('should'); // eslint-disable-line no-unused-vars -const helper = require('node-red-node-test-helper'); -const nock = require('nock'); -const oauth2Node = require('../src/oauth2.js'); -const RED = require('node-red'); -const express = require('express'); -const bodyParser = require('body-parser'); -const app = express(); -app.use(bodyParser.json()); - -helper.init(require.resolve('node-red')); - -describe('OAuth2 Node', function () { - before(function (done) { - this.timeout(20000); // Increase timeout to 20000ms for more room - console.log('Starting Node-RED server...'); - helper.startServer(done); - }); - - after(function (done) { - this.timeout(20000); // Increase timeout to 20000ms for more room - console.log('Stopping Node-RED server...'); - helper.stopServer(done); - }); - - afterEach(function (done) { - console.log('Unloading flows...'); - helper.unload().then(function () { - nock.cleanAll(); - done(); - }); - }); - - /** - * Test if the OAuth2 node loads correctly. - */ - it('should be loaded', function (done) { - this.timeout(30000); // Increase timeout for individual test - console.log('Testing if node loads correctly...'); - const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; - helper.load(oauth2Node, flow, function () { - const n1 = helper.getNode('n1'); - try { - n1.should.have.property('name', 'oauth2'); - console.log('Node loaded successfully'); - done(); - } catch (err) { - console.error('Node failed to load', err); - done(err); - } - }); - }); - - /** - * Test if the OAuth2 node handles input and makes POST request. - */ - it('should handle input and make POST request', async function () { - this.timeout(30000); // Increase timeout for individual test - console.log('Testing input handling and POST request...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - await helper.load(oauth2Node, flow, credentials); - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - - return new Promise((resolve, reject) => { - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - resolve(); - } catch (err) { - console.error('Failed input handling test', err); - reject(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles errors. - */ - it('should handle errors', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing error handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); - - console.log('Setting up nock for invalid-url.com...'); - const scope = nock('https://invalid-url.com').post('/').replyWithError('mocked error'); - - n3.on('input', function (msg) { - console.log('Received input on error helper node'); - try { - msg.should.have.property('oauth2Error'); - msg.oauth2Error.should.have.property('message', 'mocked error'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed error handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://invalid-url.com', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles invalid client credentials. - */ - it('should handle invalid client credentials', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing invalid client credentials handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'invalidClientId', - clientSecret: 'invalidClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(401, { error: 'invalid_client' }); - - n3.on('input', function (msg) { - console.log('Received input on error helper node'); - try { - msg.should.have.property('oauth2Error'); - msg.oauth2Error.should.have.property('status', 401); - msg.oauth2Error.data.should.have.property('error', 'invalid_client'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed invalid client credentials handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'invalidClientId', - client_secret: 'invalidClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles authorization_code grant type. - */ - it('should handle authorization_code grant type', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing authorization_code grant type handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { - access_token: 'mocked_access_token', - refresh_token: 'mocked_refresh_token' - }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - msg.oauth2Response.should.have.property('refresh_token', 'mocked_refresh_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed authorization_code grant type handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'authorization_code', - code: 'testAuthorizationCode', - redirect_uri: 'https://example.com/redirect', - client_id: 'testClientId', - client_secret: 'testClientSecret' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles refresh_token grant type. - */ - it('should handle refresh_token grant type', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing refresh_token grant type handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'new_mocked_access_token' }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'new_mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed refresh_token grant type handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'refresh_token', - refresh_token: 'testRefreshToken', - client_id: 'testClientId', - client_secret: 'testClientSecret' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles network failures. - */ - it('should handle network failure', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing network failure handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').replyWithError('Network error'); - - n3.on('input', function (msg) { - console.log('Received input on error helper node'); - try { - msg.should.have.property('oauth2Error'); - msg.oauth2Error.should.have.property('message', 'Network error'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed network failure handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles custom headers in the response. - */ - it('should handle custom headers in response', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing custom headers handling...'); - const flow = [ - { - id: 'n1', - type: 'oauth2', - name: 'test name', - wires: [['n2']], - access_token_url: 'https://example.com/oauth2/token', - headers: { 'X-Custom-Header': 'CustomValue' } - }, - { id: 'n2', type: 'helper' } - ]; - - helper.load(oauth2Node, flow, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }, { 'x-custom-header': 'CustomValue' }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('headers'); - msg.headers.should.have.property('x-custom-header', 'CustomValue'); - scope.done(); - done(); - } catch (err) { - console.error('Failed custom headers handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles multiple scopes. - */ - it('should handle multiple scopes', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing multiple scopes handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed multiple scopes handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'scope1 scope2' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles proxy settings. - */ - it('should handle proxy settings', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing proxy settings handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']], access_token_url: 'https://example.com/oauth2/token' }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - const proxySettings = { - prox: 'http://proxy.example.com:8080' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - n1.prox = proxySettings.prox; - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - - n2.on('input', function (msg) { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); - done(); - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node generates options for authorization_code grant type. - */ - it('should generate options for authorization_code grant type', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'authorization_code', - code: 'testAuthorizationCode', - redirect_uri: 'https://example.com/redirect', - client_id: 'testClientId', - client_secret: 'testClientSecret' - } - } - }); - - // Assert conditions based on the generated options - done(); - }); - }); - - /** - * Test if the OAuth2 node generates options for implicit_flow grant type. - */ - it('should generate options for implicit_flow grant type', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'implicit_flow', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - - // Assert conditions based on the generated options - done(); - }); - }); - - /** - * Test if the OAuth2 node generates options for password grant type. - */ - it('should generate options for password grant type', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'password', - client_id: 'testClientId', - client_secret: 'testClientSecret', - username: 'testUsername', - password: 'testPassword', - scope: 'testScope' - } - } - }); - - // Assert conditions based on the generated options - done(); - }); - }); - - /** - * Test if the OAuth2 node makes a POST request with proxy settings. - */ - it('should make a POST request with proxy settings', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [{ id: 'n1', type: 'oauth2', name: 'oauth2' }]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - const proxySettings = { - prox: 'http://proxy.example.com:8080' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - n1.prox = proxySettings.prox; - - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - - // Assert conditions based on the proxy settings - done(); - }); - }); - - /** - * Test if the OAuth2 node handles server errors correctly. - */ - it('should handle server errors correctly', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); - - nock('https://example.com').post('/oauth2/token').reply(500, { error: 'server_error' }); - - n3.on('input', function (msg) { - msg.should.have.property('oauth2Error'); - msg.oauth2Error.should.have.property('status', 500); - msg.oauth2Error.data.should.have.property('error', 'server_error'); - done(); - }); - - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles client_credentials grant type. - */ - it('should handle client_credentials grant type', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - - n2.on('input', function (msg) { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - done(); - }); - - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles HTTP 401 error correctly. - */ - it('should handle HTTP 401 error correctly', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [[], ['n3']] }, - { id: 'n3', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n3 = helper.getNode('n3'); - - nock('https://example.com').post('/oauth2/token').reply(401, { error: 'unauthorized' }); - - n3.on('input', function (msg) { - msg.should.have.property('oauth2Error'); - msg.oauth2Error.should.have.property('status', 401); - msg.oauth2Error.data.should.have.property('error', 'unauthorized'); - done(); - }); - - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles client_credentials_in_body. - */ - it('should handle client_credentials_in_body', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing client_credentials_in_body handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', client_credentials_in_body: true, wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed client_credentials_in_body handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles password grant type. - */ - it('should handle password grant type', function (done) { - this.timeout(10000); // Set timeout for individual test - console.log('Testing password grant type handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret', - username: 'testUser', - password: 'testPassword' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - done(); - } catch (err) { - console.error('Failed password grant type handling test', err); - done(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'password', - username: 'testUser', - password: 'testPassword', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles default grant_type. - */ - it('should handle default grant_type', async function () { - this.timeout(10000); // Set timeout for individual test - console.log('Starting test case...'); - - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', grant_type: 'client_credentials', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'defaultClientId', - clientSecret: 'defaultClientSecret' - }; - - await helper.load(oauth2Node, flow, credentials); - console.log('Flow loaded...'); - - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'default_access_token' }); - - return new Promise((resolve, reject) => { - n2.on('input', function (msg) { - console.log('Received input message...'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'default_access_token'); - // Signal the completion of the test - console.log('Test case completed successfully.'); - resolve(); - } catch (err) { - console.error('Error during test execution:', err); - reject(err); - } - }); - - console.log('Sending message to n1...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'client_credentials', - client_id: 'defaultClientId', - client_secret: 'defaultClientSecret' - } - } - }); - }); - }); - - it('should handle password grant_type', async function () { - this.timeout(1000); // Set timeout for individual test - console.log('Testing password grant type handling...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - clientId: 'testClientId', - clientSecret: 'testClientSecret', - username: 'testUser', - password: 'testPassword' - }; - - await helper.load(oauth2Node, flow, credentials); - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - console.log('Setting up nock for example.com...'); - const scope = nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'mocked_access_token' }); - - return new Promise((resolve, reject) => { - n2.on('input', function (msg) { - console.log('Received input on helper node'); - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'mocked_access_token'); - scope.done(); // Verify if the nock interceptor was called - resolve(); - } catch (err) { - console.error('Failed password grant type handling test', err); - reject(err); - } - }); - - console.log('Sending input to node...'); - n1.receive({ - oauth2Request: { - access_token_url: 'https://example.com/oauth2/token', - credentials: { - grant_type: 'password', - username: 'testUser', - password: 'testPassword', - client_id: 'testClientId', - client_secret: 'testClientSecret', - scope: 'testScope' - } - } - }); - }); - }); - - /** - * Test if the OAuth2 node handles authorization_code grant_type. - */ - it('should handle authorization_code grant_type', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [ - { - id: 'n1', - type: 'oauth2', - name: 'oauth2', - grant_type: 'authorization_code', - client_id: 'defaultClientId', - client_secret: 'defaultClientSecret', - redirect_uri: 'https://example.com/redirect', - access_token_url: 'https://example.com/oauth2/token', - wires: [['n2']] - }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { code: 'testAuthorizationCode' }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'authorization_code_access_token' }); - - n2.on('input', function (msg) { - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'authorization_code_access_token'); - done(); - } catch (err) { - done(err); - } - }); - - n1.receive({ payload: {} }); - }); - }); - - /** - * Test if the OAuth2 node handles implicit_flow grant_type. - */ - it('should handle implicit_flow grant_type', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [ - { - id: 'n1', - type: 'oauth2', - name: 'oauth2', - grant_type: 'implicit_flow', - client_id: 'defaultClientId', - client_secret: 'defaultClientSecret', - redirect_uri: 'https://example.com/redirect', - access_token_url: 'https://example.com/oauth2/token', - wires: [['n2']] - }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { code: 'testImplicitFlowCode' }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'implicit_flow_access_token' }); - - n2.on('input', function (msg) { - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'implicit_flow_access_token'); - done(); - } catch (err) { - done(err); - } - }); - - n1.receive({ payload: {} }); - }); - }); - - /** - * Test if the OAuth2 node handles client_credentials_in_body when no oauth2Request. - */ - it('should handle client_credentials_in_body when no oauth2Request', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [ - { - id: 'n1', - type: 'oauth2', - name: 'oauth2', - client_credentials_in_body: true, - grant_type: 'client_credentials', - client_id: 'defaultClientId', - client_secret: 'defaultClientSecret', - access_token_url: 'https://example.com/oauth2/token', - wires: [['n2']] - }, - { id: 'n2', type: 'helper' } - ]; - - helper.load(oauth2Node, flow, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'client_credentials_body_access_token' }); - - n2.on('input', function (msg) { - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'client_credentials_body_access_token'); - done(); - } catch (err) { - done(err); - } - }); - - n1.receive({ payload: {} }); - }); - }); - - /** - * Test if the OAuth2 node handles client credentials in headers when no oauth2Request. - */ - it('should handle client credentials in headers when no oauth2Request', function (done) { - this.timeout(10000); // Set timeout for individual test - const flow = [ - { - id: 'n1', - type: 'oauth2', - name: 'oauth2', - client_credentials_in_body: false, - grant_type: 'client_credentials', - client_id: 'defaultClientId', - client_secret: 'defaultClientSecret', - access_token_url: 'https://example.com/oauth2/token', - wires: [['n2']] - }, - { id: 'n2', type: 'helper' } - ]; - - helper.load(oauth2Node, flow, function () { - const n1 = helper.getNode('n1'); - const n2 = helper.getNode('n2'); - - nock('https://example.com').post('/oauth2/token').reply(200, { access_token: 'client_credentials_header_access_token' }); - - n2.on('input', function (msg) { - try { - msg.should.have.property('oauth2Response'); - msg.oauth2Response.should.have.property('access_token', 'client_credentials_header_access_token'); - done(); - } catch (err) { - done(err); - } - }); - - n1.receive({ payload: {} }); - }); - }); - it('should handle password grant type in generateOptions', function (done) { - console.log('Testing password grant type handling in generateOptions...'); - const flow = [ - { id: 'n1', type: 'oauth2', name: 'oauth2', grant_type: 'password', username: 'testUser', password: 'testPassword', wires: [['n2']] }, - { id: 'n2', type: 'helper' } - ]; - const credentials = { - grant_type: 'password', - clientId: 'testClientId', - clientSecret: 'testClientSecret' - }; - - helper.load(oauth2Node, flow, credentials, function () { - const n1 = helper.getNode('n1'); - const options = n1.generateOptions({ oauth2Request: { credentials } }); - - try { - options.form.should.have.property('username', 'testUser'); - options.form.should.have.property('password', 'testPassword'); - done(); - } catch (err) { - done(err); - } - }); - }); -}); diff --git a/test/setup-teardown._spec.js b/test/setup-teardown._spec.js new file mode 100644 index 0000000..8b77a91 --- /dev/null +++ b/test/setup-teardown._spec.js @@ -0,0 +1,81 @@ +const helper = require('node-red-node-test-helper'); +const nock = require('nock'); + +helper.init(require.resolve('node-red')); + +let serverStarted = false; + +function startServer() { + return new Promise((resolve, reject) => { + console.log('Starting Node-RED server...'); + helper.startServer((err) => { + if (err) { + console.error('Failed to start Node-RED server:', err); + return reject(err); + } + serverStarted = true; + console.log('Node-RED server started successfully.'); + resolve(); + }); + }); +} + +function stopServer() { + return new Promise((resolve, reject) => { + console.log('Stopping Node-RED server...'); + if (serverStarted && helper._server && helper._server.listening) { + console.log('Node-RED server is running, attempting to stop it...'); + helper.stopServer((err) => { + if (err) { + console.error('Error stopping Node-RED server:', err); + return reject(err); + } + console.log('Node-RED server stopped successfully.'); + serverStarted = false; + resolve(); + }); + } else { + console.log('Node-RED server is not running or was never started.'); + resolve(); + } + }); +} + +before(async function () { + this.timeout(20000); // Increase timeout to 20000ms for more room + await startServer(); +}); + +after(async function () { + this.timeout(20000); // Increase timeout to 20000ms for more room + await stopServer().catch((err) => { + console.error('Failed to stop Node-RED server:', err); + }); +}); + +afterEach(function (done) { + console.log('Unloading flows...'); + helper + .unload() + .then(() => { + console.log('Flows unloaded successfully.'); + nock.cleanAll(); + done(); + }) + .catch((err) => { + console.error('Error unloading flows:', err); + done(err); + }); +}); + +// Exit process after all tests are done to ensure coverage data is written +after(function () { + stopServer() + .then(() => { + process.exit(); + }) + .catch((err) => { + console.error('Failed to stop Node-RED server:', err); + process.exit(1); + }); +}); diff --git a/yarn.lock b/yarn.lock index 592ce29..382892b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,7 +23,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": +"@babel/core@^7.7.5": version "7.24.5" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== @@ -960,23 +960,26 @@ "@babel/helper-validator-identifier" "^7.24.5" to-fast-properties "^2.0.0" -"@es-joy/jsdoccomment@~0.39.4": - version "0.39.4" - resolved "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz" - integrity sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg== +"@es-joy/jsdoccomment@~0.43.0": + version "0.43.0" + resolved "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.0.tgz" + integrity sha512-Q1CnsQrytI3TlCB1IVWXWeqUIPGVEKGaE7IbVdt13Nq/3i0JESAkQQERrfiQkmlpijl+++qyqPgaS31Bvc1jRQ== dependencies: - comment-parser "1.3.1" + "@types/eslint" "^8.56.5" + "@types/estree" "^1.0.5" + "@typescript-eslint/types" "^7.2.0" + comment-parser "1.4.1" esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.6.0", "@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -1020,6 +1023,22 @@ resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" @@ -1207,6 +1226,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + "@sindresorhus/is@^5.2.0": version "5.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" @@ -1261,11 +1285,29 @@ dependencies: defer-to-connect "^2.0.1" +"@types/eslint@^8.56.5": + version "8.56.10" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/http-cache-semantics@^4.0.2": version "4.0.4" resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== +"@types/json-schema@*": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" @@ -1276,7 +1318,7 @@ resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz" integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== -"@types/markdown-it@*", "@types/markdown-it@^14.1.1": +"@types/markdown-it@^14.1.1": version "14.1.1" resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.1.tgz" integrity sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg== @@ -1289,6 +1331,11 @@ resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz" integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== +"@typescript-eslint/types@^7.2.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz" + integrity sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg== + "@ungap/structured-clone@^1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" @@ -1317,16 +1364,16 @@ acorn-walk@8.2.0: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - acorn@8.8.2: version "8.8.2" resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" @@ -1334,15 +1381,13 @@ agent-base@6: dependencies: debug "4" -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 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" + clean-stack "^2.0.0" + indent-string "^4.0.0" ajv@8.12.0: version "8.12.0" @@ -1354,7 +1399,17 @@ ajv@8.12.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-colors@^4.1.1, ansi-colors@4.1.1: +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" + +ansi-colors@4.1.1, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== @@ -1376,14 +1431,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -1403,11 +1451,23 @@ append-field@^1.0.0: resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== +append-transform@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz" + integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== + dependencies: + default-require-extensions "^3.0.0" + "aproba@^1.0.3 || ^2.0.0": 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== +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== + are-docs-informative@^0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz" @@ -1421,6 +1481,13 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" @@ -1521,10 +1588,10 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.6.8, axios@>=1.3.3: - version "1.7.1" - resolved "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz" - integrity sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q== +axios@^1.6.8, axios@^1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -1587,7 +1654,7 @@ bcrypt@5.1.1: "@mapbox/node-pre-gyp" "^1.0.11" node-addon-api "^5.0.0" -bcryptjs@^2.4.3, bcryptjs@2.4.3: +bcryptjs@2.4.3, bcryptjs@^2.4.3: version "2.4.3" resolved "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz" integrity sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ== @@ -1611,7 +1678,7 @@ bluebird@^3.7.2: resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@^1.20.2, body-parser@1.20.2: +body-parser@1.20.2, body-parser@^1.20.2: version "1.20.2" resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== @@ -1661,7 +1728,7 @@ browser-stdout@1.3.1: resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": +browserslist@^4.22.2, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -1684,13 +1751,6 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builtins@^5.0.1: - version "5.1.0" - resolved "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz" - integrity sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg== - dependencies: - semver "^7.0.0" - busboy@^1.0.0: version "1.6.0" resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" @@ -1721,6 +1781,16 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" +caching-transform@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz" + integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== + dependencies: + hasha "^5.0.0" + make-dir "^3.0.0" + package-hash "^4.0.0" + write-file-atomic "^3.0.0" + call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" @@ -1737,15 +1807,20 @@ callsites@^3.0.0: resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + camelcase@^6.0.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001587: - version "1.0.30001620" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz" - integrity sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew== + version "1.0.30001621" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz" + integrity sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA== catharsis@^0.9.0: version "0.9.0" @@ -1763,15 +1838,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1823,6 +1890,11 @@ chownr@^2.0.0: resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + cli-table@^0.3.11: version "0.3.11" resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz" @@ -1830,6 +1902,15 @@ cli-table@^0.3.11: dependencies: colors "1.0.3" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" @@ -1858,16 +1939,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + color-support@^1.1.2: version "1.1.3" resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" @@ -1885,10 +1966,10 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -comment-parser@1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz" - integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== +comment-parser@1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz" + integrity sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== commist@^1.0.0: version "1.1.0" @@ -1898,6 +1979,11 @@ commist@^1.0.0: leven "^2.1.0" minimist "^1.1.0" +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + component-emitter@^1.3.0: version "1.3.1" resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz" @@ -1940,11 +2026,16 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4, content-type@~1.0.5, content-type@1.0.5: +content-type@1.0.5, content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +convert-source-map@^1.7.0: + 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== + convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" @@ -2013,7 +2104,7 @@ cronosjs@1.7.1: resolved "https://registry.npmjs.org/cronosjs/-/cronosjs-1.7.1.tgz" integrity sha512-d6S6+ep7dJxsAG8OQQCdKuByI/S/AV64d9OF5mtmcykOyPu92cAkAnF3Tbc9s5oOaLQBYYQmTNvjqYRkPJ/u5Q== -cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2065,33 +2156,31 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@2.6.9, debug@2.x.x: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: - ms "^2.1.1" + ms "2.0.0" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4, debug@4.3.4: +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: - ms "2.0.0" + ms "^2.1.1" -debug@2.x.x: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decamelize@^4.0.0: version "4.0.0" @@ -2110,6 +2199,13 @@ deep-is@^0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== +default-require-extensions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz" + integrity sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw== + dependencies: + strip-bom "^4.0.0" + defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" @@ -2148,7 +2244,7 @@ denque@2.1.0: resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== -depd@~2.0.0, depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -2171,7 +2267,7 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" -diff@^5.0.0, diff@5.0.0: +diff@5.0.0, diff@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== @@ -2236,9 +2332,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.668: - version "1.4.775" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz" - integrity sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw== + version "1.4.780" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.780.tgz" + integrity sha512-NPtACGFe7vunRYzvYqVRhQvsDrTevxpgDKxG/Vcbe0BTNOY+5+/2mOXSw2ls7ToNbE5Bf/+uQbjTxcmwMozpCw== emoji-regex@^8.0.0: version "8.0.0" @@ -2257,6 +2353,14 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +enhanced-resolve@^5.15.0: + version "5.16.1" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz" + integrity sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enquirer@^2.3.6: version "2.4.1" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" @@ -2371,6 +2475,11 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-error@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" @@ -2381,6 +2490,11 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" @@ -2391,22 +2505,19 @@ escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +eslint-compat-utils@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz" + integrity sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg== + dependencies: + semver "^7.5.4" -eslint-config-prettier@^8.8.0: - version "8.10.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-config-standard@^17.0.0: +eslint-config-standard@^17.1.0: version "17.1.0" resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz" integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== @@ -2427,15 +2538,16 @@ eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" -eslint-plugin-es@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz" - integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== +eslint-plugin-es-x@^7.5.0: + version "7.6.0" + resolved "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz" + integrity sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA== dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" + "@eslint-community/eslint-utils" "^4.1.2" + "@eslint-community/regexpp" "^4.6.0" + eslint-compat-utils "^0.5.0" -eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.27.5: +eslint-plugin-import@^2.29.1: version "2.29.1" resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== @@ -2458,19 +2570,19 @@ eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.27.5: semver "^6.3.1" tsconfig-paths "^3.15.0" -eslint-plugin-jsdoc@^44.2.4: - version "44.2.7" - resolved "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.7.tgz" - integrity sha512-PcAJO7Wh4xIHPT+StBRpEbWgwCpIrYk75zL31RMbduVVHpgiy3Y8aXQ6pdbRJOq0fxHuepWSEAve8ZrPWTSKRg== +eslint-plugin-jsdoc@^48.2.6: + version "48.2.6" + resolved "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.6.tgz" + integrity sha512-GNk9jtpYmoEVeD/U6yYYmd6T8vSOoPs7CL8ZeX85iD8P3qifDdLQGze6+cw9boobDthmYnnxvIoHrhuSffj09g== dependencies: - "@es-joy/jsdoccomment" "~0.39.4" + "@es-joy/jsdoccomment" "~0.43.0" are-docs-informative "^0.0.2" - comment-parser "1.3.1" + comment-parser "1.4.1" debug "^4.3.4" escape-string-regexp "^4.0.0" esquery "^1.5.0" - semver "^7.5.1" - spdx-expression-parse "^3.0.1" + semver "^7.6.1" + spdx-expression-parse "^4.0.0" eslint-plugin-mocha@^10.4.3: version "10.4.3" @@ -2481,40 +2593,33 @@ eslint-plugin-mocha@^10.4.3: globals "^13.24.0" rambda "^7.4.0" -"eslint-plugin-n@^15.0.0 || ^16.0.0 ", eslint-plugin-n@^15.7.0: - version "15.7.0" - resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz" - integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== - dependencies: - builtins "^5.0.1" - eslint-plugin-es "^4.1.0" - eslint-utils "^3.0.0" - ignore "^5.1.1" - is-core-module "^2.11.0" - minimatch "^3.1.2" - resolve "^1.22.1" - semver "^7.3.8" - -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== +eslint-plugin-n@^17.7.0: + version "17.7.0" + resolved "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.7.0.tgz" + integrity sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + enhanced-resolve "^5.15.0" + eslint-plugin-es-x "^7.5.0" + get-tsconfig "^4.7.0" + globals "^15.0.0" + ignore "^5.2.4" + minimatch "^9.0.0" + semver "^7.5.3" + +eslint-plugin-prettier@^5.1.3: + version "5.1.3" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" -eslint-plugin-promise@^6.0.0, eslint-plugin-promise@^6.1.1: +eslint-plugin-promise@^6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz" integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" @@ -2523,12 +2628,13 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^5.2.0" eslint-utils@^3.0.0: version "3.0.0" @@ -2537,32 +2643,17 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0: - 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== - -eslint-visitor-keys@^3.4.1: +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: 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== -eslint-visitor-keys@^3.4.3: - 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== - -"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.1, eslint@^8.57.0, eslint@>=4.19.1, eslint@>=5, eslint@>=7.0.0, eslint@>=7.28.0: +eslint@^8.0.1: version "8.57.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -2615,6 +2706,11 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + esquery@^1.4.2, esquery@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" @@ -2634,12 +2730,7 @@ estraverse@^4.1.1: resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -2668,7 +2759,7 @@ express-session@1.17.3: safe-buffer "5.2.1" uid-safe "~2.1.5" -express@^4.19.2, express@4.19.2: +express@4.19.2, express@^4.19.2: version "4.19.2" resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== @@ -2764,7 +2855,16 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@^5.0.0, find-up@5.0.0: +find-cache-dir@^3.2.0: + 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== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@5.0.0, find-up@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -2772,6 +2872,14 @@ find-up@^5.0.0, find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.2.0" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" @@ -2803,12 +2911,20 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" + form-data-encoder@^2.1.2: version "2.1.4" resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== -form-data@^4.0.0, form-data@4.0.0: +form-data@4.0.0, form-data@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== @@ -2836,6 +2952,11 @@ fresh@0.5.2: resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== +fromentries@^1.2.0: + version "1.3.2" + resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz" + integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== + fs-extra@11.1.1: version "11.1.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" @@ -2857,6 +2978,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -2897,7 +3023,7 @@ gensync@^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== -get-caller-file@^2.0.5: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -2913,6 +3039,11 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-stream@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" @@ -2927,6 +3058,13 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" +get-tsconfig@^4.7.0: + version "4.7.5" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz" + integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw== + dependencies: + resolve-pkg-maps "^1.0.0" + glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" @@ -2941,19 +3079,18 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== +glob@8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" -glob@^7.1.6: +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2965,35 +3102,22 @@ glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - globals@^11.1.0: version "11.12.0" resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: +globals@^13.19.0, globals@^13.24.0: version "13.24.0" resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" -globals@^13.24.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" +globals@^15.0.0: + version "15.3.0" + resolved "https://registry.npmjs.org/globals/-/globals-15.3.0.tgz" + integrity sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA== globalthis@^1.0.3: version "1.0.4" @@ -3027,7 +3151,7 @@ got@12.6.0: p-cancelable "^3.0.0" responselike "^3.0.0" -graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: +graceful-fs@^4.1.15, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: 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== @@ -3086,6 +3210,14 @@ hash-sum@2.0.0: resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz" integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== +hasha@^5.0.0: + version "5.2.2" + resolved "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" @@ -3116,6 +3248,11 @@ hpagent@1.2.0: resolved "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz" integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + htmlparser2@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" @@ -3150,7 +3287,7 @@ http2-wrapper@^2.1.10: quick-lru "^5.1.1" resolve-alpn "^1.2.0" -https-proxy-agent@^5.0.0, https-proxy-agent@5.0.1: +https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0: 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== @@ -3184,7 +3321,7 @@ ieee754@^1.1.13: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.1.1, ignore@^5.2.0: +ignore@^5.2.0, ignore@^5.2.4: version "5.3.1" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== @@ -3202,6 +3339,11 @@ imurmurhash@^0.1.4: resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" @@ -3210,7 +3352,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3264,7 +3406,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: +is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== @@ -3344,6 +3486,11 @@ is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: dependencies: call-bind "^1.0.7" +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" @@ -3365,6 +3512,11 @@ is-typed-array@^1.1.13: dependencies: which-typed-array "^1.1.14" +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" @@ -3382,6 +3534,11 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + isarray@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" @@ -3397,6 +3554,66 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^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== + +istanbul-lib-hook@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz" + integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== + dependencies: + append-transform "^2.0.0" + +istanbul-lib-instrument@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-processinfo@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz" + integrity sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== + dependencies: + archy "^1.0.0" + cross-spawn "^7.0.3" + istanbul-lib-coverage "^3.2.0" + p-map "^3.0.0" + rimraf "^3.0.0" + uuid "^8.3.2" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.1.7" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + js-sdsl@4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz" @@ -3407,13 +3624,21 @@ js-tokens@^4.0.0: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^4.1.0, js-yaml@4.1.0: +js-yaml@4.1.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js2xmlparser@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz" @@ -3482,7 +3707,7 @@ json-stable-stringify-without-jsonify@^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== -json-stringify-safe@^5.0.1, json-stringify-safe@5.0.1: +json-stringify-safe@5.0.1, json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== @@ -3552,6 +3777,13 @@ linkify-it@^5.0.0: dependencies: uc.micro "^2.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" @@ -3569,6 +3801,11 @@ lodash.debounce@^4.0.8: resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz" + integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" @@ -3619,19 +3856,26 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -make-dir@^3.1.0: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: 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== dependencies: semver "^6.0.0" +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + markdown-it-anchor@^8.6.7: version "8.6.7" resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz" integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== -markdown-it@*, markdown-it@^14.1.0: +markdown-it@^14.1.0: version "14.1.0" resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz" integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== @@ -3718,7 +3962,14 @@ mimic-response@^4.0.0: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -3726,16 +3977,16 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: brace-expansion "^1.1.7" minimatch@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== +minimatch@^9.0.0: + version "9.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== dependencies: brace-expansion "^2.0.1" @@ -3809,7 +4060,7 @@ moment-timezone@0.5.43: dependencies: moment "^2.29.4" -moment@^2.29.4, moment@2.29.4: +moment@2.29.4, moment@^2.29.4: version "2.29.4" resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== @@ -3846,16 +4097,16 @@ mqtt@4.3.7: ws "^7.5.5" xtend "^4.0.2" -ms@^2.1.1, ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + ms@2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" @@ -3874,7 +4125,7 @@ multer@1.4.5-lts.1: type-is "^1.6.4" xtend "^4.0.0" -mustache@^4.2.0, mustache@4.2.0: +mustache@4.2.0, mustache@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== @@ -3926,6 +4177,13 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" +node-preload@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz" + integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== + dependencies: + process-on-spawn "^1.0.0" + node-red-admin@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/node-red-admin/-/node-red-admin-3.1.3.tgz" @@ -3985,7 +4243,7 @@ node-watch@0.7.4: resolved "https://registry.npmjs.org/node-watch/-/node-watch-0.7.4.tgz" integrity sha512-RinNxoz4W1cep1b928fuFhvAQ5ag/+1UlMDV7rbyGthBIgsiEouS4kvRayvvboxii4m8eolKOIBo3OjDqbc+uQ== -nopt@^5.0.0, nopt@5.0.0: +nopt@5.0.0, nopt@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== @@ -4027,6 +4285,39 @@ number-allocator@^1.0.9: debug "^4.3.1" js-sdsl "4.3.0" +nyc@^15.1.0: + version "15.1.0" + resolved "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz" + integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== + dependencies: + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + caching-transform "^4.0.0" + convert-source-map "^1.7.0" + decamelize "^1.2.0" + find-cache-dir "^3.2.0" + find-up "^4.1.0" + foreground-child "^2.0.0" + get-package-type "^0.1.0" + glob "^7.1.6" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-hook "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-processinfo "^2.0.2" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + make-dir "^3.0.0" + node-preload "^0.2.1" + p-map "^3.0.0" + process-on-spawn "^1.0.0" + resolve-from "^5.0.0" + rimraf "^3.0.0" + signal-exit "^3.0.2" + spawn-wrap "^2.0.0" + test-exclude "^6.0.0" + yargs "^15.0.2" + oauth2orize@1.11.1: version "1.11.1" resolved "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz" @@ -4096,7 +4387,7 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -on-headers@~1.0.2, on-headers@1.0.2: +on-headers@1.0.2, on-headers@~1.0.2: 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== @@ -4125,6 +4416,13 @@ p-cancelable@^3.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + p-limit@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" @@ -4132,6 +4430,13 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-locate@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" @@ -4139,6 +4444,28 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-hash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz" + integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== + dependencies: + graceful-fs "^4.1.15" + hasha "^5.0.0" + lodash.flattendeep "^4.4.0" + release-zalgo "^1.0.0" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -4211,16 +4538,16 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@^6.2.1: - version "6.2.2" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz" - integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@^6.2.1: + version "6.2.2" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz" + integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== + pause@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz" @@ -4236,6 +4563,13 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pkg-dir@^4.1.0: + 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== + dependencies: + find-up "^4.0.0" + possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" @@ -4253,16 +4587,23 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.8.8, prettier@>=2.0.0: - version "2.8.8" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.2.5: + version "3.2.5" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== process-nextick-args@^2.0.1, process-nextick-args@~2.0.0: 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== +process-on-spawn@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz" + integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== + dependencies: + fromentries "^1.2.0" + propagate@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz" @@ -4309,7 +4650,7 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@^6.11.0, qs@6.11.0: +qs@6.11.0, qs@^6.11.0: version "6.11.0" resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -4433,11 +4774,6 @@ regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.1" -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" @@ -4462,6 +4798,13 @@ reinterval@^1.1.0: resolved "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz" integrity sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ== +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz" + integrity sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== + dependencies: + es6-error "^4.0.1" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" @@ -4472,6 +4815,11 @@ require-from-string@^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== +require-main-filename@^2.0.0: + 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== + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" @@ -4494,7 +4842,17 @@ resolve-from@^4.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.4: +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@^1.14.2, resolve@^1.22.4: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -4520,7 +4878,7 @@ rfdc@^1.3.0: resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz" integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== -rimraf@^3.0.2: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -4544,17 +4902,12 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2: +safe-buffer@5.1.2, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@5.2.1: +safe-buffer@5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -4578,43 +4931,23 @@ sax@>=0.6.0: resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== -semver@^6.0.0, semver@^6.3.1: +semver@7.5.4: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0: +semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.1: version "7.6.2" resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== -semver@^7.3.5: - version "7.6.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -semver@^7.3.8: - version "7.6.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -semver@^7.5.1: - version "7.6.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -semver@^7.5.4: - version "7.6.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" - integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - -semver@7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -4733,7 +5066,7 @@ should-util@^1.0.0: resolved "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz" integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== -should@^13.2.3, "should@>= 8.x": +should@^13.2.3: version "13.2.3" resolved "https://registry.npmjs.org/should/-/should-13.2.3.tgz" integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== @@ -4754,7 +5087,7 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -4771,23 +5104,40 @@ sinon@^11.1.2: nise "^5.1.0" supports-color "^7.2.0" +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spawn-wrap@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz" + integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== + dependencies: + foreground-child "^2.0.0" + is-windows "^1.0.2" + make-dir "^3.0.0" + rimraf "^3.0.0" + signal-exit "^3.0.2" + which "^2.0.1" + spdx-exceptions@^2.1.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== -spdx-expression-parse@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== +spdx-expression-parse@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz" + integrity sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.17" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz" - integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== + version "3.0.18" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz" + integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ== split2@^3.1.0: version "3.2.2" @@ -4796,6 +5146,11 @@ split2@^3.1.0: dependencies: readable-stream "^3.0.0" +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" @@ -4816,20 +5171,6 @@ streamsearch@^1.1.0: resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -string_decoder@^1.1.1: - 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== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -4867,6 +5208,20 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" +string_decoder@^1.1.1: + 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== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -4879,7 +5234,12 @@ strip-bom@^3.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@3.1.1: +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 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== @@ -4907,6 +5267,13 @@ supertest@^7.0.0: methods "^1.1.2" superagent "^9.0.1" +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -4914,33 +5281,32 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.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== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.2.0: +supports-color@^7.1.0, supports-color@^7.2.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== dependencies: has-flag "^4.0.0" -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-preserve-symlinks-flag@^1.0.0: 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== -tar@^6.1.11, tar@6.2.1: +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar@6.2.1, tar@^6.1.11: version "6.2.1" resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== @@ -4952,6 +5318,15 @@ tar@^6.1.11, tar@6.2.1: mkdirp "^1.0.3" yallist "^4.0.0" +test-exclude@^6.0.0: + 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== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" @@ -4999,7 +5374,7 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^2.2.0, tslib@^2.4.0: +tslib@^2.2.0, tslib@^2.4.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -5011,7 +5386,7 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@^4.0.8, type-detect@4.0.8: +type-detect@4.0.8, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -5021,6 +5396,11 @@ type-fest@^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== +type-fest@^0.8.0: + version "0.8.1" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@^1.6.4, type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" @@ -5073,6 +5453,13 @@ typed-array-length@^1.0.6: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" @@ -5148,7 +5535,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -5181,7 +5568,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -utils-merge@^1.0.1, utils-merge@1.0.1, utils-merge@1.x.x: +utils-merge@1.0.1, utils-merge@1.x.x, utils-merge@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== @@ -5191,6 +5578,11 @@ uuid@9.0.0: resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" @@ -5220,6 +5612,11 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz" @@ -5255,6 +5652,15 @@ workerpool@6.2.1: resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -5269,7 +5675,17 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^7.5.5, ws@7.5.6: +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@7.5.6, ws@^7.5.5: version "7.5.6" resolved "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== @@ -5297,6 +5713,11 @@ xtend@^4.0.0, xtend@^4.0.2: resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" @@ -5317,11 +5738,19 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^20.2.2, yargs-parser@20.2.4: +yargs-parser@20.2.4, yargs-parser@^20.2.2: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-unparser@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" @@ -5345,6 +5774,23 @@ yargs@16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^15.0.2: + version "15.4.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + 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" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" From 85d90aa03979d55e3c33780b0e3ef12c57412eea Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Thu, 23 May 2024 19:59:33 -0300 Subject: [PATCH 7/8] Remove unused 'should' require in oauth2-generate-options tests The 'should' library was included in the oauth2-generate-options_spec.js file but was not being used. This commit removes the unnecessary require statement to clean up the code. --- test/oauth2/oauth2-generate-options_spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/oauth2/oauth2-generate-options_spec.js b/test/oauth2/oauth2-generate-options_spec.js index 1d695d6..e3aaeab 100644 --- a/test/oauth2/oauth2-generate-options_spec.js +++ b/test/oauth2/oauth2-generate-options_spec.js @@ -1,6 +1,5 @@ const helper = require('node-red-node-test-helper'); const OAuth2Node = require('node-red-contrib-oauth2/src/oauth2.js'); -const should = require('should'); helper.init(require.resolve('node-red')); From 9621caf86f2ea4d717787fdd9286829d83b00392 Mon Sep 17 00:00:00 2001 From: Marcos Caputo Date: Thu, 23 May 2024 20:30:53 -0300 Subject: [PATCH 8/8] Improve error handling and remove unused URL import in oauth2.js - Removed the unused URL import from oauth2.js. - Added URLSearchParams import for handling form data. - Wrapped the credentials retrieval in a try-catch block to handle potential errors. - Changed the response status code to 404 when credentials are not found. - Changed the response status code to 500 for server errors. - Updated the success HTML response to use proper indentation and formatting. - Changed the response status code to 400 when credentials are missing in the token exchange endpoint. --- src/oauth2.js | 54 +++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/oauth2.js b/src/oauth2.js index ffc1260..e56be8b 100644 --- a/src/oauth2.js +++ b/src/oauth2.js @@ -2,10 +2,9 @@ module.exports = function (RED) { 'use strict'; const axios = require('axios'); - const { URL } = require('url'); const http = require('http'); const https = require('https'); - + const { URLSearchParams } = require('url'); // Use URLSearchParams for form data const Logger = require('node-red-contrib-oauth2/src/libs/logger'); /** @@ -20,6 +19,7 @@ module.exports = function (RED) { RED.nodes.createNode(this, config); this.logger = new Logger({ name: 'identifier', count: null, active: config.debug || false, label: 'debug' }); this.logger.debug('Constructor: Initializing node with config', config); + // Node configuration properties this.name = config.name || ''; this.container = config.container || ''; @@ -330,11 +330,15 @@ module.exports = function (RED) { * @param {Object} res - The response object. */ RED.httpAdmin.get('/oauth2/credentials/:token', (req, res) => { - const credentials = RED.nodes.getCredentials(req.params.token); - if (credentials) { - res.json({ code: credentials.code, redirect_uri: credentials.redirect_uri }); - } else { - res.send('oauth2.error.no-credentials'); + try { + const credentials = RED.nodes.getCredentials(req.params.token); + if (credentials) { + res.json({ code: credentials.code, redirect_uri: credentials.redirect_uri }); + } else { + res.status(404).send('oauth2.error.no-credentials'); + } + } catch (error) { + res.status(500).send('oauth2.error.server-error'); } }); @@ -356,25 +360,25 @@ module.exports = function (RED) { RED.nodes.addCredentials(node_id, credentials); res.send(` - - - - - -

Success! This page can be closed if it doesn't do so automatically.

- - - `); + + + + + +

Success! This page can be closed if it doesn't do so automatically.

+ + + `); } else { - res.send('oauth2.error.no-credentials'); + res.status(400).send('oauth2.error.no-credentials'); } });