diff --git a/.babelrc.js b/.babelrc.js deleted file mode 100644 index 2637379b4..000000000 --- a/.babelrc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - presets: [ - [ - '@babel/env', - { - targets: { - browsers: ['> 1%'] - } - } - ] - ], - plugins: [ - ['@babel/plugin-transform-for-of', {'assumeArray': true}] - ] -}; diff --git a/.ci/doc/Dockerfile b/.ci/doc/Dockerfile deleted file mode 100644 index 7f7049488..000000000 --- a/.ci/doc/Dockerfile +++ /dev/null @@ -1,76 +0,0 @@ -FROM node:20-bookworm-slim - -USER root - -RUN mkdir -p /home/node/.cache/puppeteer - -# Puppeteer Chrome headless dependencies -RUN apt-get update && apt-get install -y \ - ca-certificates \ - curl \ - fonts-liberation \ - libasound2 \ - libatk-bridge2.0-0 \ - libatk1.0-0 \ - libc6 \ - libcairo2 \ - libcups2 \ - libdbus-1-3 \ - libexpat1 \ - libfontconfig1 \ - libgbm1 \ - libgcc1 \ - libglib2.0-0 \ - libgtk-3-0 \ - libnspr4 \ - libnss3 \ - libpango-1.0-0 \ - libpangocairo-1.0-0 \ - libstdc++6 \ - libx11-6 \ - libx11-xcb1 \ - libxcb1 \ - libxcomposite1 \ - libxcursor1 \ - libxdamage1 \ - libxext6 \ - libxfixes3 \ - libxi6 \ - libxrandr2 \ - libxrender1 \ - libxss1 \ - libxtst6 \ - lsb-release \ - wget \ - xdg-utils \ - && rm -rf /var/lib/apt/lists/* - -# Install all dependencies needed for both services -RUN npm install -g \ - puppeteer \ - eslint@8.38.0 \ - eslint-plugin-html \ - eslint-plugin-import \ - eslint-plugin-node \ - eslint-plugin-promise \ - eslint-plugin-standard \ - babel-loader \ - @babel/core \ - html-webpack-plugin \ - webpack \ - webpack-cli - -RUN usermod -a -G video,audio node - -# Create working directories for snippets -RUN mkdir -p /var/snippets/web && \ - mkdir -p /var/snippets/webpack - -# Set proper permissions -RUN chown -R node:node /var/snippets/ -RUN chown -R node:node /home/node/.cache/puppeteer - -USER node - -# Keep container running -CMD ["tail", "-f", "/dev/null"] diff --git a/.ci/doc/config.yml b/.ci/doc/config.yml deleted file mode 100644 index 9dcbd9e18..000000000 --- a/.ci/doc/config.yml +++ /dev/null @@ -1,44 +0,0 @@ ---- -snippets: - mount: /mnt - path: doc/**/snippets/*.test.yml - templates: /mnt/.ci/doc/templates - -runners: - default: node - - node: - service: doc-runner-node - path: /var/snippets/node - lint: - global: true - cmd: npx eslint@8.38.0 -c /mnt/.ci/doc/eslint.json {{ snippet.dir }} - before: timeout 600 ash -c 'until stat /tmp/runner_ready_to_lint; do sleep 1; done' - run: - cmd: node {{ snippet.source }} - before: timeout 600 ash -c 'until stat /tmp/runner_is_ready && curl -f -s -o /dev/null http://kuzzle:7512/_now; do sleep 1; done' - - web: - service: doc-runner-web - path: /var/snippets/web - lint: - global: true - cmd: npx eslint@8.38.0 -c /mnt/.ci/doc/eslint.json --parser-options ecmaVersion:12 {{ snippet.dir }}/*.html - before: timeout 600 bash -c 'until stat /home/node/runner_ready_to_lint; do sleep 1; done' - run: - cmd: node puppeteer.js {{ snippet.dir }}/{{ snippet.source }} - before: timeout 600 bash -c 'until stat /home/node/runner_is_ready && curl -f -s -o /dev/null http://kuzzle:7512/_now; do sleep 1; done' - - webpack: - service: doc-runner-webpack - path: /var/snippets/webpack - lint: - global: true - cmd: npx eslint8.38.0 -c /mnt/.ci/doc/eslint.json {{ snippet.dir }} - before: timeout 600 bash -c 'until stat /home/node/runner_ready_to_lint; do sleep 1; done' - build: - cmd: node webpackBuild.js {{ snippet.dir }}/{{ snippet.source }} - before: timeout 600 bash -c 'until stat /home/node/runner_is_ready; do sleep 1; done' - run: - cmd: node puppeteer.js /tmp/{{ snippet.name }}/index.html - before: timeout 600 bash -c 'until curl -f -s -o /dev/null http://kuzzle:7512/_now; do sleep 1; done' diff --git a/.ci/doc/docker-compose.yml b/.ci/doc/docker-compose.yml deleted file mode 100644 index 4c03c7c72..000000000 --- a/.ci/doc/docker-compose.yml +++ /dev/null @@ -1,105 +0,0 @@ -services: - kuzzle: - image: kuzzleio/kuzzle:2 - ports: - - '7512:7512' - cap_add: - - SYS_PTRACE - depends_on: - - redis - - elasticsearch - environment: - - kuzzle_services__storageEngine__client__node=http://elasticsearch:9200 - - kuzzle_services__internalCache__node__host=redis - - kuzzle_services__memoryStorage__node__host=redis - - kuzzle_services__storageEngine__commonMapping__dynamic=true - - kuzzle_services__storageEngine__internalIndex__collections__users__dynamic=true - - NODE_ENV=development - - redis: - image: redis:5 - - elasticsearch: - image: kuzzleio/elasticsearch:7 - ulimits: - nofile: 65536 - - doc-tests: - image: kuzzleio/snippets-tests - privileged: true - ports: - - '9229:9229' - depends_on: - - kuzzle - - doc-runner-node - - doc-runner-web - - doc-runner-webpack - volumes: - - ../..:/mnt - - /var/run/docker.sock:/var/run/docker.sock - - snippets:/var/snippets - environment: - - CONFIG_FILE=/mnt/.ci/doc/config.yml - - doc-runner-node: - image: node:20-alpine - command: > - ash -c ' - mkdir -p /var/snippets/node; - apk add --no-cache curl; - cd /var/snippets/node; - npm install \ - bluebird \ - /mnt/ \ - eslint@8.38.0 \ - eslint-plugin-html \ - eslint-plugin-import \ - eslint-plugin-node \ - eslint-plugin-promise \ - eslint-plugin-standard; - touch /tmp/runner_ready_to_lint; - touch /tmp/runner_is_ready; - tail -f /dev/null - ' - volumes: - - ../..:/mnt - - snippets:/var/snippets - - doc-runner-web: - build: . - volumes: - - ../..:/mnt - - snippets:/var/snippets - working_dir: /var/snippets/web - command: > - bash -c ' - cp /mnt/.ci/doc/puppeteer.js /var/snippets/web/; - npm install /mnt/; - cp -fr /usr/local/lib/node_modules/* /var/snippets/web/node_modules; - cp -fr /usr/local/lib/node_modules/* /var/snippets/webpack/node_modules; - touch /home/node/runner_ready_to_lint; - touch /home/node/runner_is_ready; - tail -f /dev/null - ' - - doc-runner-webpack: - build: . - volumes: - - ../..:/mnt - - snippets:/var/snippets - working_dir: /var/snippets/webpack - command: > - bash -c ' - cp /mnt/.ci/doc/puppeteer.js /var/snippets/webpack/; - cp /mnt/.ci/doc/webpackBuild.js /var/snippets/webpack/; - npm install /mnt/; - cp -fr /usr/local/lib/node_modules/* /var/snippets/web/node_modules; - cp -fr /usr/local/lib/node_modules/* /var/snippets/webpack/node_modules; - touch /home/node/runner_ready_to_lint; - touch /home/node/runner_is_ready; - tail -f /dev/null - ' - - -volumes: - snippets: diff --git a/.ci/doc/eslint.json b/.ci/doc/eslint.json deleted file mode 100644 index 3ee825948..000000000 --- a/.ci/doc/eslint.json +++ /dev/null @@ -1,444 +0,0 @@ -{ - "parserOptions": { - "ecmaVersion": 9, - "ecmaFeatures": { - "jsx": true - }, - "sourceType": "module" - }, - "env": { - "es6": true, - "node": true, - "browser": true - }, - "plugins": [ - "import", - "node", - "promise", - "standard", - "html" - ], - "globals": { - "document": false, - "navigator": false, - "window": false, - "KuzzleSDK": true - }, - "rules": { - "accessor-pairs": "error", - "arrow-spacing": [ - "error", - { - "before": true, - "after": true - } - ], - "block-spacing": [ - "error", - "always" - ], - "brace-style": [ - "error", - "1tbs", - { - "allowSingleLine": true - } - ], - "camelcase": [ - "error", - { - "properties": "never" - } - ], - "comma-spacing": [ - "error", - { - "before": false, - "after": true - } - ], - "comma-style": [ - "error", - "last" - ], - "constructor-super": "error", - "curly": [ - "error", - "multi-line" - ], - "dot-location": [ - "error", - "property" - ], - "eol-last": "error", - "eqeqeq": [ - "error", - "always", - { - "null": "ignore" - } - ], - "func-call-spacing": [ - "error", - "never" - ], - "generator-star-spacing": [ - "error", - { - "before": true, - "after": true - } - ], - "handle-callback-err": [ - "error", - "^(err|error)$" - ], - "indent": [ - "error", - 2, - { - "SwitchCase": 1, - "VariableDeclarator": 1, - "outerIIFEBody": 1, - "MemberExpression": 1, - "FunctionDeclaration": { - "parameters": 1, - "body": 1 - }, - "FunctionExpression": { - "parameters": 1, - "body": 1 - }, - "CallExpression": { - "arguments": 1 - }, - "ArrayExpression": 1, - "ObjectExpression": 1, - "ImportDeclaration": 1, - "flatTernaryExpressions": false, - "ignoreComments": false - } - ], - "key-spacing": [ - "error", - { - "beforeColon": false, - "afterColon": true - } - ], - "keyword-spacing": [ - "error", - { - "before": true, - "after": true - } - ], - "new-cap": [ - "error", - { - "newIsCap": true, - "capIsNew": false - } - ], - "new-parens": "error", - "no-array-constructor": "error", - "no-caller": "error", - "no-class-assign": "error", - "no-compare-neg-zero": "error", - "no-cond-assign": "error", - "no-const-assign": "error", - "no-constant-condition": [ - "error", - { - "checkLoops": false - } - ], - "no-control-regex": "error", - "no-debugger": "error", - "no-delete-var": "error", - "no-dupe-args": "error", - "no-dupe-class-members": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-empty-character-class": "error", - "no-empty-pattern": "error", - "no-eval": "error", - "no-ex-assign": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-boolean-cast": "error", - "no-extra-parens": [ - "error", - "functions" - ], - "no-fallthrough": "error", - "no-floating-decimal": "error", - "no-func-assign": "error", - "no-global-assign": "error", - "no-implied-eval": "error", - "no-inner-declarations": [ - "error", - "functions" - ], - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-iterator": "error", - "no-label-var": "error", - "no-labels": [ - "error", - { - "allowLoop": false, - "allowSwitch": false - } - ], - "no-lone-blocks": "error", - "no-mixed-operators": [ - "error", - { - "groups": [ - [ - "==", - "!=", - "===", - "!==", - ">", - ">=", - "<", - "<=" - ], - [ - "&&", - "||" - ], - [ - "in", - "instanceof" - ] - ], - "allowSamePrecedence": true - } - ], - "no-mixed-spaces-and-tabs": "error", - "no-multi-spaces": "error", - "no-multi-str": "error", - "no-multiple-empty-lines": [ - "error", - { - "max": 1, - "maxEOF": 0 - } - ], - "no-negated-in-lhs": "error", - "no-new": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-symbol": "error", - "no-new-wrappers": "error", - "no-obj-calls": "error", - "no-octal": "error", - "no-octal-escape": "error", - "no-path-concat": "error", - "no-proto": "error", - "no-redeclare": "error", - "no-regex-spaces": "error", - "no-return-assign": [ - "error", - "except-parens" - ], - "no-return-await": "error", - "no-self-assign": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-shadow-restricted-names": "error", - "no-sparse-arrays": "error", - "no-tabs": "error", - "no-template-curly-in-string": "error", - "no-this-before-super": "error", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef": "error", - "no-undef-init": "error", - "no-unexpected-multiline": "error", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": [ - "error", - { - "defaultAssignment": false - } - ], - "no-unreachable": "error", - "no-unsafe-finally": "error", - "no-unsafe-negation": "error", - "no-unused-expressions": [ - "error", - { - "allowShortCircuit": true, - "allowTernary": true, - "allowTaggedTemplates": true - } - ], - "no-use-before-define": [ - "error", - { - "functions": false, - "classes": false, - "variables": false - } - ], - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-constructor": "error", - "no-useless-escape": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-whitespace-before-property": "error", - "no-with": "error", - "object-property-newline": [ - "error", - { - "allowMultiplePropertiesPerLine": true - } - ], - "one-var": [ - "error", - { - "initialized": "never" - } - ], - "operator-linebreak": [ - "error", - "after", - { - "overrides": { - "?": "before", - ":": "before" - } - } - ], - "prefer-promise-reject-errors": "error", - "quotes": [ - "error", - "single", - { - "avoidEscape": true, - "allowTemplateLiterals": true - } - ], - "rest-spread-spacing": [ - "error", - "never" - ], - "semi-spacing": [ - "error", - { - "before": false, - "after": true - } - ], - "space-before-blocks": [ - "error", - "always" - ], - "space-before-function-paren": [ - "error", - "always" - ], - "space-in-parens": [ - "error", - "never" - ], - "space-infix-ops": "error", - "space-unary-ops": [ - "error", - { - "words": true, - "nonwords": false - } - ], - "spaced-comment": [ - "error", - "always", - { - "line": { - "markers": [ - "*package", - "!", - "/", - ",", - "=" - ] - }, - "block": { - "balanced": true, - "markers": [ - "*package", - "!", - ",", - ":", - "::", - "flow-include" - ], - "exceptions": [ - "*" - ] - } - } - ], - "symbol-description": "error", - "template-curly-spacing": [ - "error", - "never" - ], - "template-tag-spacing": [ - "error", - "never" - ], - "unicode-bom": [ - "error", - "never" - ], - "use-isnan": "error", - "valid-typeof": [ - "error", - { - "requireStringLiterals": true - } - ], - "wrap-iife": [ - "error", - "any", - { - "functionPrototypeMethods": true - } - ], - "yield-star-spacing": [ - "error", - "both" - ], - "yoda": [ - "error", - "never" - ], - "import/export": "error", - "import/first": "error", - "import/no-duplicates": "error", - "import/no-webpack-loader-syntax": "error", - "node/no-deprecated-api": "error", - "node/process-exit-as-throw": "error", - "promise/param-names": "error", - "standard/array-bracket-even-spacing": [ - "error", - "either" - ], - "standard/computed-property-even-spacing": [ - "error", - "even" - ], - "standard/no-callback-literal": "error", - "standard/object-curly-even-spacing": [ - "error", - "either" - ] - } -} \ No newline at end of file diff --git a/.ci/doc/package.json b/.ci/doc/package.json deleted file mode 100644 index a98376095..000000000 --- a/.ci/doc/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "docs", - "version": "1.0.0", - "description": "docs for kuzzle-sdk", - "author": "The Kuzzle Team ", - "main": "index.js", - "scripts": {}, - "dependencies": {}, - "devDependencies": {} -} diff --git a/.ci/doc/puppeteer.js b/.ci/doc/puppeteer.js deleted file mode 100644 index eb4558052..000000000 --- a/.ci/doc/puppeteer.js +++ /dev/null @@ -1,60 +0,0 @@ -const puppeteer = require("puppeteer"); -const renderedSnippetPath = process.argv[2]; - -const runInBrowser = async (snippetPath) => { - let browser; - try { - // Install Chrome browser first - const { execSync } = require('child_process'); - execSync('npx puppeteer browsers install chrome', { stdio: 'inherit' }); - - browser = await puppeteer.launch({ - dumpio: true, - headless: "new", - // Remove executablePath to use the bundled Chromium - args: [ - "--no-sandbox", - "--disable-setuid-sandbox", - "--disable-gpu", - "--disable-dev-shm-usage", - ], - }); - } catch (error) { - console.error('Browser launch error:', error); - process.exit(1); - } - - try { - const page = await browser.newPage(); - - page.on("error", (err) => { - console.error('Page error:', err); - }); - - page.on("pageerror", (err) => { - console.error('Page error:', err); - }); - - page.on('console', msg => { - console.log('Page console:', msg.text()); - }); - - await page.goto(`file:${snippetPath}`, { - waitUntil: "networkidle0", - timeout: 30000, - }); - } catch (error) { - console.error('Page processing error:', error); - } finally { - if (browser) { - await browser.close(); - } - } -}; - -if (!renderedSnippetPath) { - console.error('Please provide a path to the snippet file'); - process.exit(1); -} - -runInBrowser(renderedSnippetPath); \ No newline at end of file diff --git a/.ci/doc/templates/blank.tpl.js b/.ci/doc/templates/blank.tpl.js deleted file mode 100644 index 2275df716..000000000 --- a/.ci/doc/templates/blank.tpl.js +++ /dev/null @@ -1,14 +0,0 @@ -// load the Kuzzle SDK module -const - { - Kuzzle, - WebSocket, - Http - } = require('kuzzle-sdk'); - -const kuzzle = new Kuzzle( - new WebSocket('kuzzle', { pingInterval: 2000 }) -); - -[snippet-code] -console.log('Everything is ok'); diff --git a/.ci/doc/templates/catch.tpl.js b/.ci/doc/templates/catch.tpl.js deleted file mode 100644 index 572bd431b..000000000 --- a/.ci/doc/templates/catch.tpl.js +++ /dev/null @@ -1,31 +0,0 @@ -// Loads the Kuzzle SDK module and the websocket protocol -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); - -// Instantiates a Kuzzle client -const - kuzzle = new Kuzzle( - new WebSocket('kuzzle', { autoReconnect: false, pingInterval: 2000 }) - ); - -// Adds a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error.message}`); -}); - -(async () => { - try { - await kuzzle.connect(); - } catch (error) { - console.log(`Can not connect to Kuzzle: ${error.message}`); - } - try { - [snippet-code] - } catch (e) { - console.log('Success'); - } finally { - kuzzle.disconnect(); - } -})(); diff --git a/.ci/doc/templates/controller.tpl.js b/.ci/doc/templates/controller.tpl.js deleted file mode 100644 index 17a2ff24e..000000000 --- a/.ci/doc/templates/controller.tpl.js +++ /dev/null @@ -1,11 +0,0 @@ -// load the Kuzzle SDK module -const - { - Kuzzle, - WebSocket, - BaseController - } = require('kuzzle-sdk'); - -BaseController.prototype.query = () => Promise.resolve(null); - -[snippet-code] diff --git a/.ci/doc/templates/createDocumentAfterSnippet.tpl.js b/.ci/doc/templates/createDocumentAfterSnippet.tpl.js deleted file mode 100644 index 047902732..000000000 --- a/.ci/doc/templates/createDocumentAfterSnippet.tpl.js +++ /dev/null @@ -1,27 +0,0 @@ -// This template imports the snippet and then creates a document in the -// 'yellow-taxi collection in the `nyc-open-data` index. - -[snippet-code] - -// Require a kuzzle instance assigning it to a weird variable to avoid collisions and create the instance. -const $k = require('kuzzle-sdk'); -const $kInstance = new $k.Kuzzle(new $k.WebSocket('kuzzle', { pingInterval: 2000 })); - -// add a listener to detect any connection problems -$kInstance.on('networkError', error => { - console.error(`[doItAndCreateDocument.tpl] Network Error: ${error}`); -}); - -$kInstance.connect().then(() => { - const driver = { - name: 'Sirkis', - birthday: '1959-06-22', - license: 'B' - }; - - return $kInstance.document.create('nyc-open-data', 'yellow-taxi', driver); -}).catch(error => { - console.error(`[doItAndCreateDocument.tpl] Error creating document: ${error}`); -}).finally(() => { - $kInstance.disconnect(); -}); diff --git a/.ci/doc/templates/default.tpl.html b/.ci/doc/templates/default.tpl.html deleted file mode 100644 index e19296a86..000000000 --- a/.ci/doc/templates/default.tpl.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Snippet testing - - - - [snippet-code] - - diff --git a/.ci/doc/templates/default.tpl.js b/.ci/doc/templates/default.tpl.js deleted file mode 100644 index e277f3183..000000000 --- a/.ci/doc/templates/default.tpl.js +++ /dev/null @@ -1,25 +0,0 @@ -// Loads the Kuzzle SDK module and the websocket protocol -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); - -// Instantiates a Kuzzle client -const kuzzle = new Kuzzle(new WebSocket('kuzzle', { autoReconnect: false, pingInterval: 2000 })); - -// Adds a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error.message}`); -}); - -(async () => { - try { - await kuzzle.connect(); - } catch (error) { - console.log(`Can not connect to Kuzzle: ${error.message}`); - } - - [snippet-code] finally { - kuzzle.disconnect(); - } -})(); diff --git a/.ci/doc/templates/doIt.tpl.js b/.ci/doc/templates/doIt.tpl.js deleted file mode 100644 index 9194dec7a..000000000 --- a/.ci/doc/templates/doIt.tpl.js +++ /dev/null @@ -1,5 +0,0 @@ -// This template expects a snippet that declares a function called doIt function -// which it calls. -[snippet-code] - -doIt(); diff --git a/.ci/doc/templates/empty-realtime.tpl.js b/.ci/doc/templates/empty-realtime.tpl.js deleted file mode 100644 index f8139c144..000000000 --- a/.ci/doc/templates/empty-realtime.tpl.js +++ /dev/null @@ -1,23 +0,0 @@ -function sleep (ms, i = 0) { - setTimeout(() => { - if (i >= 150 || outputs.length > 0) { - console.log = consoleLog; - console.log(...outputs); - - // force exit: do not wait for the event loop to be empty - process.exit(0); - } - sleep(ms, ++i); - }, ms); -} - -const consoleLog = console.log; -const outputs = []; - -console.log = (...args) => { - outputs.push(...args); -}; - -[snippet-code] - -sleep(200); diff --git a/.ci/doc/templates/empty.tpl.js b/.ci/doc/templates/empty.tpl.js deleted file mode 100644 index 3da052031..000000000 --- a/.ci/doc/templates/empty.tpl.js +++ /dev/null @@ -1,3 +0,0 @@ -[snippet-code] - -console.log('Success'); diff --git a/.ci/doc/templates/eventemitter.tpl.js b/.ci/doc/templates/eventemitter.tpl.js deleted file mode 100644 index df1a48f9f..000000000 --- a/.ci/doc/templates/eventemitter.tpl.js +++ /dev/null @@ -1,6 +0,0 @@ -const - { - KuzzleEventEmitter - } = require('kuzzle-sdk'); - -[snippet-code] diff --git a/.ci/doc/templates/mqtt-end.tpl.js b/.ci/doc/templates/mqtt-end.tpl.js deleted file mode 100644 index 4b051836c..000000000 --- a/.ci/doc/templates/mqtt-end.tpl.js +++ /dev/null @@ -1,4 +0,0 @@ -[snippet-code] finally { - console.log('Success'); - client.end(); -} diff --git a/.ci/doc/templates/print-result-successes.tpl.js b/.ci/doc/templates/print-result-successes.tpl.js deleted file mode 100644 index 4b3228a7d..000000000 --- a/.ci/doc/templates/print-result-successes.tpl.js +++ /dev/null @@ -1,31 +0,0 @@ -// Loads the Kuzzle SDK module and the websocket protocol -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); - -// Instantiates a Kuzzle client -const - kuzzle = new Kuzzle( - new WebSocket('kuzzle', { autoReconnect: false, pingInterval: 2000 }) - ); - -// Adds a listener to detect connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error.message}`); -}); - -(async () => { - let result; - try { - await kuzzle.connect(); - } catch (error) { - console.log(`Cannot connect to Kuzzle: ${error.message}`); - } - [snippet-code] finally { - kuzzle.disconnect(); - } - for (const elem of result.successes) { - console.log(elem); - } -})(); diff --git a/.ci/doc/templates/realtime.tpl.js b/.ci/doc/templates/realtime.tpl.js deleted file mode 100644 index e708c03b1..000000000 --- a/.ci/doc/templates/realtime.tpl.js +++ /dev/null @@ -1,47 +0,0 @@ -// Loads the Kuzzle SDK module and the websocket protocol -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); - -// Instantiates a Kuzzle client -const - kuzzle = new Kuzzle( - new WebSocket('kuzzle', { autoReconnect: false, pingInterval: 2000 }) - ); - -// Adds a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error.message}`); -}); - -function sleep (ms) { - return new Promise(resolve => setTimeout(resolve, ms)); -} - -(async () => { - try { - await kuzzle.connect(); - } catch (error) { - console.log(`Cannot connect to Kuzzle: ${error.message}`); - } - - const consoleLog = console.log; - const outputs = []; - - console.log = (...args) => { - outputs.push(...args); - }; - - [snippet-code] finally { - for (let i = 150; i > 0 && outputs.length <= 0; --i) { - await sleep(200); - } - - console.log = consoleLog; - console.log(...outputs); - - // force exit: do not wait for the event loop to be empty - process.exit(0); - } -})(); diff --git a/.ci/doc/templates/success.tpl.js b/.ci/doc/templates/success.tpl.js deleted file mode 100644 index 805c78cad..000000000 --- a/.ci/doc/templates/success.tpl.js +++ /dev/null @@ -1,32 +0,0 @@ -// Loads the Kuzzle SDK module and the websocket protocol -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); - -// Instantiates a Kuzzle client -const - kuzzle = new Kuzzle( - new WebSocket('kuzzle', { autoReconnect: false, pingInterval: 2000 }) - ); - -// Adds a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error.message}`); -}); - -(async function run () { - try { - await kuzzle.connect(); - } catch (error) { - console.log(`Can not connect to Kuzzle: ${error.message}`); - } - try { - [snippet-code] - console.log('Success'); - } catch (e) { - console.log(e); - } finally { - kuzzle.disconnect(); - } -})(); diff --git a/.ci/doc/templates/thencatch.tpl.js b/.ci/doc/templates/thencatch.tpl.js deleted file mode 100644 index 43e5d1f0b..000000000 --- a/.ci/doc/templates/thencatch.tpl.js +++ /dev/null @@ -1,28 +0,0 @@ -const Bluebird = require('bluebird'); - -// Loads the Kuzzle SDK module and the websocket protocol -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); - -// Instantiates a Kuzzle client -const - kuzzle = new Kuzzle( - new WebSocket('kuzzle', { autoReconnect: false, pingInterval: 2000 }) - ); - -// Adds a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error.message}`); -}); - -Bluebird.resolve( - kuzzle - .connect() - .then(() => { - return [snippet-code] - }) -) - .catch(() => 'nothing') - .finally(() => kuzzle.disconnect()); diff --git a/.ci/doc/templates/without-connect.tpl.js b/.ci/doc/templates/without-connect.tpl.js deleted file mode 100644 index 493ea3b8c..000000000 --- a/.ci/doc/templates/without-connect.tpl.js +++ /dev/null @@ -1,22 +0,0 @@ -// Loads the Kuzzle SDK module and the websocket protocol -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); - -// Instantiates a Kuzzle client -const - kuzzle = new Kuzzle( - new WebSocket('kuzzle', { autoReconnect: false, pingInterval: 2000 }) - ); - -// Adds a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error.message}`); -}); - -(async () => { - [snippet-code] finally { - kuzzle.disconnect(); - } -})(); diff --git a/.ci/doc/webpackBuild.js b/.ci/doc/webpackBuild.js deleted file mode 100644 index 72038a3c2..000000000 --- a/.ci/doc/webpackBuild.js +++ /dev/null @@ -1,53 +0,0 @@ -const path = require('path'); -const webpack = require('webpack'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); - -const build = async file => { - const config = { - entry: file, - output: { - path: path.resolve('/tmp', path.basename(file).replace(/\.[^.]+$/, '')), - filename: 'build.js' - }, - module: { - rules: [ - { - test: /\.js$/, - loader: 'babel-loader' - } - ] - }, - devtool: 'eval-source-map', - plugins: [new HtmlWebpackPlugin()] - }; - - return new Promise((resolve, reject) => { - webpack(config, (err, stats) => { - if (err) { - if (err.details) { - return reject(err.details); - } - return reject(err.stack || err); - } - const info = stats.toJson(); - - if (stats.hasErrors()) { - return reject(info.errors); - } - - if (stats.hasWarnings()) { - return resolve(info.warnings); - } - resolve(true); - }); - }); -}; - -(async () => { - try { - await build(process.argv[2]); - } catch (e) { - console.error(e); - throw e; - } -})(); diff --git a/.ci/docker-compose.yml b/.ci/docker-compose.yml index e5bdca5e3..5a204033c 100644 --- a/.ci/docker-compose.yml +++ b/.ci/docker-compose.yml @@ -13,12 +13,13 @@ services: - kuzzle_services__internalCache__node__host=redis - kuzzle_services__memoryStorage__node__host=redis - kuzzle_services__storageEngine__commonMapping__dynamic=true + - kuzzle_services__storageEngine__majorVersion=8 - NODE_ENV=production redis: - image: redis:5 + image: redis:8 elasticsearch: - image: kuzzleio/elasticsearch:7 + image: docker.io/bitnamilegacy/elasticsearch:8.17.1-debian-12-r6 ulimits: - nofile: 65536 \ No newline at end of file + nofile: 65536 diff --git a/.ci/start_kuzzle.sh b/.ci/start_kuzzle.sh index 4a7a8789b..9420842ef 100755 --- a/.ci/start_kuzzle.sh +++ b/.ci/start_kuzzle.sh @@ -14,4 +14,4 @@ until $(curl --output /dev/null --silent --head --fail http://localhost:7512); d if [ "$spinner" = "/" ]; then spinner="\\"; else spinner="/" ; fi sleep 1 -done +done \ No newline at end of file diff --git a/.ci/stop_kuzzle.sh b/.ci/stop_kuzzle.sh index 04a8eb30c..15c6d18dd 100755 --- a/.ci/stop_kuzzle.sh +++ b/.ci/stop_kuzzle.sh @@ -2,4 +2,4 @@ set -e # Download and launch custom Kuzzle stack -docker-compose -f .ci/docker-compose.yml stop +docker-compose -f .ci/docker-compose.yml stop \ No newline at end of file diff --git a/.ci/test-docs.sh b/.ci/test-docs.sh deleted file mode 100644 index 7cb3854f4..000000000 --- a/.ci/test-docs.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -ex - -here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -cd "$here" - -docker compose -f ./doc/docker-compose.yml build -docker compose -f ./doc/docker-compose.yml pull -docker compose -f ./doc/docker-compose.yml run doc-tests node index -EXIT=$? -docker compose -f ./doc/docker-compose.yml down diff --git a/.commitlintrc.json b/.commitlintrc.json deleted file mode 100644 index 7a4907e03..000000000 --- a/.commitlintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": ["@commitlint/config-conventional"] -} \ No newline at end of file diff --git a/.cz.json b/.cz.json deleted file mode 100644 index 6ab2bbc26..000000000 --- a/.cz.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "path": "./node_modules/cz-conventional-changelog" -} \ No newline at end of file diff --git a/.eslintignore b/.eslintignore index d4668996d..c3b9b6892 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,44 +1,5 @@ -# JS generated files from TS -src/**/*.d.ts -src/**/*.js.map +*.d.ts +*.js.map -src/Kuzzle.js -src/KuzzleError.js -src/RequestTimeoutError.js -src/controllers/Auth.js -src/controllers/Bulk.js -src/controllers/Document.js -src/controllers/Realtime.js -src/controllers/Index.js -src/controllers/Collection.js -src/controllers/Base.js -src/controllers/Security.js -src/core/security/User.js -src/core/security/Profile.js -src/core/security/Role.js -src/protocols/abstract/Base.js -src/protocols/abstract/Realtime.js -src/protocols/DisconnectionOrigin.js -src/protocols/Http.js -src/protocols/WebSocket.js -src/protocols/index.js -src/types/*.js -src/core/KuzzleEventEmitter.js -src/core/searchResult/SearchResultBase.js -src/core/searchResult/Document.js -src/core/searchResult/Profile.js -src/core/searchResult/Role.js -src/core/searchResult/Specifications.js -src/core/searchResult/User.js -src/utils/Deprecation.js -src/utils/interfaces.js -src/controllers/Server.js -src/core/Observer.js -src/core/RealtimeDocument.js -src/core/searchResult/RealtimeDocument.js -src/core/InstrumentablePromise.js -src/core/batchWriter/BatchBuffer.js -src/core/batchWriter/BatchController.js -src/core/batchWriter/BatchWriter.js -src/protocols/abstract/PendingRequest.js -src/utils/object.js +dist/** +out/** diff --git a/.eslintrc-ts.json b/.eslintrc-ts.json deleted file mode 100644 index a8ef2e7b1..000000000 --- a/.eslintrc-ts.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "plugins": ["kuzzle"], - "extends": [ - "plugin:kuzzle/default", - "plugin:kuzzle/node", - "plugin:kuzzle/typescript" - ], - "rules": { - "func-names": 0, - "strict": 0 - } -} diff --git a/.eslintrc.json b/.eslintrc.json index 78a0c6739..cd4052a0d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,8 +1,21 @@ { + "ignorePatterns": ["doc/**"], "plugins": ["kuzzle"], "extends": ["plugin:kuzzle/default", "plugin:kuzzle/node"], + "parserOptions": { + "ecmaVersion": 2020 + }, "rules": { - "func-names": 0, - "strict": 0 - } + "sort-keys": "off", + "kuzzle/array-foreach": "off", + "no-console": "off", + "func-names": "off", + "new-cap": "off" + }, + "overrides": [ + { + "files": ["*.ts"], + "extends": ["plugin:kuzzle/typescript"] + } + ] } diff --git a/.github/workflows/pull_request.workflow.yml b/.github/workflows/pull_request.workflow.yml index 4a54906f4..3e918e408 100644 --- a/.github/workflows/pull_request.workflow.yml +++ b/.github/workflows/pull_request.workflow.yml @@ -8,13 +8,13 @@ jobs: runs-on: ubuntu-24.04 strategy: matrix: - node-version: ["18", "20"] + node-version: [20, 22, 24] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: 'npm' + cache: "npm" - run: | npm ci npm run test:lint @@ -25,13 +25,13 @@ jobs: needs: [lint] strategy: matrix: - node-version: ["18", "20"] + node-version: [20, 22, 24] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: 'npm' + cache: "npm" - uses: ./.github/actions/unit-tests functional-tests: @@ -40,27 +40,13 @@ jobs: needs: [unit-tests] strategy: matrix: - node-version: ["18", "20"] + node-version: [20, 22, 24] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: 'npm' + cache: "npm" - uses: ./.github/actions/functional-tests with: CYPRESS_RECORD_KEY_DOC: ${{ secrets.CYPRESS_RECORD_KEY_DOC }} - - documentation-snippet-tests: - name: Documentation Snippet Tests - needs: [unit-tests] - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: "20" - cache: 'npm' - - uses: ./.github/actions/snippet-tests - with: - CYPRESS_RECORD_KEY_DOC: ${{ secrets.CYPRESS_RECORD_KEY_DOC }} diff --git a/.github/workflows/push_branches.workflow.yaml b/.github/workflows/push_branches.workflow.yaml index 635403631..8df9f94d9 100644 --- a/.github/workflows/push_branches.workflow.yaml +++ b/.github/workflows/push_branches.workflow.yaml @@ -22,7 +22,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: "lts/*" + node-version: 24 registry-url: "https://registry.npmjs.org" scope: '@kuzzleio' diff --git a/.gitignore b/.gitignore index d87f0da8d..508b4b4c0 100644 --- a/.gitignore +++ b/.gitignore @@ -27,47 +27,8 @@ doc/7/getting-started/.vuejs/cypress/videos # Debug snippets test-*.js -# Typescript related files -*.d.ts -*.js.map -index.js -src/Kuzzle.js -src/KuzzleError.js -src/RequestTimeoutError.js -src/controllers/Auth.js -src/controllers/Bulk.js -src/controllers/Document.js -src/controllers/Index.js -src/controllers/Collection.js -src/controllers/Base.js -src/controllers/Realtime.js -src/controllers/Security.js -src/core/security/User.js -src/core/security/Profile.js -src/core/security/Role.js -src/protocols/abstract/Base.js -src/protocols/abstract/Realtime.js -src/protocols/DisconnectionOrigin.js -src/protocols/Http.js -src/protocols/WebSocket.js -src/protocols/index.js -src/types/*.js -src/core/KuzzleEventEmitter.js -src/core/searchResult/SearchResultBase.js -src/core/searchResult/Document.js -src/core/searchResult/Profile.js -src/core/searchResult/Role.js -src/core/searchResult/Specifications.js -src/core/searchResult/User.js -src/utils/Deprecation.js -src/utils/interfaces.js -src/controllers/Server.js -src/core/Observer.js -src/core/RealtimeDocument.js -src/core/searchResult/RealtimeDocument.js -src/core/InstrumentablePromise.js -src/core/batchWriter/BatchBuffer.js -src/core/batchWriter/BatchController.js -src/core/batchWriter/BatchWriter.js -src/protocols/abstract/PendingRequest.js -src/utils/object.js +## Webpack output +dist + +# Typescript output +out diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 8c97168c9..000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "features/features"] - path = features/features - url = https://github.com/kuzzleio/sdk-features.git diff --git a/.husky/commit-msg b/.husky/commit-msg deleted file mode 100644 index 04d34cc79..000000000 --- a/.husky/commit-msg +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -[ -n "$CI" ] && exit 0 - -. "$(dirname -- "$0")/_/husky.sh" - -npx --no -- commitlint --edit ${1} \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100644 index 22f2445e7..000000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env sh -[ -n "$CI" ] && exit 0 - -. "$(dirname -- "$0")/_/husky.sh" - -npm run lint \ No newline at end of file diff --git a/.mocharc.json b/.mocharc.json index 79c73899e..83bd162a7 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -3,5 +3,5 @@ "recursive": true, "slow": 2000, "timeout": 10000, - "require": ["should-sinon", "ts-node/register"] + "require": ["should-sinon", "ts-node/register", "./test/setup"] } diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..0081bf78a --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "trailingComma": "all" +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index a4b5bd3e9..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Launch Program", - "program": "${workspaceFolder}/index.js" - } - ] -} \ No newline at end of file diff --git a/ast-refactor/inline-options-to-interface.ts b/ast-refactor/inline-options-to-interface.ts deleted file mode 100644 index 3a99a9f0c..000000000 --- a/ast-refactor/inline-options-to-interface.ts +++ /dev/null @@ -1,121 +0,0 @@ -/** - * Script to refactor inline options declaration into external interfaces - * inheriting from the default "ArgsDefault" interface. - * - * @example - * -export class SomeController { - helloWorld ( - name: string, - options: { - queuable?: boolean, - timeout?: number, - age?: number; - } = {} - ): string { - return name; - } -} - - * This code will became - -export class SomeController { - helloWorld ( - name: string, - options: ArgsSomeControllerHelloWorld = {} - ): string { - return name; - } -} - -interface ArgsSomeControllerHelloWorld extends ArgsDefault { - age?: number; -} - - */ - -/* Script Arguments ==================================================== */ - -const filePath = process.argv[2]; -const className = process.argv[3]; - -if (! filePath || ! className) { - console.log(`Usage: node ${process.argv[1]} `); -} - -/* ===================================================================== */ - -import { Project, SyntaxKind, ParameterDeclaration } from 'ts-morph'; - -function upFirst (string) { - return string.charAt(0).toUpperCase() + string.slice(1); -} - -// initialize -const project = new Project({}); - -const file = project.addSourceFileAtPath(filePath); -const loadedClass = file.getClassOrThrow(className); - -for (const method of loadedClass.getMethods()) { - if (method.getScope() !== 'public') { - continue; - } - - // Get the parameter named "options" - const options = method.getParameter('options'); - - if (options) { - const argsInterface = createArgsInterface(method.getName(), options); - - // Change the type of the "options" parameter with our newly created interface - options.setType(argsInterface.getName()) - } -} - - -function createArgsInterface (methodName: string, options: ParameterDeclaration) { - const argsInterface = file.addInterface({ - name: `Args${loadedClass.getName()}${upFirst(methodName)}`, - extends: ['ArgsDefault'], - isExported: true, - }); - - // Get the AST node containing the type definition - const optionsType = options.getTypeNode() - - if (optionsType) { - // The SyntaxList contains properties type definitions - const syntaxList = optionsType.getChildSyntaxList(); - - for (const child of syntaxList.getChildren()) { - - // Get the property name (e.g. "queuable") - const name = child.getChildrenOfKind(SyntaxKind.Identifier)[0].getText(); - // Ignore common arguments - if (['queuable', 'timeout'].includes(name)) { - continue; - } - - // Is it an optional property? (e.g. "queuable?") - const hasQuestionToken = Boolean(child.getChildrenOfKind(SyntaxKind.QuestionToken)[0]); - - // Get the type of the property, the type node is located just after the "ColonToken" node - const type = child.getChildrenOfKind(SyntaxKind.ColonToken)[0].getNextSibling().getText(); - - argsInterface.addProperty({ name, type, hasQuestionToken }); - } - } - - console.log(argsInterface.getText()); - - return argsInterface; -} - - - -async function run () { - await project.save(); -} - -run(); \ No newline at end of file diff --git a/build.js b/build.js deleted file mode 100644 index c2153493e..000000000 --- a/build.js +++ /dev/null @@ -1,24 +0,0 @@ -const webpack = require('webpack'); -const webpackConfig = require('./webpack.config.js'); - -/* eslint-disable no-console */ - -console.log('Building SDK...'); - -process.env.NODE_ENV = 'production'; - -webpack(webpackConfig, function (err, stats) { - if (err) { - throw err; - } - - console.log('Build complete.'); - - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n'); -}); diff --git a/cucumber.config.cjs b/cucumber.config.cjs new file mode 100644 index 000000000..aad45df45 --- /dev/null +++ b/cucumber.config.cjs @@ -0,0 +1,14 @@ +"use strict"; + +/** @type {import('@cucumber/cucumber').IConfiguration} */ +const defaultConfig = { + failFast: true, + paths: ["features/**/*.feature"], + publishQuiet: true, + require: ["features/**/*.ts"], + requireModule: ["ts-node/register"], +}; + +module.exports = { + default: defaultConfig, +}; diff --git a/cypress.json b/cypress.json deleted file mode 100644 index 21b572c9e..000000000 --- a/cypress.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "baseUrl": "http://localhost:8080", - "fixturesFolder": "test/e2e/cypress/fixtures", - "integrationFolder": "test/e2e/cypress/integration", - "pluginsFile": "test/e2e/cypress/plugins/index.js", - "supportFile": "test/e2e/cypress/support/index.js", - "screenshotsFolder": "test/e2e/failed-test/", - "videosFolder": "test/e2e/videos", - "videoUploadOnPasses": false, - "projectId": "rwzafm", - "viewportHeight": 800, - "viewportWidth": 1400 -} diff --git a/dist/.gitignore b/dist/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/dist/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/dist/.npmignore b/dist/.npmignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/doc/7/controllers/auth/check-rights/index.md b/doc/7/controllers/auth/check-rights/index.md index 78e62b4c4..4c7ae86f6 100644 --- a/doc/7/controllers/auth/check-rights/index.md +++ b/doc/7/controllers/auth/check-rights/index.md @@ -15,13 +15,13 @@ Checks if the provided API request can be executed by the current logged user. --- ```js -checkRights(requestPayload, [options]) +checkRights(requestPayload, [options]); ``` -| Property | Type | Description | -| ---------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| `requestPayload` |
object
| Contains a [RequestPayload](/core/2/api/payloads/request) -| `options` |
object
| Query options | +| Property | Type | Description | +| ---------------- | ----------------- | --------------------------------------------------------- | +| `requestPayload` |
object
| Contains a [RequestPayload](/core/2/api/payloads/request) | +| `options` |
object
| Query options | ## `requestPayload` @@ -31,13 +31,15 @@ The [RequestPayload](/core/2/api/payloads/request) must contains at least the fo - `action`: API action --- + ### options -| Property | Type
(default) | Description | -| --- | --- | --- | -| `queuable` |
boolean

(`true`) | If `true`, queues the request during downtime, until connected to Kuzzle again | -| [`timeout`](/sdk/7/core-classes/kuzzle/query#timeout) |
number

(`-1`) | Time (in ms) during which a request will still be waited to be resolved. Set it `-1` if you want to wait indefinitely | -| [`triggerEvents`](/sdk/7/core-classes/kuzzle/query#triggerEvents) |
boolean

(`false`)| If set to `true`, will trigger events even if using Embeded SDK. You should always ensure that your events/pipes does not create an infinite loop. | +| Property | Type
(default) | Description | +| ----------------------------------------------------------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `queuable` |
boolean

(`true`) | If `true`, queues the request during downtime, until connected to Kuzzle again | +| [`timeout`](/sdk/7/core-classes/kuzzle/query#timeout) |
number

(`-1`) | Time (in ms) during which a request will still be waited to be resolved. Set it `-1` if you want to wait indefinitely | +| [`triggerEvents`](/sdk/7/core-classes/kuzzle/query#triggerEvents) |
boolean

(`false`) | If set to `true`, will trigger events even if using Embeded SDK. You should always ensure that your events/pipes does not create an infinite loop. | + ## Resolves A boolean telling whether the provided request would have been allowed or not. diff --git a/doc/7/controllers/auth/check-rights/snippets/check-rights.test.yml b/doc/7/controllers/auth/check-rights/snippets/check-rights.test.yml deleted file mode 100644 index 5e250d91d..000000000 --- a/doc/7/controllers/auth/check-rights/snippets/check-rights.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: auth#checkRights -description: Checks if an API action can be executed by the current user -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: true \ No newline at end of file diff --git a/doc/7/controllers/auth/check-token/snippets/check-token.test.yml b/doc/7/controllers/auth/check-token/snippets/check-token.test.yml deleted file mode 100644 index 5211c7b29..000000000 --- a/doc/7/controllers/auth/check-token/snippets/check-token.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: auth#checkToken -description: Checks a JWT token's validity. -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Token is valid - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/create-api-key/snippets/create-api-key.test.yml b/doc/7/controllers/auth/create-api-key/snippets/create-api-key.test.yml deleted file mode 100644 index a18c6da50..000000000 --- a/doc/7/controllers/auth/create-api-key/snippets/create-api-key.test.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: auth#createApiKey -description: Creates a new API key for the currently logged user. -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "john.doe", - "password": "password" - } - } - }' "kuzzle:7512/users/john.doe/_create?refresh=wait_for" - after: - curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - "description: 'Sigfox API key'" - - "userId: 'john.doe'" - - API key successfully created diff --git a/doc/7/controllers/auth/create-my-credentials/snippets/create-my-credentials.test.yml b/doc/7/controllers/auth/create-my-credentials/snippets/create-my-credentials.test.yml deleted file mode 100644 index 1ad92feb8..000000000 --- a/doc/7/controllers/auth/create-my-credentials/snippets/create-my-credentials.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#createMyCredentials -description: Creates the current user's credentials for the specified strategy -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: catch -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/credentials-exist/snippets/credentials-exist.test.yml b/doc/7/controllers/auth/credentials-exist/snippets/credentials-exist.test.yml deleted file mode 100644 index 4a327f498..000000000 --- a/doc/7/controllers/auth/credentials-exist/snippets/credentials-exist.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#credentialsExist -description: Checks a JWT token's validity. -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Credentials exist - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/delete-api-key/snippets/delete-api-key.test.yml b/doc/7/controllers/auth/delete-api-key/snippets/delete-api-key.test.yml deleted file mode 100644 index 5506dfdb4..000000000 --- a/doc/7/controllers/auth/delete-api-key/snippets/delete-api-key.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: auth#deleteApiKey -description: Deletes an API key for the currently logged user -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jane.doe", - "password": "password" - } - } - }' "kuzzle:7512/users/jane.doe/_create?refresh=wait_for" - after: - curl -XDELETE kuzzle:7512/users/jane.doe -template: default -expected: - - API key successfully deleted diff --git a/doc/7/controllers/auth/delete-my-credentials/snippets/delete-my-credentials.test.yml b/doc/7/controllers/auth/delete-my-credentials/snippets/delete-my-credentials.test.yml deleted file mode 100644 index 082e9cde7..000000000 --- a/doc/7/controllers/auth/delete-my-credentials/snippets/delete-my-credentials.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#deleteMyCredentials -description: Deletes the current user's credentials for the specified strategy -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Credentials successfully deleted - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/get-current-user/snippets/get-current-user.test.yml b/doc/7/controllers/auth/get-current-user/snippets/get-current-user.test.yml deleted file mode 100644 index 1d7d8ffd0..000000000 --- a/doc/7/controllers/auth/get-current-user/snippets/get-current-user.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#getCurrentUser -description: Returns the profile object for the user linked to the `json web token` -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/get-my-credentials/snippets/get-my-credentials.test.yml b/doc/7/controllers/auth/get-my-credentials/snippets/get-my-credentials.test.yml deleted file mode 100644 index f5183886a..000000000 --- a/doc/7/controllers/auth/get-my-credentials/snippets/get-my-credentials.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#getMyCredentials -description: Returns the current user's credential information for the specified ``. -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/get-my-rights/snippets/get-my-rights.test.yml b/doc/7/controllers/auth/get-my-rights/snippets/get-my-rights.test.yml deleted file mode 100644 index d5dc36148..000000000 --- a/doc/7/controllers/auth/get-my-rights/snippets/get-my-rights.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#getMyRights -description: Returns the rights for the user linked to the json web token -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/get-strategies/snippets/get-strategies.test.yml b/doc/7/controllers/auth/get-strategies/snippets/get-strategies.test.yml deleted file mode 100644 index a8e5ff520..000000000 --- a/doc/7/controllers/auth/get-strategies/snippets/get-strategies.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#getStrategies -description: Get all authentication strategies registered in Kuzzle -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/login/snippets/login.test.yml b/doc/7/controllers/auth/login/snippets/login.test.yml deleted file mode 100644 index 971dc2481..000000000 --- a/doc/7/controllers/auth/login/snippets/login.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: auth#login -description: Authenticate a user -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/logout/snippets/logout.test.yml b/doc/7/controllers/auth/logout/snippets/logout.test.yml deleted file mode 100644 index f87ff1fb1..000000000 --- a/doc/7/controllers/auth/logout/snippets/logout.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#logout -description: Revokes the user's token & unsubscribe them from registered rooms. -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/refresh-token/snippets/refreshToken.test.yml b/doc/7/controllers/auth/refresh-token/snippets/refreshToken.test.yml deleted file mode 100644 index 4e746a804..000000000 --- a/doc/7/controllers/auth/refresh-token/snippets/refreshToken.test.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: auth#refreshtoken -description: Refresh a user's token -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: - - ^.*\..*$ - - ^{ _id: 'foo' - - ^\s*jwt: '.*\..*' - - ^\s*expiresAt: \d+ - - ^\s*ttl: \d+ } -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/search-api-keys/snippets/search-api-keys-koncorde.test.yml b/doc/7/controllers/auth/search-api-keys/snippets/search-api-keys-koncorde.test.yml deleted file mode 100644 index 975127877..000000000 --- a/doc/7/controllers/auth/search-api-keys/snippets/search-api-keys-koncorde.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: auth#searchApiKeys-koncorde -description: Searches API keys for the currently logged user. -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jared.doe", - "password": "password" - } - } - }' "kuzzle:7512/users/jared.doe/_create?refresh=wait_for" - after: - curl -XDELETE kuzzle:7512/users/jared.doe -template: default -expected: - - Found 2 API keys. diff --git a/doc/7/controllers/auth/update-my-credentials/snippets/update-my-credentials.test.yml b/doc/7/controllers/auth/update-my-credentials/snippets/update-my-credentials.test.yml deleted file mode 100644 index b1d6a27ef..000000000 --- a/doc/7/controllers/auth/update-my-credentials/snippets/update-my-credentials.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#updateMyCredentials -description: Update the current user's credentials for the specified ``. -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/update-self/snippets/update-self.test.yml b/doc/7/controllers/auth/update-self/snippets/update-self.test.yml deleted file mode 100644 index ebacfc008..000000000 --- a/doc/7/controllers/auth/update-self/snippets/update-self.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#updateSelf -description: Updates the current user object in Kuzzle -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/auth/validate-my-credentials/snippets/validate-my-credentials.test.yml b/doc/7/controllers/auth/validate-my-credentials/snippets/validate-my-credentials.test.yml deleted file mode 100644 index a20cee546..000000000 --- a/doc/7/controllers/auth/validate-my-credentials/snippets/validate-my-credentials.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: auth#validateMyCredentials -description: Validate the current user's credentials for the specified ``. -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Credentials are valid - -sdk: js -version: 7 diff --git a/doc/7/controllers/bulk/delete-by-query/snippets/delete-by-query.test.yml b/doc/7/controllers/bulk/delete-by-query/snippets/delete-by-query.test.yml deleted file mode 100644 index 3fa5a70f4..000000000 --- a/doc/7/controllers/bulk/delete-by-query/snippets/delete-by-query.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: bulk#deleteByQuery -description: Delete documents matching query -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 4}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 7}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - - curl -XPOST kuzzle:7512/nyc-open-data/yellow-taxi/_refresh - -template: default -expected: Successfully deleted 5 documents diff --git a/doc/7/controllers/bulk/import/snippets/import.test.yml b/doc/7/controllers/bulk/import/snippets/import.test.yml deleted file mode 100644 index 287896d39..000000000 --- a/doc/7/controllers/bulk/import/snippets/import.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: bulk#import -description: Bulk imports three documents into Kuzzle -hooks: - before: | - curl -X DELETE kuzzle:7512/nyc-open-data - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully imported 3 documents diff --git a/doc/7/controllers/bulk/mWrite/snippets/mWrite.test.yml b/doc/7/controllers/bulk/mWrite/snippets/mWrite.test.yml deleted file mode 100644 index 87400739a..000000000 --- a/doc/7/controllers/bulk/mWrite/snippets/mWrite.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: bulk#mWrite -description: Creates or replaces multiple documents directly into the storage engine. -hooks: - before: | - curl -X DELETE kuzzle:7512/nyc-open-data - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi -template: default -expected: Document creator is dahi diff --git a/doc/7/controllers/bulk/update-by-query/snippets/update-by-query.test.yml b/doc/7/controllers/bulk/update-by-query/snippets/update-by-query.test.yml deleted file mode 100644 index 0bc07f2ce..000000000 --- a/doc/7/controllers/bulk/update-by-query/snippets/update-by-query.test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: bulk#updateByQuery -description: Update documents matching query -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - for i in 1 2 ; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 4}' kuzzle:7512/nyc-open-data/yellow-taxi/document_$i/_create - done - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 7}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - curl -XPOST kuzzle:7512/nyc-open-data/yellow-taxi/_refresh - after: - - curl -XDELETE kuzzle:7512/nyc-open-data -template: default -expected: 2 \ No newline at end of file diff --git a/doc/7/controllers/bulk/write/snippets/write.test.yml b/doc/7/controllers/bulk/write/snippets/write.test.yml deleted file mode 100644 index 7a2b4a9ff..000000000 --- a/doc/7/controllers/bulk/write/snippets/write.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: bulk#write -description: Creates or replaces a document directly into the storage engine. -hooks: - before: | - curl -X DELETE kuzzle:7512/nyc-open-data - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi -template: default -expected: Document creator is liia diff --git a/doc/7/controllers/collection/create/snippets/create.test.yml b/doc/7/controllers/collection/create/snippets/create.test.yml deleted file mode 100644 index 64b363db4..000000000 --- a/doc/7/controllers/collection/create/snippets/create.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#create -description: Create a new collection -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/delete-specifications/snippets/delete-specifications.test.yml b/doc/7/controllers/collection/delete-specifications/snippets/delete-specifications.test.yml deleted file mode 100644 index eedf0893c..000000000 --- a/doc/7/controllers/collection/delete-specifications/snippets/delete-specifications.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#deleteSpecifications -description: Delete validation specifications for a collection -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/delete/snippets/delete.test.yml b/doc/7/controllers/collection/delete/snippets/delete.test.yml deleted file mode 100644 index 69c1d5c18..000000000 --- a/doc/7/controllers/collection/delete/snippets/delete.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: collection#delete -description: Delete a collection -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success diff --git a/doc/7/controllers/collection/exists/snippets/exists.test.yml b/doc/7/controllers/collection/exists/snippets/exists.test.yml deleted file mode 100644 index 0314005be..000000000 --- a/doc/7/controllers/collection/exists/snippets/exists.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#exists -description: Check if collection exists -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/green-taxi - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/get-mapping/snippets/get-mapping.test.yml b/doc/7/controllers/collection/get-mapping/snippets/get-mapping.test.yml deleted file mode 100644 index 86f9cb039..000000000 --- a/doc/7/controllers/collection/get-mapping/snippets/get-mapping.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: collection#getMapping -description: Return collection mapping -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: "true" diff --git a/doc/7/controllers/collection/get-specifications/snippets/get-specifications.test.yml b/doc/7/controllers/collection/get-specifications/snippets/get-specifications.test.yml deleted file mode 100644 index 85f0d70d8..000000000 --- a/doc/7/controllers/collection/get-specifications/snippets/get-specifications.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: collection#getSpecifications -description: Returns the validation specifications -hooks: - before: | - curl -X DELETE kuzzle:7512/nyc-open-data - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - curl -X PUT -H "Content-Type: application/json" -d '{ "strict": false, "fields": {"license": {"type": "string"} } }' kuzzle:7512/nyc-open-data/yellow-taxi/_specifications - after: -template: default -expected: 'fields' diff --git a/doc/7/controllers/collection/list/snippets/list.test.yml b/doc/7/controllers/collection/list/snippets/list.test.yml deleted file mode 100644 index 25d434d83..000000000 --- a/doc/7/controllers/collection/list/snippets/list.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#list -description: Returns the collection list of an index -hooks: - before: curl -X POST kuzzle:7512/mtp-open-data/_create && curl -X PUT kuzzle:7512/mtp-open-data/pink-taxi && curl -X PUT kuzzle:7512/mtp-open-data/dark-taxi - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/refresh/snippets/refresh.test.yml b/doc/7/controllers/collection/refresh/snippets/refresh.test.yml deleted file mode 100644 index 5740abc75..000000000 --- a/doc/7/controllers/collection/refresh/snippets/refresh.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: index#refresh -description: Forces an Elasticsearch search index update -hooks: - before: | - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Refresh successful diff --git a/doc/7/controllers/collection/search-specifications/snippets/search-specifications.test.yml b/doc/7/controllers/collection/search-specifications/snippets/search-specifications.test.yml deleted file mode 100644 index cfa6b06cc..000000000 --- a/doc/7/controllers/collection/search-specifications/snippets/search-specifications.test.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: collection#searchSpecifications -description: Search for specifications -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - curl -X PUT -H "Content-Type: application/json" -d '{ - "nyc-open-data": { - "yellow-taxi": { - "strict": false, - "fields": { - "license": { - "type": "string" - } - } - } - } - }' kuzzle:7512/_specifications?refresh=wait_for -template: default -expected: 'fetched: 1' -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/truncate/snippets/truncate.test.yml b/doc/7/controllers/collection/truncate/snippets/truncate.test.yml deleted file mode 100644 index 0a246a470..000000000 --- a/doc/7/controllers/collection/truncate/snippets/truncate.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#truncate -description: Remove all documents from collection -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/update-mapping/snippets/update-mapping.test.yml b/doc/7/controllers/collection/update-mapping/snippets/update-mapping.test.yml deleted file mode 100644 index 927a13589..000000000 --- a/doc/7/controllers/collection/update-mapping/snippets/update-mapping.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#updateMapping -description: Update the collection mapping -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/update-specifications/snippets/update-specifications.test.yml b/doc/7/controllers/collection/update-specifications/snippets/update-specifications.test.yml deleted file mode 100644 index 237e927df..000000000 --- a/doc/7/controllers/collection/update-specifications/snippets/update-specifications.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: collection#updateSpecifications -description: Update the validation specifications -hooks: - before: | - curl -X DELETE kuzzle:7512/nyc-open-data - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/green-taxi - curl -X DELETE kuzzle:7512/nyc-open-data/yellow-taxi/_specifications - after: curl -X DELETE kuzzle:7512/nyc-open-data/yellow-taxi/_specifications -template: default -expected: Success \ No newline at end of file diff --git a/doc/7/controllers/collection/update/snippets/update.test.yml b/doc/7/controllers/collection/update/snippets/update.test.yml deleted file mode 100644 index db5aed5bd..000000000 --- a/doc/7/controllers/collection/update/snippets/update.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#update -description: Update the collection mapping -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/collection/validate-specifications/snippets/validate-specifications.test.yml b/doc/7/controllers/collection/validate-specifications/snippets/validate-specifications.test.yml deleted file mode 100644 index a1ab0d388..000000000 --- a/doc/7/controllers/collection/validate-specifications/snippets/validate-specifications.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: collection#validateSpecifications -description: Validate specifications format -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create && curl -X PUT kuzzle:7512/nyc-open-data/green-taxi - after: -template: default -expected: Some errors with provided specifications. - -sdk: js -version: 7 diff --git a/doc/7/controllers/document/count/snippets/count.test.yml b/doc/7/controllers/document/count/snippets/count.test.yml deleted file mode 100644 index c9ad44fae..000000000 --- a/doc/7/controllers/document/count/snippets/count.test.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: document#count -description: Counts documents matching the given query -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"license": "valid"}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - curl -XPOST kuzzle:7512/nyc-open-data/yellow-taxi/_refresh - after: -template: default -expected: Found 5 documents matching license:valid diff --git a/doc/7/controllers/document/create-or-replace/snippets/create-or-replace.test.yml b/doc/7/controllers/document/create-or-replace/snippets/create-or-replace.test.yml deleted file mode 100644 index 4c2f3ce0f..000000000 --- a/doc/7/controllers/document/create-or-replace/snippets/create-or-replace.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#createOrReplace -description: Creates or replaces a document -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: "_id: 'some-id'" \ No newline at end of file diff --git a/doc/7/controllers/document/create/snippets/create.test.yml b/doc/7/controllers/document/create/snippets/create.test.yml deleted file mode 100644 index 3bc468701..000000000 --- a/doc/7/controllers/document/create/snippets/create.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#create -description: Creates a new document -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success diff --git a/doc/7/controllers/document/delete-by-query/snippets/delete-by-query-es.test.yml b/doc/7/controllers/document/delete-by-query/snippets/delete-by-query-es.test.yml deleted file mode 100644 index 12ec50906..000000000 --- a/doc/7/controllers/document/delete-by-query/snippets/delete-by-query-es.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: document#deleteByQuery-es -description: Delete documents matching query -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 4}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 7}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - - curl -XPOST kuzzle:7512/nyc-open-data/yellow-taxi/_refresh - after: -template: default -expected: Successfully deleted 5 documents diff --git a/doc/7/controllers/document/delete-by-query/snippets/delete-by-query-koncorde.test.yml b/doc/7/controllers/document/delete-by-query/snippets/delete-by-query-koncorde.test.yml deleted file mode 100644 index 0531a9e76..000000000 --- a/doc/7/controllers/document/delete-by-query/snippets/delete-by-query-koncorde.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: document#deleteByQuery-koncorde -description: Delete documents matching query -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 4}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 7}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - - curl -XPOST kuzzle:7512/nyc-open-data/yellow-taxi/_refresh - after: -template: default -expected: Successfully deleted 5 documents diff --git a/doc/7/controllers/document/delete-fields/snippets/deleteFields.test.yml b/doc/7/controllers/document/delete-fields/snippets/deleteFields.test.yml deleted file mode 100644 index 8c1e11ae2..000000000 --- a/doc/7/controllers/document/delete-fields/snippets/deleteFields.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: document#delete -description: Deletes a field from a document in kuzzle -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - curl --fail -H "Content-type: application/json" -XPUT -d '{"foo": "bar", "bar": "baz"}' kuzzle:7512/nyc-open-data/yellow-taxi/some-id - after: -template: default -expected: {"foo": "bar"} diff --git a/doc/7/controllers/document/delete/snippets/delete.test.yml b/doc/7/controllers/document/delete/snippets/delete.test.yml deleted file mode 100644 index 0ce344bb0..000000000 --- a/doc/7/controllers/document/delete/snippets/delete.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: document#delete -description: Deletes a document from kuzzle -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - curl --fail -H "Content-type: application/json" -XPUT -d '{}' kuzzle:7512/nyc-open-data/yellow-taxi/some-id - after: -template: default -expected: Success diff --git a/doc/7/controllers/document/exists/snippets/exists.test.yml b/doc/7/controllers/document/exists/snippets/exists.test.yml deleted file mode 100644 index 795c97131..000000000 --- a/doc/7/controllers/document/exists/snippets/exists.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: document#exists -description: Check if a document exists in kuzzle -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - curl --fail -H "Content-type: application/json" -XPUT -d '{}' kuzzle:7512/nyc-open-data/yellow-taxi/some-id - after: -template: default -expected: true diff --git a/doc/7/controllers/document/get/snippets/get.test.yml b/doc/7/controllers/document/get/snippets/get.test.yml deleted file mode 100644 index 92fa3c51d..000000000 --- a/doc/7/controllers/document/get/snippets/get.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#get -description: Get a document from kuzzle -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: "_id: 'some-id'" diff --git a/doc/7/controllers/document/m-create-or-replace/snippets/m-create-or-replace.test.yml b/doc/7/controllers/document/m-create-or-replace/snippets/m-create-or-replace.test.yml deleted file mode 100644 index 6ab735345..000000000 --- a/doc/7/controllers/document/m-create-or-replace/snippets/m-create-or-replace.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#mCreateOrReplace -description: Create or replace documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully createOrReplace 2 documents diff --git a/doc/7/controllers/document/m-create/snippets/m-create.test.yml b/doc/7/controllers/document/m-create/snippets/m-create.test.yml deleted file mode 100644 index 596079a9d..000000000 --- a/doc/7/controllers/document/m-create/snippets/m-create.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#mCreate -description: Create multiple documents in kuzzle -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully created 2 documents \ No newline at end of file diff --git a/doc/7/controllers/document/m-delete/snippets/m-delete.test.yml b/doc/7/controllers/document/m-delete/snippets/m-delete.test.yml deleted file mode 100644 index 5f079323a..000000000 --- a/doc/7/controllers/document/m-delete/snippets/m-delete.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#mDelete -description: Delete documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully deleted 2 documents diff --git a/doc/7/controllers/document/m-get/snippets/m-get.test.yml b/doc/7/controllers/document/m-get/snippets/m-get.test.yml deleted file mode 100644 index da7cf5431..000000000 --- a/doc/7/controllers/document/m-get/snippets/m-get.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#mGet -description: Get multiple documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully get 2 documents \ No newline at end of file diff --git a/doc/7/controllers/document/m-replace/snippets/m-replace.test.yml b/doc/7/controllers/document/m-replace/snippets/m-replace.test.yml deleted file mode 100644 index 53bb7f341..000000000 --- a/doc/7/controllers/document/m-replace/snippets/m-replace.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#mReplace -description: Replace documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success \ No newline at end of file diff --git a/doc/7/controllers/document/m-update/snippets/m-update.test.yml b/doc/7/controllers/document/m-update/snippets/m-update.test.yml deleted file mode 100644 index c0a0a7543..000000000 --- a/doc/7/controllers/document/m-update/snippets/m-update.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#mUpdate -description: Update documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success diff --git a/doc/7/controllers/document/m-upsert/snippets/m-upsert.test.yml b/doc/7/controllers/document/m-upsert/snippets/m-upsert.test.yml deleted file mode 100644 index df7b29e7e..000000000 --- a/doc/7/controllers/document/m-upsert/snippets/m-upsert.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#mUpsert -description: Update documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success diff --git a/doc/7/controllers/document/replace/snippets/replace.test.yml b/doc/7/controllers/document/replace/snippets/replace.test.yml deleted file mode 100644 index 03bc0673d..000000000 --- a/doc/7/controllers/document/replace/snippets/replace.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#replace -description: Replace a document -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success diff --git a/doc/7/controllers/document/search/snippets/search-es.test.yml b/doc/7/controllers/document/search/snippets/search-es.test.yml deleted file mode 100644 index 0b64891c4..000000000 --- a/doc/7/controllers/document/search/snippets/search-es.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#search-with-es -description: Search for documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully retrieved 5 documents diff --git a/doc/7/controllers/document/search/snippets/search-koncorde.test.yml b/doc/7/controllers/document/search/snippets/search-koncorde.test.yml deleted file mode 100644 index 6b7db6962..000000000 --- a/doc/7/controllers/document/search/snippets/search-koncorde.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#search-with-koncorde -description: Search for documents -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully retrieved 5 documents diff --git a/doc/7/controllers/document/update-by-query/snippets/update-by-query-es.test.yml b/doc/7/controllers/document/update-by-query/snippets/update-by-query-es.test.yml deleted file mode 100644 index 2d1a69ff7..000000000 --- a/doc/7/controllers/document/update-by-query/snippets/update-by-query-es.test.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: document#updateByQuery-es -description: Update documents matching query -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - for i in 1 2 ; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 4}' kuzzle:7512/nyc-open-data/yellow-taxi/document_$i/_create - done - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 7}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - curl -XPOST kuzzle:7512/nyc-open-data/yellow-taxi/_refresh - after: - - curl -XDELETE kuzzle:7512/nyc-open-data -template: print-result-successes -expected: - - "{ _id: 'document_1', _version: 2, status: 200 }" - - "{ _id: 'document_2', _version: 2, status: 200 }" - \ No newline at end of file diff --git a/doc/7/controllers/document/update-by-query/snippets/update-by-query-koncorde.test.yml b/doc/7/controllers/document/update-by-query/snippets/update-by-query-koncorde.test.yml deleted file mode 100644 index bd4fe1ca4..000000000 --- a/doc/7/controllers/document/update-by-query/snippets/update-by-query-koncorde.test.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: document#updateByQuery-koncorde -description: Update documents matching query -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - for i in 1 2 ; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 4}' kuzzle:7512/nyc-open-data/yellow-taxi/document_$i/_create - done - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{"capacity": 7}' kuzzle:7512/nyc-open-data/yellow-taxi/_create - done - curl -XPOST kuzzle:7512/nyc-open-data/yellow-taxi/_refresh - after: -template: print-result-successes -expected: - - "{ _id: 'document_1', _version: 2, status: 200 }" - - "{ _id: 'document_2', _version: 2, status: 200 }" \ No newline at end of file diff --git a/doc/7/controllers/document/update/snippets/update.test.yml b/doc/7/controllers/document/update/snippets/update.test.yml deleted file mode 100644 index 0a02276e5..000000000 --- a/doc/7/controllers/document/update/snippets/update.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#update -description: Update a document -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: "id: 'some-id'" diff --git a/doc/7/controllers/document/upsert/snippets/upsert.test.yml b/doc/7/controllers/document/upsert/snippets/upsert.test.yml deleted file mode 100644 index 535c3a9a1..000000000 --- a/doc/7/controllers/document/upsert/snippets/upsert.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#upsert -description: Applies a partial update to an existing document. -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: "_id: 'some-id'" \ No newline at end of file diff --git a/doc/7/controllers/document/validate/snippets/validate.test.yml b/doc/7/controllers/document/validate/snippets/validate.test.yml deleted file mode 100644 index 90b956d68..000000000 --- a/doc/7/controllers/document/validate/snippets/validate.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: document#validate -description: Validate a document -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Success \ No newline at end of file diff --git a/doc/7/controllers/index.md b/doc/7/controllers/index.md index 60fde6aba..b8e205a11 100644 --- a/doc/7/controllers/index.md +++ b/doc/7/controllers/index.md @@ -1,7 +1,7 @@ --- code: false type: branch -order: 400 +order: 300 title: Controllers description: Javascript SDK v7.x controllers --- diff --git a/doc/7/controllers/index/create/snippets/create.test.yml b/doc/7/controllers/index/create/snippets/create.test.yml deleted file mode 100644 index 9d788fc11..000000000 --- a/doc/7/controllers/index/create/snippets/create.test.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: index#create -description: Creates a new index -hooks: - before: curl -X DELETE kuzzle:7512/nyc-open-data - after: -template: default -expected: "Index created" diff --git a/doc/7/controllers/index/delete/snippets/delete.test.yml b/doc/7/controllers/index/delete/snippets/delete.test.yml deleted file mode 100644 index 2ac5c0f1c..000000000 --- a/doc/7/controllers/index/delete/snippets/delete.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: index#delete -description: Delete an index -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create - after: -template: default -expected: Index deleted - -sdk: js -version: 7 diff --git a/doc/7/controllers/index/exists/snippets/exists.test.yml b/doc/7/controllers/index/exists/snippets/exists.test.yml deleted file mode 100644 index 39f3ee63e..000000000 --- a/doc/7/controllers/index/exists/snippets/exists.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: index#exists -description: Tests if an index exists -hooks: - before: | - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Index exists diff --git a/doc/7/controllers/index/list/snippets/list.test.yml b/doc/7/controllers/index/list/snippets/list.test.yml deleted file mode 100644 index 78d4b08a7..000000000 --- a/doc/7/controllers/index/list/snippets/list.test.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: index#list -description: Lists indexes handled by kuzzle -hooks: - before: | - curl -X POST kuzzle:7512/admin/_resetDatabase - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X POST kuzzle:7512/mtp-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - curl -XPUT kuzzle:7512/mtp-open-data/yellow-taxi - after: -template: default -expected: Kuzzle contains 2 indexes diff --git a/doc/7/controllers/index/m-delete/snippets/mDelete.test.yml b/doc/7/controllers/index/m-delete/snippets/mDelete.test.yml deleted file mode 100644 index 36dcbeecf..000000000 --- a/doc/7/controllers/index/m-delete/snippets/mDelete.test.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -name: index#mDelete -description: Delete multiple indexes -hooks: - before: | - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X POST kuzzle:7512/mtp-open-data/_create - after: -template: default -expected: Successfully deleted 2 indexes - -sdk: js -version: 7 diff --git a/doc/7/controllers/index/stats/snippets/stats.test.yml b/doc/7/controllers/index/stats/snippets/stats.test.yml deleted file mode 100644 index abf725fa9..000000000 --- a/doc/7/controllers/index/stats/snippets/stats.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: index#stats -description: Gets detailed storage statistics -hooks: - before: | - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: curl -X DELETE kuzzle:7512/nyc-open-data -template: catch -expected: ["documentCount":0] diff --git a/doc/7/controllers/ms/append/snippets/append.test.yml b/doc/7/controllers/ms/append/snippets/append.test.yml deleted file mode 100644 index f91d970fc..000000000 --- a/doc/7/controllers/ms/append/snippets/append.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#append -description: Appends a value to a key. If the key does not exist, it is created -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: Hello World -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/bitcount/snippets/bitcount.test.yml b/doc/7/controllers/ms/bitcount/snippets/bitcount.test.yml deleted file mode 100644 index 6ef685cde..000000000 --- a/doc/7/controllers/ms/bitcount/snippets/bitcount.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#bitcount -description: Counts the number of set bits (population counting) in a string -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - 26 - - 4 -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/bitop/snippets/bitop.test.yml b/doc/7/controllers/ms/bitop/snippets/bitop.test.yml deleted file mode 100644 index 0ebafc444..000000000 --- a/doc/7/controllers/ms/bitop/snippets/bitop.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#bitop -description: Performs a bitwise operation between multiple keys -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "`bc`ab" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/bitpos/snippets/bitpos.test.yml b/doc/7/controllers/ms/bitpos/snippets/bitpos.test.yml deleted file mode 100644 index 2c18a9273..000000000 --- a/doc/7/controllers/ms/bitpos/snippets/bitpos.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#bitpos -description: Returns the position of the first bit set to 1 or 0 in a string, or in a substring -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: 23 -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/dbsize/snippets/dbsize.test.yml b/doc/7/controllers/ms/dbsize/snippets/dbsize.test.yml deleted file mode 100644 index 9fa426728..000000000 --- a/doc/7/controllers/ms/dbsize/snippets/dbsize.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#dbsize -description: Returns the number of keys in the application database -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: Success -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/decr/snippets/decr.test.yml b/doc/7/controllers/ms/decr/snippets/decr.test.yml deleted file mode 100644 index c26ebd180..000000000 --- a/doc/7/controllers/ms/decr/snippets/decr.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#decr -description: Decrements the number stored at `key` by 1 -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: 42 -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/decrby/snippets/decrby.test.yml b/doc/7/controllers/ms/decrby/snippets/decrby.test.yml deleted file mode 100644 index ec212db25..000000000 --- a/doc/7/controllers/ms/decrby/snippets/decrby.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#decrby -description: Decrements the number stored at key by a provided integer value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: 42 -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/del/snippets/del.test.yml b/doc/7/controllers/ms/del/snippets/del.test.yml deleted file mode 100644 index ea769247c..000000000 --- a/doc/7/controllers/ms/del/snippets/del.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#del -description: Deletes a list of keys -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: 0 -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/exists/snippets/exists.test.yml b/doc/7/controllers/ms/exists/snippets/exists.test.yml deleted file mode 100644 index 4b3bf9793..000000000 --- a/doc/7/controllers/ms/exists/snippets/exists.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#exists -description: Checks if the specified keys exist in the database -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^0$ - - ^1$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/expire/snippets/expire.test.yml b/doc/7/controllers/ms/expire/snippets/expire.test.yml deleted file mode 100644 index d37047170..000000000 --- a/doc/7/controllers/ms/expire/snippets/expire.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#expire -description: Sets a timeout (in seconds) on a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - -1 - - ^[1-9]+ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/expireat/snippets/expireat.test.yml b/doc/7/controllers/ms/expireat/snippets/expireat.test.yml deleted file mode 100644 index 042b8875f..000000000 --- a/doc/7/controllers/ms/expireat/snippets/expireat.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#expireat -description: Sets an expiration timestamp on a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^1$ - - ^0$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/flushdb/snippets/flushdb.test.yml b/doc/7/controllers/ms/flushdb/snippets/flushdb.test.yml deleted file mode 100644 index e0cdd82d7..000000000 --- a/doc/7/controllers/ms/flushdb/snippets/flushdb.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#flushdb -description: Empties the database dedicated to client applications -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: Success -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/geoadd/snippets/geoadd.test.yml b/doc/7/controllers/ms/geoadd/snippets/geoadd.test.yml deleted file mode 100644 index e9d5cffd4..000000000 --- a/doc/7/controllers/ms/geoadd/snippets/geoadd.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#geoadd -description: Adds geospatial points to the specified key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: 2 -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/geodist/snippets/geodist.test.yml b/doc/7/controllers/ms/geodist/snippets/geodist.test.yml deleted file mode 100644 index 4399eec57..000000000 --- a/doc/7/controllers/ms/geodist/snippets/geodist.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#geodist -description: Returns the distance between two geospatial members of a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - 1367.8521 - - 4487.7038 -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/geohash/snippets/geohash.test.yml b/doc/7/controllers/ms/geohash/snippets/geohash.test.yml deleted file mode 100644 index 8e1a21a46..000000000 --- a/doc/7/controllers/ms/geohash/snippets/geohash.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#geohash -description: Converts a key's geopoints into geohashes -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "[ 'spfb0frz6x0', 'spfb09jv9n0' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/geopos/snippets/geopos.test.yml b/doc/7/controllers/ms/geopos/snippets/geopos.test.yml deleted file mode 100644 index 16c3f6247..000000000 --- a/doc/7/controllers/ms/geopos/snippets/geopos.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#geopos -description: Returns the positions of the provided key's members -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ 3.910904824733734, 43.607392252329916 ]," - - "\\[ 3.8971075415611267, 43.600221526170145 ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/georadius/snippets/georadius.test.yml b/doc/7/controllers/ms/georadius/snippets/georadius.test.yml deleted file mode 100644 index ca566f463..000000000 --- a/doc/7/controllers/ms/georadius/snippets/georadius.test.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: ms#georadius -description: Returns the members of a given key inside the provided geospatial radius -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ { name: 'other HQ' }, { name: 'HQ' } ]" - - "\\[" - - "{ name: 'other HQ', distance: 4.9271 }," - - "{ name: 'HQ', distance: 4.596 }" - - "\\]" - - "\\[" - - "{" - - "name: 'HQ'," - - " distance: 4.596," - - " coordinates: \\[ 3.910904824733734, 43.607392252329916 ]" - - "}," - - "{" - - "name: 'other HQ'," - - " distance: 4.9271," - - " coordinates: \\[ 3.8971075415611267, 43.600221526170145 ]" - - "}" - - "\\]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/georadiusbymember/snippets/georadiusbymember.test.yml b/doc/7/controllers/ms/georadiusbymember/snippets/georadiusbymember.test.yml deleted file mode 100644 index df41ec610..000000000 --- a/doc/7/controllers/ms/georadiusbymember/snippets/georadiusbymember.test.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: ms#georadiusbymember -description: Returns the members of a given key inside a radius centered around a key's member -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ { name: '(other |)HQ' }, { name: '(other |)HQ' } ]" - - "\\[" - - "{ name: 'other HQ', distance: 1367.8521 }," - - "{ name: 'HQ', distance: 0 }" - - "\\]" - - "\\[" - - "{" - - "name: 'HQ'," - - " distance: 0," - - " coordinates: \\[ 3.910904824733734, 43.607392252329916 ]" - - "}," - - "{" - - "name: 'other HQ'," - - " distance: 1367.8521," - - " coordinates: \\[ 3.8971075415611267, 43.600221526170145 ]" - - "}" - - "\\]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/get/snippets/get.test.yml b/doc/7/controllers/ms/get/snippets/get.test.yml deleted file mode 100644 index 5ed9267b3..000000000 --- a/doc/7/controllers/ms/get/snippets/get.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#get -description: Gets the value of a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: bar -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/getbit/snippets/getbit.test.yml b/doc/7/controllers/ms/getbit/snippets/getbit.test.yml deleted file mode 100644 index f8b2495de..000000000 --- a/doc/7/controllers/ms/getbit/snippets/getbit.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#getbit -description: Returns the bit value at the provided offset -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^0$ - - ^1$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/getrange/snippets/getrange.test.yml b/doc/7/controllers/ms/getrange/snippets/getrange.test.yml deleted file mode 100644 index e7ad84f28..000000000 --- a/doc/7/controllers/ms/getrange/snippets/getrange.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#getrange -description: Returns a substring of a key's value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^oba$ - - ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/getset/snippets/getset.test.yml b/doc/7/controllers/ms/getset/snippets/getset.test.yml deleted file mode 100644 index 4e177063b..000000000 --- a/doc/7/controllers/ms/getset/snippets/getset.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#getset -description: Sets a new value for a key, and returns its previously stored value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^bar$ - - ^qux$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hdel/snippets/hdel.test.yml b/doc/7/controllers/ms/hdel/snippets/hdel.test.yml deleted file mode 100644 index 148b4e98b..000000000 --- a/doc/7/controllers/ms/hdel/snippets/hdel.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#hdel -description: Removes fields from a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^2$ - - ^1$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hexists/snippets/hexists.test.yml b/doc/7/controllers/ms/hexists/snippets/hexists.test.yml deleted file mode 100644 index 9472f8dcd..000000000 --- a/doc/7/controllers/ms/hexists/snippets/hexists.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#hexists -description: Checks if a field exists in a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^false$ - - ^true$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hget/snippets/hget.test.yml b/doc/7/controllers/ms/hget/snippets/hget.test.yml deleted file mode 100644 index 836d6ed6b..000000000 --- a/doc/7/controllers/ms/hget/snippets/hget.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hget -description: Returns the field's value of a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hgetall/snippets/hgetall.test.yml b/doc/7/controllers/ms/hgetall/snippets/hgetall.test.yml deleted file mode 100644 index ddd4ede22..000000000 --- a/doc/7/controllers/ms/hgetall/snippets/hgetall.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hgetall -description: Returns all fields and values of a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "{ field1: 'val1', field2: 'val2' }" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hincrby/snippets/hincrby.test.yml b/doc/7/controllers/ms/hincrby/snippets/hincrby.test.yml deleted file mode 100644 index 67add34a4..000000000 --- a/doc/7/controllers/ms/hincrby/snippets/hincrby.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hincrby -description: Increments the number stored in a hash field by the provided integer value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^42$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hincrbyfloat/snippets/hincrbyfloat.test.yml b/doc/7/controllers/ms/hincrbyfloat/snippets/hincrbyfloat.test.yml deleted file mode 100644 index fb44aa110..000000000 --- a/doc/7/controllers/ms/hincrbyfloat/snippets/hincrbyfloat.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hincrbyfloat -description: Increments the number stored in a hash field by the provided float value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^3.14159$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hkeys/snippets/hkeys.test.yml b/doc/7/controllers/ms/hkeys/snippets/hkeys.test.yml deleted file mode 100644 index a58eb6373..000000000 --- a/doc/7/controllers/ms/hkeys/snippets/hkeys.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hkeys -description: Returns all field names contained in a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: \[ 'never', 'gonna', 'give you up' ] -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hlen/snippets/hlen.test.yml b/doc/7/controllers/ms/hlen/snippets/hlen.test.yml deleted file mode 100644 index 310269bd1..000000000 --- a/doc/7/controllers/ms/hlen/snippets/hlen.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hlen -description: Returns the number of fields contained in a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^3$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hmget/snippets/hmget.test.yml b/doc/7/controllers/ms/hmget/snippets/hmget.test.yml deleted file mode 100644 index 3a9fe86e3..000000000 --- a/doc/7/controllers/ms/hmget/snippets/hmget.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hmget -description: Returns the values of the specified hash's fields -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: \[ 'val3', 'val1' ] -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hmset/snippets/hmset.test.yml b/doc/7/controllers/ms/hmset/snippets/hmset.test.yml deleted file mode 100644 index db76dc3c6..000000000 --- a/doc/7/controllers/ms/hmset/snippets/hmset.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hmset -description: Sets multiple fields at once in a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: { key1: 'val1', key2: 'val2', key3: 'val3' } -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hscan/snippets/hscan.test.yml b/doc/7/controllers/ms/hscan/snippets/hscan.test.yml deleted file mode 100644 index 7a4a6350a..000000000 --- a/doc/7/controllers/ms/hscan/snippets/hscan.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: ms#hscan -description: Iterates incrementally over fields contained in a hash, using a cursor -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "{" - - "cursor: '0'," - - "values: \\[ 'key1', 'val1', 'key2', 'val2', 'key3', 'val3' ]" - - "}" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hset/snippets/hset.test.yml b/doc/7/controllers/ms/hset/snippets/hset.test.yml deleted file mode 100644 index 784c0298c..000000000 --- a/doc/7/controllers/ms/hset/snippets/hset.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hset -description: Sets a field and its value in a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "{ foo: 'bar' }" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hsetnx/snippets/hsetnx.test.yml b/doc/7/controllers/ms/hsetnx/snippets/hsetnx.test.yml deleted file mode 100644 index 098dfd243..000000000 --- a/doc/7/controllers/ms/hsetnx/snippets/hsetnx.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: ms#hsetnx -description: Sets a field and its value in a hash, only if the field does not already exist -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^true$ - - ^false$ - - ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hstrlen/snippets/hstrlen.test.yml b/doc/7/controllers/ms/hstrlen/snippets/hstrlen.test.yml deleted file mode 100644 index d6bf484e3..000000000 --- a/doc/7/controllers/ms/hstrlen/snippets/hstrlen.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hstrlen -description: Returns the string length of a field's value in a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^3$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/hvals/snippets/hvals.test.yml b/doc/7/controllers/ms/hvals/snippets/hvals.test.yml deleted file mode 100644 index 1d6bff50d..000000000 --- a/doc/7/controllers/ms/hvals/snippets/hvals.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#hvals -description: Returns all values contained in a hash -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'val1', 'val2', 'val3' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/incr/snippets/incr.test.yml b/doc/7/controllers/ms/incr/snippets/incr.test.yml deleted file mode 100644 index f9542ffea..000000000 --- a/doc/7/controllers/ms/incr/snippets/incr.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#incr -description: Increments the number stored at key by 1 -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^42$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/incrby/snippets/incrby.test.yml b/doc/7/controllers/ms/incrby/snippets/incrby.test.yml deleted file mode 100644 index 1a80c9c01..000000000 --- a/doc/7/controllers/ms/incrby/snippets/incrby.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#incrby -description: Increments the number stored at `key` by the provided integer value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^42$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/incrbyfloat/snippets/incrbyfloat.test.yml b/doc/7/controllers/ms/incrbyfloat/snippets/incrbyfloat.test.yml deleted file mode 100644 index 11fb06e70..000000000 --- a/doc/7/controllers/ms/incrbyfloat/snippets/incrbyfloat.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#incrbyfloat -description: Increments the number stored at key by the provided float value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^3.14159$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/keys/snippets/keys.test.yml b/doc/7/controllers/ms/keys/snippets/keys.test.yml deleted file mode 100644 index 7e810e066..000000000 --- a/doc/7/controllers/ms/keys/snippets/keys.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#keys -description: Returns all keys matching the provided pattern -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ '(Hello|foo)', '(Hello|foo)' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/lindex/snippets/lindex.test.yml b/doc/7/controllers/ms/lindex/snippets/lindex.test.yml deleted file mode 100644 index 620d61e93..000000000 --- a/doc/7/controllers/ms/lindex/snippets/lindex.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#lindex -description: Returns the element at the provided index in a list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/linsert/snippets/linsert.test.yml b/doc/7/controllers/ms/linsert/snippets/linsert.test.yml deleted file mode 100644 index d350423cb..000000000 --- a/doc/7/controllers/ms/linsert/snippets/linsert.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#linsert -description: Inserts a value in a list, either before or after a pivot value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'foo', 'qux', 'bar', 'baz' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/llen/snippets/llen.test.yml b/doc/7/controllers/ms/llen/snippets/llen.test.yml deleted file mode 100644 index c6c154190..000000000 --- a/doc/7/controllers/ms/llen/snippets/llen.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#llen -description: Returns the length of a list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^3$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/lpop/snippets/lpop.test.yml b/doc/7/controllers/ms/lpop/snippets/lpop.test.yml deleted file mode 100644 index 6176d2303..000000000 --- a/doc/7/controllers/ms/lpop/snippets/lpop.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#lpop -description: Removes and returns the first element of a list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^foo$ - - "\\[ 'bar', 'baz' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/lpush/snippets/lpush.test.yml b/doc/7/controllers/ms/lpush/snippets/lpush.test.yml deleted file mode 100644 index 250b73f75..000000000 --- a/doc/7/controllers/ms/lpush/snippets/lpush.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#lpush -description: Prepends the specified values to a list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^3$ - - "\\[ 'Hello', 'World', 'foobar' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/lpushx/snippets/lpushx.test.yml b/doc/7/controllers/ms/lpushx/snippets/lpushx.test.yml deleted file mode 100644 index d18a4feee..000000000 --- a/doc/7/controllers/ms/lpushx/snippets/lpushx.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: ms#lpushx -description: Prepends the specified value to an existing list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^0$ - - "\\[]" - - ^2$ - - "\\[ 'foo', 'bar' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/lrange/snippets/lrange.test.yml b/doc/7/controllers/ms/lrange/snippets/lrange.test.yml deleted file mode 100644 index 8be25064d..000000000 --- a/doc/7/controllers/ms/lrange/snippets/lrange.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#lrange -description: Returns the list elements between the start and stop positions -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ 'b', 'c', 'd' ]" - - "\\[ 'd', 'e' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/lrem/snippets/lrem.test.yml b/doc/7/controllers/ms/lrem/snippets/lrem.test.yml deleted file mode 100644 index d492c7f7b..000000000 --- a/doc/7/controllers/ms/lrem/snippets/lrem.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#lrem -description: Removes the first occurences of an element from a list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^2$ - - "\\[ 'bar', 'baz', 'foo' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/lset/snippets/lset.test.yml b/doc/7/controllers/ms/lset/snippets/lset.test.yml deleted file mode 100644 index b6f389998..000000000 --- a/doc/7/controllers/ms/lset/snippets/lset.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#lset -description: Sets the list element at index with the provided value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'foo', 'bar', 'baz' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/ltrim/snippets/ltrim.test.yml b/doc/7/controllers/ms/ltrim/snippets/ltrim.test.yml deleted file mode 100644 index 1dde32082..000000000 --- a/doc/7/controllers/ms/ltrim/snippets/ltrim.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#ltrim -description: Trims an existing list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'd', 'e' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/mexecute/snippets/mexecute.test.yml b/doc/7/controllers/ms/mexecute/snippets/mexecute.test.yml deleted file mode 100644 index 1ba5492fd..000000000 --- a/doc/7/controllers/ms/mexecute/snippets/mexecute.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: ms#mexecute -description: Executes multiple commands in a single step -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ \\[ null, 'OK' ], \\[ null, '1' ], \\[ null, 1 ] ]" diff --git a/doc/7/controllers/ms/mget/snippets/mget.test.yml b/doc/7/controllers/ms/mget/snippets/mget.test.yml deleted file mode 100644 index 516621e76..000000000 --- a/doc/7/controllers/ms/mget/snippets/mget.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#mget -description: Returns the values of the provided keys -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'world', 'bar' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/mset/snippets/mset.test.yml b/doc/7/controllers/ms/mset/snippets/mset.test.yml deleted file mode 100644 index 91d0cac2c..000000000 --- a/doc/7/controllers/ms/mset/snippets/mset.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#mset -description: Sets the provided keys to their respective values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^0$ - - ^3$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/msetnx/snippets/msetnx.test.yml b/doc/7/controllers/ms/msetnx/snippets/msetnx.test.yml deleted file mode 100644 index 72969f01c..000000000 --- a/doc/7/controllers/ms/msetnx/snippets/msetnx.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#msetnx -description: Sets the provided keys to their respective values, only if they do not exist -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^false$ - - ^true$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/object/snippets/object.test.yml b/doc/7/controllers/ms/object/snippets/object.test.yml deleted file mode 100644 index c3661b284..000000000 --- a/doc/7/controllers/ms/object/snippets/object.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#object -description: Inspects the low-level properties of a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^hashtable$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/persist/snippets/persist.test.yml b/doc/7/controllers/ms/persist/snippets/persist.test.yml deleted file mode 100644 index 9d12c1fb4..000000000 --- a/doc/7/controllers/ms/persist/snippets/persist.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#persist -description: Removes the expiration delay or timestamp from a key, making it persistent -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^[0-9]+$ - - "-1" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/pexpire/snippets/pexpire.test.yml b/doc/7/controllers/ms/pexpire/snippets/pexpire.test.yml deleted file mode 100644 index 80028bff1..000000000 --- a/doc/7/controllers/ms/pexpire/snippets/pexpire.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#pexpire -description: Sets a timeout (in milliseconds) on a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^-1$ - - ^[0-9]{1,2}$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/pexpireat/snippets/pexpireat.test.yml b/doc/7/controllers/ms/pexpireat/snippets/pexpireat.test.yml deleted file mode 100644 index 382ca4879..000000000 --- a/doc/7/controllers/ms/pexpireat/snippets/pexpireat.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#pexpireat -description: Sets an expiration timestamp on a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^1$ - - ^0$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/pfadd/snippets/pfadd.test.yml b/doc/7/controllers/ms/pfadd/snippets/pfadd.test.yml deleted file mode 100644 index 47d72f9de..000000000 --- a/doc/7/controllers/ms/pfadd/snippets/pfadd.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#pfadd -description: Adds elements to a HyperLogLog data structure -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^4$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/pfcount/snippets/pfcount.test.yml b/doc/7/controllers/ms/pfcount/snippets/pfcount.test.yml deleted file mode 100644 index 4f4fa8926..000000000 --- a/doc/7/controllers/ms/pfcount/snippets/pfcount.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#pfcount -description: Returns the probabilistic cardinality of a HyperLogLog data structure -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^5$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/pfmerge/snippets/pfmerge.test.yml b/doc/7/controllers/ms/pfmerge/snippets/pfmerge.test.yml deleted file mode 100644 index 1402c2c86..000000000 --- a/doc/7/controllers/ms/pfmerge/snippets/pfmerge.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#pfmerge -description: Merges multiple HyperLogLog data structures -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^5$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/ping/snippets/ping.test.yml b/doc/7/controllers/ms/ping/snippets/ping.test.yml deleted file mode 100644 index e5e1e2d7a..000000000 --- a/doc/7/controllers/ms/ping/snippets/ping.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#ping -description: Pings the memory storage database -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^PONG$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/psetex/snippets/psetex.test.yml b/doc/7/controllers/ms/psetex/snippets/psetex.test.yml deleted file mode 100644 index 4b237d7e3..000000000 --- a/doc/7/controllers/ms/psetex/snippets/psetex.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#psetex -description: Sets a key with the provided value, and an expiration delay expressed in milliseconds -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^[0-9]{1,2}$ - - ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/pttl/snippets/pttl.test.yml b/doc/7/controllers/ms/pttl/snippets/pttl.test.yml deleted file mode 100644 index a780758d2..000000000 --- a/doc/7/controllers/ms/pttl/snippets/pttl.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#pttl -description: Returns the remaining time to live of a key, in milliseconds -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^[0-9]+$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/randomkey/snippets/randomkey.test.yml b/doc/7/controllers/ms/randomkey/snippets/randomkey.test.yml deleted file mode 100644 index d26e2988d..000000000 --- a/doc/7/controllers/ms/randomkey/snippets/randomkey.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#randomkey -description: Returns a key identifier from the memory storage, at random -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^(foo|bar|baz)$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/rename/snippets/rename.test.yml b/doc/7/controllers/ms/rename/snippets/rename.test.yml deleted file mode 100644 index 939ccdb91..000000000 --- a/doc/7/controllers/ms/rename/snippets/rename.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#rename -description: Renames a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^World$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/renamenx/snippets/renamenx.test.yml b/doc/7/controllers/ms/renamenx/snippets/renamenx.test.yml deleted file mode 100644 index 453cfc325..000000000 --- a/doc/7/controllers/ms/renamenx/snippets/renamenx.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#renamenx -description: Renames a key, only if the new name is not already used -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^false$ - - ^true$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/rpop/snippets/rpop.test.yml b/doc/7/controllers/ms/rpop/snippets/rpop.test.yml deleted file mode 100644 index 06ea9fa48..000000000 --- a/doc/7/controllers/ms/rpop/snippets/rpop.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#rpop -description: Removes the last element of a list and returns it -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^baz$ - - "\\[ 'foo', 'bar' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/rpoplpush/snippets/rpoplpush.test.yml b/doc/7/controllers/ms/rpoplpush/snippets/rpoplpush.test.yml deleted file mode 100644 index cc49a9424..000000000 --- a/doc/7/controllers/ms/rpoplpush/snippets/rpoplpush.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#rpoplpush -description: Removes the last element of a list, and pushes it back at the start of another list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^never$ - - "\\[ 'never', 'gonna', 'give', 'you', 'up' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/rpush/snippets/rpush.test.yml b/doc/7/controllers/ms/rpush/snippets/rpush.test.yml deleted file mode 100644 index 3a91d2574..000000000 --- a/doc/7/controllers/ms/rpush/snippets/rpush.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#rpush -description: Appends values at the end of a list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'foo', 'bar', 'baz' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/rpushx/snippets/rpushx.test.yml b/doc/7/controllers/ms/rpushx/snippets/rpushx.test.yml deleted file mode 100644 index f1acb8892..000000000 --- a/doc/7/controllers/ms/rpushx/snippets/rpushx.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#rpushx -description: Appends a value at the end of an existing list -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^0$ - - ^4$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sadd/snippets/sadd.test.yml b/doc/7/controllers/ms/sadd/snippets/sadd.test.yml deleted file mode 100644 index ae7ed6e91..000000000 --- a/doc/7/controllers/ms/sadd/snippets/sadd.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: ms#sadd -description: Adds members to a set of unique values stored at key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^2$ - - ^1$ - - "\\[ '(foo|bar|baz)', '(foo|bar|baz)', '(foo|bar|baz)' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/scan/snippets/scan.test.yml b/doc/7/controllers/ms/scan/snippets/scan.test.yml deleted file mode 100644 index 1a7c641c2..000000000 --- a/doc/7/controllers/ms/scan/snippets/scan.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#scan -description: Iterates incrementally over the set of keys in the database using a cursor -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "{ cursor: '0', values: \\[ 'key[123]', 'key[123]', 'key[123]' ] }" - -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/scard/snippets/scard.test.yml b/doc/7/controllers/ms/scard/snippets/scard.test.yml deleted file mode 100644 index df639e612..000000000 --- a/doc/7/controllers/ms/scard/snippets/scard.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#scard -description: Returns the number of members stored in a set of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^3$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sdiff/snippets/sdiff.test.yml b/doc/7/controllers/ms/sdiff/snippets/sdiff.test.yml deleted file mode 100644 index 2f8d3d2c7..000000000 --- a/doc/7/controllers/ms/sdiff/snippets/sdiff.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#sdiff -description: Returns the difference between a reference set and a list of other sets -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'baz' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sdiffstore/snippets/sdiffstore.test.yml b/doc/7/controllers/ms/sdiffstore/snippets/sdiffstore.test.yml deleted file mode 100644 index 7dfd2def7..000000000 --- a/doc/7/controllers/ms/sdiffstore/snippets/sdiffstore.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#sdiffstore -description: Stores the difference between a reference set and a list of other sets in a new key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'baz' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/set/snippets/set.test.yml b/doc/7/controllers/ms/set/snippets/set.test.yml deleted file mode 100644 index c4fa7bb7b..000000000 --- a/doc/7/controllers/ms/set/snippets/set.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#set -description: Creates a key holding the provided value, or overwrites it if it already exists -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/setex/snippets/setex.test.yml b/doc/7/controllers/ms/setex/snippets/setex.test.yml deleted file mode 100644 index 2d838b7cd..000000000 --- a/doc/7/controllers/ms/setex/snippets/setex.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#setex -description: Sets a value and a time to live (in seconds) on a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^[0-9]{1,2}$ - - ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/setnx/snippets/setnx.test.yml b/doc/7/controllers/ms/setnx/snippets/setnx.test.yml deleted file mode 100644 index 775f67701..000000000 --- a/doc/7/controllers/ms/setnx/snippets/setnx.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: ms#setnx -description: Sets a value on a key, only if it does not already exist -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^true$ - - ^false$ - - ^bar$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sinter/snippets/sinter.test.yml b/doc/7/controllers/ms/sinter/snippets/sinter.test.yml deleted file mode 100644 index a9b41b687..000000000 --- a/doc/7/controllers/ms/sinter/snippets/sinter.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#sinter -description: Returns the intersection of the provided sets of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'foo' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sinterstore/snippets/sinterstore.test.yml b/doc/7/controllers/ms/sinterstore/snippets/sinterstore.test.yml deleted file mode 100644 index 1cb8080fa..000000000 --- a/doc/7/controllers/ms/sinterstore/snippets/sinterstore.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#sinterstore -description: Stores the intersection of the provided sets of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^1$ - - "\\[ 'foo' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sismember/snippets/sismember.test.yml b/doc/7/controllers/ms/sismember/snippets/sismember.test.yml deleted file mode 100644 index a7f98de0e..000000000 --- a/doc/7/controllers/ms/sismember/snippets/sismember.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#sismember -description: Checks if a value is a member of a set of unique values. -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^true$ - - ^false$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/smembers/snippets/smembers.test.yml b/doc/7/controllers/ms/smembers/snippets/smembers.test.yml deleted file mode 100644 index af8062666..000000000 --- a/doc/7/controllers/ms/smembers/snippets/smembers.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#smembers -description: Returns the members of a set of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ '(foo|bar|baz)', '(foo|bar|baz)', '(foo|bar|baz)' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/smove/snippets/smove.test.yml b/doc/7/controllers/ms/smove/snippets/smove.test.yml deleted file mode 100644 index 719791149..000000000 --- a/doc/7/controllers/ms/smove/snippets/smove.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#smove -description: Moves a member from a set of unique values to another -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ '(bar|baz)', '(bar|baz)' ]" - - "\\[ '(foo|qux)', '(foo|qux)' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sort/snippets/sort.test.yml b/doc/7/controllers/ms/sort/snippets/sort.test.yml deleted file mode 100644 index dafb44336..000000000 --- a/doc/7/controllers/ms/sort/snippets/sort.test.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: ms#sort -description: Sorts and returns elements contained in a list, a set or a sorted set -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[" - - "'7', '6', '5'," - - "'4', '3', '2'," - - "'1'" - - "]" - - "\\[ 'bar', 'baz', 'foo', 'qux' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/spop/snippets/spop.test.yml b/doc/7/controllers/ms/spop/snippets/spop.test.yml deleted file mode 100644 index 9029e0454..000000000 --- a/doc/7/controllers/ms/spop/snippets/spop.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: ms#spop -description: Removes one or more elements at random from a set of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "^\\[ '[a-f]' ]" - - "^\\[ '[a-f]', '[a-f]', '[a-f]' ]" - - ^2$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/srandmember/snippets/srandmember.test.yml b/doc/7/controllers/ms/srandmember/snippets/srandmember.test.yml deleted file mode 100644 index a42071648..000000000 --- a/doc/7/controllers/ms/srandmember/snippets/srandmember.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#srandmember -description: Returns one or more members of a set of unique values, at random -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "^\\[ '[a-f]' ]" - - "^\\[ '[a-f]', '[a-f]', '[a-f]' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/srem/snippets/srem.test.yml b/doc/7/controllers/ms/srem/snippets/srem.test.yml deleted file mode 100644 index 54e15cef8..000000000 --- a/doc/7/controllers/ms/srem/snippets/srem.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#srem -description: Removes members from a set of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^2$ - - "\\[ 'foo' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sscan/snippets/sscan.test.yml b/doc/7/controllers/ms/sscan/snippets/sscan.test.yml deleted file mode 100644 index c1ef31f5e..000000000 --- a/doc/7/controllers/ms/sscan/snippets/sscan.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#sscan -description: Iterates incrementally over members contained in a set of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "{ cursor: '0', values: \\[ 'ba[rz]', 'ba[rz]' ] }" - -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/strlen/snippets/strlen.test.yml b/doc/7/controllers/ms/strlen/snippets/strlen.test.yml deleted file mode 100644 index 80fe579ba..000000000 --- a/doc/7/controllers/ms/strlen/snippets/strlen.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#strlen -description: Returns the length of a value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^6$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sunion/snippets/sunion.test.yml b/doc/7/controllers/ms/sunion/snippets/sunion.test.yml deleted file mode 100644 index 3d2e24c42..000000000 --- a/doc/7/controllers/ms/sunion/snippets/sunion.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: ms#sunion -description: Returns the union of sets of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[" - - ('[a-i]', ) - - ('[a-i]', ) - - ('[a-i]', ) -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/sunionstore/snippets/sunionstore.test.yml b/doc/7/controllers/ms/sunionstore/snippets/sunionstore.test.yml deleted file mode 100644 index 109cca56d..000000000 --- a/doc/7/controllers/ms/sunionstore/snippets/sunionstore.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: ms#sunionstore -description: Stores the union of multiple sets of unique values -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[" - - ('[a-i]', ) - - ('[a-i]', ) - - ('[a-i]', ) -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/time/snippets/time.test.yml b/doc/7/controllers/ms/time/snippets/time.test.yml deleted file mode 100644 index e8326ef50..000000000 --- a/doc/7/controllers/ms/time/snippets/time.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: ms#time -description: Returns the current server time -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ \\d{10}, \\d+ ]$" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/touch/snippets/touch.test.yml b/doc/7/controllers/ms/touch/snippets/touch.test.yml deleted file mode 100644 index 14ea27530..000000000 --- a/doc/7/controllers/ms/touch/snippets/touch.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#touch -description: Alters the last access time of the provided keys -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^2$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/ttl/snippets/ttl.test.yml b/doc/7/controllers/ms/ttl/snippets/ttl.test.yml deleted file mode 100644 index 6057d8c32..000000000 --- a/doc/7/controllers/ms/ttl/snippets/ttl.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#ttl -description: Returns the remaining time to live of a key, in seconds -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^\d{1,2}$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/type/snippets/type.test.yml b/doc/7/controllers/ms/type/snippets/type.test.yml deleted file mode 100644 index 1f511cc37..000000000 --- a/doc/7/controllers/ms/type/snippets/type.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: ms#type -description: Returns the type of the value held by a key -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^string$ - - ^list$ - - ^set$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zadd/snippets/zadd.test.yml b/doc/7/controllers/ms/zadd/snippets/zadd.test.yml deleted file mode 100644 index c79fdc308..000000000 --- a/doc/7/controllers/ms/zadd/snippets/zadd.test.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: ms#zadd -description: Adds elements to a sorted set -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[" - - "{ member: 'baz', score: -272.15 }," - - "{ member: 'bar', score: 4 }," - - "{ member: 'foo', score: 42 }" - - "]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zcard/snippets/zcard.test.yml b/doc/7/controllers/ms/zcard/snippets/zcard.test.yml deleted file mode 100644 index 951876910..000000000 --- a/doc/7/controllers/ms/zcard/snippets/zcard.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zcard -description: Returns the number of elements held by a sorted set -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^3$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zcount/snippets/zcount.test.yml b/doc/7/controllers/ms/zcount/snippets/zcount.test.yml deleted file mode 100644 index 51c53b598..000000000 --- a/doc/7/controllers/ms/zcount/snippets/zcount.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zcount -description: Counts elements in a sorted set within a score range -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^2$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zincrby/snippets/zincrby.test.yml b/doc/7/controllers/ms/zincrby/snippets/zincrby.test.yml deleted file mode 100644 index 85a84bd31..000000000 --- a/doc/7/controllers/ms/zincrby/snippets/zincrby.test.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: ms#zincrby -description: Increments the score of a sorted set member by the provided value -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[" - - "{ member: 'baz', score: -272.15 }," - - "{ member: 'foo', score: 42 }," - - "{ member: 'bar', score: 1337 }" - - "\\]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zinterstore/snippets/zinterstore.test.yml b/doc/7/controllers/ms/zinterstore/snippets/zinterstore.test.yml deleted file mode 100644 index 68b382fa5..000000000 --- a/doc/7/controllers/ms/zinterstore/snippets/zinterstore.test.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: ms#zinterstore -description: Stores the intersection of the provided sorted sets -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[" - - "{ member: 'foo', score: 13 }," - - "{ member: 'baz', score: 27.85\\d* }" - - "]" - - "\\[ { member: 'baz', score: -272.15 }, { member: 'foo', score: -29 } ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zlexcount/snippets/zlexcount.test.yml b/doc/7/controllers/ms/zlexcount/snippets/zlexcount.test.yml deleted file mode 100644 index 150209bca..000000000 --- a/doc/7/controllers/ms/zlexcount/snippets/zlexcount.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zlexcount -description: Counts elements in a sorted set using lexicographical ordering -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: ^2$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrange/snippets/zrange.test.yml b/doc/7/controllers/ms/zrange/snippets/zrange.test.yml deleted file mode 100644 index feeeace78..000000000 --- a/doc/7/controllers/ms/zrange/snippets/zrange.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: ms#zrange -description: Returns elements depending on their position in the sorted set -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ { member: 'baz', score: -272.15 }, { member: 'bar', score: 4 } ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrangebylex/snippets/zrangebylex.test.yml b/doc/7/controllers/ms/zrangebylex/snippets/zrangebylex.test.yml deleted file mode 100644 index 45d00de04..000000000 --- a/doc/7/controllers/ms/zrangebylex/snippets/zrangebylex.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zrangebylex -description: Returns elements within a provided interval, using lexicographical ordering -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'bar', 'baz' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrangebyscore/snippets/zrangebyscore.test.yml b/doc/7/controllers/ms/zrangebyscore/snippets/zrangebyscore.test.yml deleted file mode 100644 index 39e30475a..000000000 --- a/doc/7/controllers/ms/zrangebyscore/snippets/zrangebyscore.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: ms#zrangebyscore -description: Returns all sorted set elements with a score within a provided range -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ { member: 'baz', score: -272.15 }, { member: 'bar', score: 4 } ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrank/snippets/zrank.test.yml b/doc/7/controllers/ms/zrank/snippets/zrank.test.yml deleted file mode 100644 index 2735f1ffe..000000000 --- a/doc/7/controllers/ms/zrank/snippets/zrank.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#zrank -description: Returns the position of an element in a sorted set -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^2$ - - ^null$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrem/snippets/zrem.test.yml b/doc/7/controllers/ms/zrem/snippets/zrem.test.yml deleted file mode 100644 index 173bbc82c..000000000 --- a/doc/7/controllers/ms/zrem/snippets/zrem.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zrem -description: Removes members from a sorted set -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ { member: 'baz', score: -272.15 } ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zremrangebylex/snippets/zremrangebylex.test.yml b/doc/7/controllers/ms/zremrangebylex/snippets/zremrangebylex.test.yml deleted file mode 100644 index 17316355c..000000000 --- a/doc/7/controllers/ms/zremrangebylex/snippets/zremrangebylex.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zremrangebylex -description: Removes members within a provided range, using lexicographical ordering -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'bar' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zremrangebyrank/snippets/zremrangebyrank.test.yml b/doc/7/controllers/ms/zremrangebyrank/snippets/zremrangebyrank.test.yml deleted file mode 100644 index 0a81dfb9b..000000000 --- a/doc/7/controllers/ms/zremrangebyrank/snippets/zremrangebyrank.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zremrangebyrank -description: Removes members from a sorted setn by position -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ { member: 'baz', score: -272.15 } ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zremrangebyscore/snippets/zremrangebyscore.test.yml b/doc/7/controllers/ms/zremrangebyscore/snippets/zremrangebyscore.test.yml deleted file mode 100644 index ef951e1b6..000000000 --- a/doc/7/controllers/ms/zremrangebyscore/snippets/zremrangebyscore.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zremrangebyscore -description: Removes members from a sorted set, by score -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ { member: 'baz', score: -272.15 } ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrevrange/snippets/zrevrange.test.yml b/doc/7/controllers/ms/zrevrange/snippets/zrevrange.test.yml deleted file mode 100644 index f3231dc85..000000000 --- a/doc/7/controllers/ms/zrevrange/snippets/zrevrange.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: ms#zrevrange -description: Returns elements depending on their position in the sorted set, in descending order -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ { member: 'foo', score: 42 }, { member: 'bar', score: 4 } ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrevrangebylex/snippets/zrevrangebylex.test.yml b/doc/7/controllers/ms/zrevrangebylex/snippets/zrevrangebylex.test.yml deleted file mode 100644 index 70db0bd81..000000000 --- a/doc/7/controllers/ms/zrevrangebylex/snippets/zrevrangebylex.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: ms#zrevrangebylex -description: Returns elements within a provided interval, using lexicographical ordering -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: "\\[ 'baz', 'bar' ]" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrevrangebyscore/snippets/zrevrangebyscore.test.yml b/doc/7/controllers/ms/zrevrangebyscore/snippets/zrevrangebyscore.test.yml deleted file mode 100644 index 07bfd6335..000000000 --- a/doc/7/controllers/ms/zrevrangebyscore/snippets/zrevrangebyscore.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#zrevrangebyscore -description: Returns all sorted set elements with a score within a provided range in descending order -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[ { member: 'bar', score: 4 }, { member: 'baz', score: -272.15 } ]" - -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zrevrank/snippets/zrevrank.test.yml b/doc/7/controllers/ms/zrevrank/snippets/zrevrank.test.yml deleted file mode 100644 index 0d7bd6326..000000000 --- a/doc/7/controllers/ms/zrevrank/snippets/zrevrank.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: ms#zrevrank -description: Returns the position of an element in a sorted set, in reverse order -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^0$ - - ^null$ - -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zscan/snippets/zscan.test.yml b/doc/7/controllers/ms/zscan/snippets/zscan.test.yml deleted file mode 100644 index 77192f43a..000000000 --- a/doc/7/controllers/ms/zscan/snippets/zscan.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: ms#zscan -description: Iterates incrementally over fields contained in a sorted set, using a cursor -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "{" - - "cursor: '0'," - - "values: \\[ 'baz', '-272.1\\d{1,}', 'bar', '4', 'foo', '42' ]" - - "}" -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zscore/snippets/zscore.test.yml b/doc/7/controllers/ms/zscore/snippets/zscore.test.yml deleted file mode 100644 index da5a531c9..000000000 --- a/doc/7/controllers/ms/zscore/snippets/zscore.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: ms#zscore -description: Returns the score of an element in a sorted set -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - ^42$ - - ^4$ -sdk: js -version: 7 diff --git a/doc/7/controllers/ms/zunionstore/snippets/zunionstore.test.yml b/doc/7/controllers/ms/zunionstore/snippets/zunionstore.test.yml deleted file mode 100644 index 1dd912dfe..000000000 --- a/doc/7/controllers/ms/zunionstore/snippets/zunionstore.test.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: ms#zunionstore -description: Stores the union of the provided sorted sets -hooks: - before: curl -X POST kuzzle:7512/ms/_flushdb - after: -template: default -expected: - - "\\[" - - "{ member: 'bar', score: 4 }," - - "{ member: 'foo', score: 13 }," - - "{ member: 'baz', score: 300 }" - - "\\]" - - "\\[" - - "{ member: 'foo', score: -29 }," - - "{ member: 'bar', score: 4 }," - - "{ member: 'baz', score: 300 }" - - "]" -sdk: js -version: 7 diff --git a/doc/7/controllers/realtime/count/snippets/count.test.yml b/doc/7/controllers/realtime/count/snippets/count.test.yml deleted file mode 100644 index 4e2e07b52..000000000 --- a/doc/7/controllers/realtime/count/snippets/count.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: realtime#count -description: Count subscribers for a subscription room -hooks: - before: - after: -template: default -expected: Currently 1 active subscription - -sdk: js -version: 7 diff --git a/doc/7/controllers/realtime/publish/snippets/publish.test.yml b/doc/7/controllers/realtime/publish/snippets/publish.test.yml deleted file mode 100644 index 303f87900..000000000 --- a/doc/7/controllers/realtime/publish/snippets/publish.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: realtime#publish -description: Publish a realtime message -hooks: - before: - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/realtime/subscribe/snippets/document-notifications-leave-scope.test.yml b/doc/7/controllers/realtime/subscribe/snippets/document-notifications-leave-scope.test.yml deleted file mode 100644 index 773890e87..000000000 --- a/doc/7/controllers/realtime/subscribe/snippets/document-notifications-leave-scope.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: realtime#subscribe-documents-leave-scope -description: Subscribe to documents leaving the scope -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create ; curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi/ - after: -template: realtime -expected: Document moved out from the scope - -sdk: js -version: 7 diff --git a/doc/7/controllers/realtime/subscribe/snippets/document-notifications.test.yml b/doc/7/controllers/realtime/subscribe/snippets/document-notifications.test.yml deleted file mode 100644 index 2ed2614a4..000000000 --- a/doc/7/controllers/realtime/subscribe/snippets/document-notifications.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: realtime#subscribe-documents -description: Simple subscribe to document notifications -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create ; curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi/ - after: -template: realtime -expected: Document nina vkote enter the scope - -sdk: js -version: 7 diff --git a/doc/7/controllers/realtime/subscribe/snippets/message-notifications.test.yml b/doc/7/controllers/realtime/subscribe/snippets/message-notifications.test.yml deleted file mode 100644 index 678e52fb3..000000000 --- a/doc/7/controllers/realtime/subscribe/snippets/message-notifications.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: realtime#subscribe-messages -description: Subscribe to message notifications -hooks: - before: - after: -template: realtime -expected: Message notification received - -sdk: js -version: 7 diff --git a/doc/7/controllers/realtime/subscribe/snippets/user-notifications.test.yml b/doc/7/controllers/realtime/subscribe/snippets/user-notifications.test.yml deleted file mode 100644 index 49606aaca..000000000 --- a/doc/7/controllers/realtime/subscribe/snippets/user-notifications.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: realtime#subscribe-users -description: Subscribe to users joining or leaving the room -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create ; curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi/ - after: -template: realtime -expected: "username: 'nina vkote'" -sdk: js -version: 7 diff --git a/doc/7/controllers/realtime/unsubscribe/snippets/unsubscribe.test.yml b/doc/7/controllers/realtime/unsubscribe/snippets/unsubscribe.test.yml deleted file mode 100644 index 70db043a7..000000000 --- a/doc/7/controllers/realtime/unsubscribe/snippets/unsubscribe.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: realtime#unsubscribe -description: Removes a subscription -hooks: - before: - after: -template: default -expected: Success - -sdk: js -version: 7 diff --git a/doc/7/controllers/security/check-rights/snippets/check-rights.test.yml b/doc/7/controllers/security/check-rights/snippets/check-rights.test.yml deleted file mode 100644 index f3f6de555..000000000 --- a/doc/7/controllers/security/check-rights/snippets/check-rights.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: security#checkRights -description: Checks if an API action can be executed by a user -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: true diff --git a/doc/7/controllers/security/create-api-key/snippets/create-api-key.test.yml b/doc/7/controllers/security/create-api-key/snippets/create-api-key.test.yml deleted file mode 100644 index 842b41a39..000000000 --- a/doc/7/controllers/security/create-api-key/snippets/create-api-key.test.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: security#createApiKey -description: Creates a new API key for an user -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - } - }' "kuzzle:7512/users/john.doe/_create?refresh=wait_for" - after: - curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - "description: 'Sigfox API key'" - - "userId: 'john.doe'" - - API key successfully created diff --git a/doc/7/controllers/security/create-credentials/snippets/create-credentials.test.yml b/doc/7/controllers/security/create-credentials/snippets/create-credentials.test.yml deleted file mode 100644 index 6680c77c4..000000000 --- a/doc/7/controllers/security/create-credentials/snippets/create-credentials.test.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: security#createCredentials -description: Creates credentials for the specified strategy -hooks: - after: curl -X DELETE kuzzle:7512/users/foo?refresh=wait_for -template: default -expected: Credentials successfully created diff --git a/doc/7/controllers/security/create-first-admin/snippets/create-first-admin.test.yml b/doc/7/controllers/security/create-first-admin/snippets/create-first-admin.test.yml deleted file mode 100644 index ed92521d2..000000000 --- a/doc/7/controllers/security/create-first-admin/snippets/create-first-admin.test.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: security#createFirstAdmin -description: Creates first admin -hooks: - after: curl -X DELETE kuzzle:7512/users/admin?refresh=wait_for -template: default -expected: First admin successfully created diff --git a/doc/7/controllers/security/create-or-replace-profile/snippets/create-or-replace-profile.test.yml b/doc/7/controllers/security/create-or-replace-profile/snippets/create-or-replace-profile.test.yml deleted file mode 100644 index c4bfd5c02..000000000 --- a/doc/7/controllers/security/create-or-replace-profile/snippets/create-or-replace-profile.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: security#createOrReplaceProfile -description: Creates or replaces a profile -hooks: - before: curl -XPOST kuzzle:7512/someindex/_create - after: curl -XDELETE kuzzle:7512/profiles/myProfile?refresh=wait_for -template: default -expected: Profile successfully updated diff --git a/doc/7/controllers/security/create-or-replace-role/snippets/create-or-replace-role.test.yml b/doc/7/controllers/security/create-or-replace-role/snippets/create-or-replace-role.test.yml deleted file mode 100644 index a46b8c0dc..000000000 --- a/doc/7/controllers/security/create-or-replace-role/snippets/create-or-replace-role.test.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: security#createOrReplaceRole -description: Creates or replaces role -hooks: - after: curl -XDELETE kuzzle:7512/roles/read-only -template: default -expected: Role successfully updated diff --git a/doc/7/controllers/security/create-profile/snippets/create-profile.test.yml b/doc/7/controllers/security/create-profile/snippets/create-profile.test.yml deleted file mode 100644 index 77cad7466..000000000 --- a/doc/7/controllers/security/create-profile/snippets/create-profile.test.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: security#createProfile -description: Creates a profile -hooks: - after: curl -XDELETE kuzzle:7512/profiles/myProfile?refresh=wait_for -template: default -expected: Profile successfully created diff --git a/doc/7/controllers/security/create-restricted-user/snippets/create-restricted-user.test.yml b/doc/7/controllers/security/create-restricted-user/snippets/create-restricted-user.test.yml deleted file mode 100644 index f0ae1f924..000000000 --- a/doc/7/controllers/security/create-restricted-user/snippets/create-restricted-user.test.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: security#createRestrictedUser -description: creates a restricted user -hooks: - after: curl -XDELETE http://kuzzle:7512/users/jdoe -template: default -expected: User successfully created diff --git a/doc/7/controllers/security/create-role/snippets/create-role.test.yml b/doc/7/controllers/security/create-role/snippets/create-role.test.yml deleted file mode 100644 index fcee0d453..000000000 --- a/doc/7/controllers/security/create-role/snippets/create-role.test.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: security#createRole -description: Creates a role -hooks: - after: curl -XDELETE kuzzle:7512/roles/read-only?refresh=wait_for -template: default -expected: Role successfully created diff --git a/doc/7/controllers/security/create-user/snippets/create-user.test.yml b/doc/7/controllers/security/create-user/snippets/create-user.test.yml deleted file mode 100644 index d335f9348..000000000 --- a/doc/7/controllers/security/create-user/snippets/create-user.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: security#createUser -description: creates user -hooks: - after: curl -XDELETE kuzzle:7512/users/jdoe -template: default -expected: - - "User {" - - "_id: 'jdoe'," - - "_source: {" - - "profileIds: \\[ \\'default\\' \\]," diff --git a/doc/7/controllers/security/delete-api-key/snippets/delete-api-key.test.yml b/doc/7/controllers/security/delete-api-key/snippets/delete-api-key.test.yml deleted file mode 100644 index a9ae4bb54..000000000 --- a/doc/7/controllers/security/delete-api-key/snippets/delete-api-key.test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: security#deleteApiKey -description: Deletes an user API key -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - } - }' "kuzzle:7512/users/john.doe/_create?refresh=wait_for" - && - curl -XPOST -H "Content-type: application/json" -d '{ - "description": "Sigfox API key" - }' "kuzzle:7512/users/john.doe/api-keys/_create?_id=fQRa28BsidO6V_wmOcL&refresh=wait_for" - after: - curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - API key successfully deleted diff --git a/doc/7/controllers/security/delete-credentials/snippets/delete-credentials.test.yml b/doc/7/controllers/security/delete-credentials/snippets/delete-credentials.test.yml deleted file mode 100644 index 18b3bbb36..000000000 --- a/doc/7/controllers/security/delete-credentials/snippets/delete-credentials.test.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: security#deleteCredentials -description: deletes credentials -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create?refresh=wait_for - after: - curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: Credentials successfully deleted diff --git a/doc/7/controllers/security/delete-profile/snippets/delete-profile.test.yml b/doc/7/controllers/security/delete-profile/snippets/delete-profile.test.yml deleted file mode 100644 index 2d8b92d8e..000000000 --- a/doc/7/controllers/security/delete-profile/snippets/delete-profile.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: security#deleteProfile -description: deletes profile -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "policies": [] - }' kuzzle:7512/profiles/myProfile/_create -template: default -expected: Profile successfully deleted diff --git a/doc/7/controllers/security/delete-role/snippets/delete-role.test.yml b/doc/7/controllers/security/delete-role/snippets/delete-role.test.yml deleted file mode 100644 index b2f06efa2..000000000 --- a/doc/7/controllers/security/delete-role/snippets/delete-role.test.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: security#deleteRole -description: deletes role -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "controllers": { - "*": { - "actions": { - "*": true - } - } - } - }' kuzzle:7512/roles/myRole/_create -template: default -expected: Role successfully deleted diff --git a/doc/7/controllers/security/delete-user/snippets/delete-user.test.yml b/doc/7/controllers/security/delete-user/snippets/delete-user.test.yml deleted file mode 100644 index 764b04c97..000000000 --- a/doc/7/controllers/security/delete-user/snippets/delete-user.test.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: security#deleteUser -description: Deletes a user -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create?refresh=wait_for - after: - curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: User successfully deleted diff --git a/doc/7/controllers/security/get-all-credential-fields/snippets/get-all-credential-fields.test.yml b/doc/7/controllers/security/get-all-credential-fields/snippets/get-all-credential-fields.test.yml deleted file mode 100644 index 6cd8709d5..000000000 --- a/doc/7/controllers/security/get-all-credential-fields/snippets/get-all-credential-fields.test.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: security#getAllCredentialFields -description: get all credential fields -template: default -expected: '{ local: \[ ''username'', ''password'' \] }' diff --git a/doc/7/controllers/security/get-credential-fields/snippets/get-credential-fields.test.yml b/doc/7/controllers/security/get-credential-fields/snippets/get-credential-fields.test.yml deleted file mode 100644 index 4734bada3..000000000 --- a/doc/7/controllers/security/get-credential-fields/snippets/get-credential-fields.test.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: security#getCredentialFields -description: get credential fields -template: default -expected: '^\[ ''username'', ''password'' \]$' diff --git a/doc/7/controllers/security/get-credentials-by-id/snippets/get-credentials-by-id.test.yml b/doc/7/controllers/security/get-credentials-by-id/snippets/get-credentials-by-id.test.yml deleted file mode 100644 index deec2898e..000000000 --- a/doc/7/controllers/security/get-credentials-by-id/snippets/get-credentials-by-id.test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: security#getCredentialsById -description: get credentials by id -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create?refresh=wait_for - after: curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: '^{ username: ''jdoe'', kuid: ''john.doe'' }$' diff --git a/doc/7/controllers/security/get-credentials/snippets/get-credentials.test.yml b/doc/7/controllers/security/get-credentials/snippets/get-credentials.test.yml deleted file mode 100644 index 9da59450a..000000000 --- a/doc/7/controllers/security/get-credentials/snippets/get-credentials.test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: security#getCredentials -description: get credentials -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create?refresh=wait_for - after: curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: '^{ username: ''jdoe'', kuid: ''john.doe'' }$' diff --git a/doc/7/controllers/security/get-profile-mapping/snippets/get-profile-mapping.test.yml b/doc/7/controllers/security/get-profile-mapping/snippets/get-profile-mapping.test.yml deleted file mode 100644 index 0b2f0f360..000000000 --- a/doc/7/controllers/security/get-profile-mapping/snippets/get-profile-mapping.test.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: security#getProfileMapping -description: get profile mapping -template: default -expected: - - "mapping: { policies: { properties: \\[Object\\]" diff --git a/doc/7/controllers/security/get-profile-rights/snippets/get-profile-rights.test.yml b/doc/7/controllers/security/get-profile-rights/snippets/get-profile-rights.test.yml deleted file mode 100644 index fc44fdc09..000000000 --- a/doc/7/controllers/security/get-profile-rights/snippets/get-profile-rights.test.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: security#getProfileRights -description: get profile rights -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "policies": [ - { - "roleId": "admin", - "restrictedTo": [ - { "index": "someindex" }, - { - "index": "anotherindex", - "collections": [ - "somecollection" - ] - } - ] - }, - { - "roleId": "default" - } - ] - }' kuzzle:7512/profiles/myProfile/_create - after: curl -XDELETE kuzzle:7512/profiles/myProfile -template: default -expected: "^ value: 'allowed'$" diff --git a/doc/7/controllers/security/get-profile/snippets/get-profile.test.yml b/doc/7/controllers/security/get-profile/snippets/get-profile.test.yml deleted file mode 100644 index 9d5635b6d..000000000 --- a/doc/7/controllers/security/get-profile/snippets/get-profile.test.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: security#getProfile -description: get profile -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "policies": [ - { - "roleId": "admin", - "restrictedTo": [ - { "index": "someindex" }, - { - "index": "anotherindex", - "collections": [ - "somecollection" - ] - } - ] - }, - { - "roleId": "default" - } - ] - }' kuzzle:7512/profiles/myProfile/_create - after: curl -XDELETE kuzzle:7512/profiles/myProfile -template: default -expected: -- "\\[ { roleId: \\'admin\\', restrictedTo: \\[Array\\] }, { roleId: \\'default\\' } \\]" \ No newline at end of file diff --git a/doc/7/controllers/security/get-role-mapping/snippets/get-role-mapping.test.yml b/doc/7/controllers/security/get-role-mapping/snippets/get-role-mapping.test.yml deleted file mode 100644 index 40c5eeb71..000000000 --- a/doc/7/controllers/security/get-role-mapping/snippets/get-role-mapping.test.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: security#getRoleMapping -description: get roles mapping -template: default -expected: - - "mapping: {" diff --git a/doc/7/controllers/security/get-role/snippets/get-role.test.yml b/doc/7/controllers/security/get-role/snippets/get-role.test.yml deleted file mode 100644 index 83eb8c4b0..000000000 --- a/doc/7/controllers/security/get-role/snippets/get-role.test.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: security#getRole -description: get role -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "controllers": { - "auth": { - "actions": { - "login": true, - "getMyRights": true, - "updateSelf": true - } - }, - "document": { - "actions": { - "get": true, - "search": true - } - } - } - }' kuzzle:7512/roles/myRole/_create - after: curl -XDELETE kuzzle:7512/roles/myRole -template: default -expected: - - "controllers: { auth: { actions: \\[Object\\] }, document: { actions: \\[Object\\] } }" \ No newline at end of file diff --git a/doc/7/controllers/security/get-user-mapping/snippets/get-user-mapping.test.yml b/doc/7/controllers/security/get-user-mapping/snippets/get-user-mapping.test.yml deleted file mode 100644 index 6b1767457..000000000 --- a/doc/7/controllers/security/get-user-mapping/snippets/get-user-mapping.test.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: security#getUserMapping -description: get users mapping -template: default -expected: - - "mapping: {" diff --git a/doc/7/controllers/security/get-user-rights/snippets/get-user-rights.test.yml b/doc/7/controllers/security/get-user-rights/snippets/get-user-rights.test.yml deleted file mode 100644 index 800814e8c..000000000 --- a/doc/7/controllers/security/get-user-rights/snippets/get-user-rights.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: security#getUserRights -description: get user rights -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ], - "fullName": "John Doe" - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create - after: curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - "value: 'allowed'" diff --git a/doc/7/controllers/security/get-user-strategies/snippets/get-user-strategies.test.yml b/doc/7/controllers/security/get-user-strategies/snippets/get-user-strategies.test.yml deleted file mode 100644 index 8e865a76a..000000000 --- a/doc/7/controllers/security/get-user-strategies/snippets/get-user-strategies.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: security#getUserStrategies -description: get user strategies -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ], - "fullName": "John Doe" - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create - after: curl -XDELETE kuzzle:7512/users/john.doe -template: catch -expected: - - "[ 'local' ]" diff --git a/doc/7/controllers/security/get-user/snippets/get-user.test.yml b/doc/7/controllers/security/get-user/snippets/get-user.test.yml deleted file mode 100644 index edad9952a..000000000 --- a/doc/7/controllers/security/get-user/snippets/get-user.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: security#getUser -description: get user -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ], - "fullName": "John Doe" - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create - after: curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - "fullName: 'John Doe'" diff --git a/doc/7/controllers/security/has-credentials/snippets/has-credentials.test.yml b/doc/7/controllers/security/has-credentials/snippets/has-credentials.test.yml deleted file mode 100644 index 8fee898e5..000000000 --- a/doc/7/controllers/security/has-credentials/snippets/has-credentials.test.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: security#hasCredentials -description: has credentials -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ], - "fullName": "John Doe" - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create - after: curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: ^true$ diff --git a/doc/7/controllers/security/m-delete-profiles/snippets/m-delete-profiles.test.yml b/doc/7/controllers/security/m-delete-profiles/snippets/m-delete-profiles.test.yml deleted file mode 100644 index e5aa30556..000000000 --- a/doc/7/controllers/security/m-delete-profiles/snippets/m-delete-profiles.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: security#mDeleteProfiles -description: mdelete profiles -hooks: - before: | - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{ - "policies": [{ "roleId": "default" }] - }' kuzzle:7512/profiles/profile${i}/_create - done -template: default -expected: '^\[ ''profile\d'', ''profile\d'', ''profile\d'', ''profile\d'', ''profile\d'' \]$' diff --git a/doc/7/controllers/security/m-delete-roles/snippets/m-delete-roles.test.yml b/doc/7/controllers/security/m-delete-roles/snippets/m-delete-roles.test.yml deleted file mode 100644 index e1584334b..000000000 --- a/doc/7/controllers/security/m-delete-roles/snippets/m-delete-roles.test.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: security#mDeleteRoles -description: mdelete roles -hooks: - before: | - for i in 1 2 3 4 5; do - curl --fail -H "Content-type: application/json" -d '{ - "controllers": { - "*": { - "actions": { - "*": true - } - } - } - }' kuzzle:7512/roles/role${i}/_create - done -template: default -expected: '^\[ ''role\d'', ''role\d'', ''role\d'', ''role\d'', ''role\d'' \]$' diff --git a/doc/7/controllers/security/m-delete-users/snippets/m-delete-users.test.yml b/doc/7/controllers/security/m-delete-users/snippets/m-delete-users.test.yml deleted file mode 100644 index 2563308aa..000000000 --- a/doc/7/controllers/security/m-delete-users/snippets/m-delete-users.test.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: security#mDeleteUsers -description: mdelete users -hooks: - before: | - for i in 1 2 3; do - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ] - }, - "credentials": { - "local": { - "username": "user'${i}'", - "password": "pass" - } - } - }' kuzzle:7512/users/user${i}/_create - done -template: default -expected: '^\[ ''user\d'', ''user\d'', ''user\d'' \]$' diff --git a/doc/7/controllers/security/m-get-profiles/snippets/m-get-profiles.test.yml b/doc/7/controllers/security/m-get-profiles/snippets/m-get-profiles.test.yml deleted file mode 100644 index 171c26967..000000000 --- a/doc/7/controllers/security/m-get-profiles/snippets/m-get-profiles.test.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: security#mGetProfiles -description: mget profiles -hooks: - before: | - for i in 1 2 3; do - curl --fail -H "Content-type: application/json" -d '{ - "policies": [{"roleId": "default"}] - }' kuzzle:7512/profiles/profile${i}/_create - done - after: | - for i in 1 2 3; do - curl -XDELETE kuzzle:7512/profiles/profile${i} - done -template: default -expected: Successfully retrieved 3 profiles diff --git a/doc/7/controllers/security/m-get-roles/snippets/m-get-roles.test.yml b/doc/7/controllers/security/m-get-roles/snippets/m-get-roles.test.yml deleted file mode 100644 index b1b4cfe89..000000000 --- a/doc/7/controllers/security/m-get-roles/snippets/m-get-roles.test.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: security#mGetRoles -description: mget roles -hooks: - before: | - for i in 1 2 3; do - curl --fail -H "Content-type: application/json" -d '{ - "controllers": { - "*": { - "actions": { - "*": true - } - } - } - }' kuzzle:7512/roles/role${i}/_create - done - after: | - for i in 1 2 3; do - curl -XDELETE kuzzle:7512/roles/role${i} - done -template: default -expected: '.*Role.*_id.*controllers.*' diff --git a/doc/7/controllers/security/m-get-users/snippets/m-get-users.test.yml b/doc/7/controllers/security/m-get-users/snippets/m-get-users.test.yml deleted file mode 100644 index 11bb312df..000000000 --- a/doc/7/controllers/security/m-get-users/snippets/m-get-users.test.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: security#mGetUsers -description: mget users -hooks: - before: | - for i in 1 2 3; do - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"], - "fullname": "user'${i}'" - }, - "credentials": { - "local": { - "username": "user'${i}'", - "password": "bar" - } - } - }' kuzzle:7512/users/user${i}/_create - done - after: | - for i in 1 2 3; do - curl -XDELETE kuzzle:7512/users/user${i} - done -template: default -expected: '.*User.*' diff --git a/doc/7/controllers/security/refresh/snippets/refresh.test.yml b/doc/7/controllers/security/refresh/snippets/refresh.test.yml deleted file mode 100644 index deb50cd40..000000000 --- a/doc/7/controllers/security/refresh/snippets/refresh.test.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: security#refresh -description: Refreshes security collection -hooks: -template: default -expected: Success diff --git a/doc/7/controllers/security/replace-user/snippets/replace-user.test.yml b/doc/7/controllers/security/replace-user/snippets/replace-user.test.yml deleted file mode 100644 index 73893b7f4..000000000 --- a/doc/7/controllers/security/replace-user/snippets/replace-user.test.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: security#replaceUser -description: replace user -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ] - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "pass" - } - } - }' kuzzle:7512/users/john.doe/_create - after: curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - "firstName: 'John'" diff --git a/doc/7/controllers/security/search-api-keys/snippets/search-api-keys-koncorde.test.yml b/doc/7/controllers/security/search-api-keys/snippets/search-api-keys-koncorde.test.yml deleted file mode 100644 index 237ea3487..000000000 --- a/doc/7/controllers/security/search-api-keys/snippets/search-api-keys-koncorde.test.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: security#searchApiKeys-koncorde -description: Searches for a user API keys -hooks: - before: > - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - } - }' "kuzzle:7512/users/john.doe/_create?refresh=wait_for" - after: - curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - Found 2 API keys. diff --git a/doc/7/controllers/security/search-profiles/snippets/search-profiles.test.yml b/doc/7/controllers/security/search-profiles/snippets/search-profiles.test.yml deleted file mode 100644 index 603a3c08a..000000000 --- a/doc/7/controllers/security/search-profiles/snippets/search-profiles.test.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: security#searchProfiles -description: search profiles -hooks: - before: | - for i in 1 2 3; do - curl --fail -H "Content-type: application/json" -d '{ - "policies": [{ "roleId": "default" }] - }' kuzzle:7512/profiles/profile${i}/_create?refresh=wait_for - done - after: | - for i in 1 2 3; do - curl -XDELETE kuzzle:7512/profiles/profile${i} - done -template: default -expected: ^Successfully retrieved \d+ profiles$ diff --git a/doc/7/controllers/security/search-roles/snippets/search-roles.test.yml b/doc/7/controllers/security/search-roles/snippets/search-roles.test.yml deleted file mode 100644 index 64cb86570..000000000 --- a/doc/7/controllers/security/search-roles/snippets/search-roles.test.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: security#searchRoles -description: search roles -template: default -expected: ^Successfully retrieved 3 roles$ diff --git a/doc/7/controllers/security/search-users/snippets/search-users-es.test.yml b/doc/7/controllers/security/search-users/snippets/search-users-es.test.yml deleted file mode 100644 index 40409df44..000000000 --- a/doc/7/controllers/security/search-users/snippets/search-users-es.test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: security#searchUsers-es -description: search users -hooks: - before: | - for i in 1 2 3; do - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ], - "status": "student" - }, - "credentials": {} - }' kuzzle:7512/users/user${i}/_create?refresh=wait_for - done - after: - - curl -f -XDELETE kuzzle:7512/users/user1 - - curl -f -XDELETE kuzzle:7512/users/user2 - - curl -f -XDELETE kuzzle:7512/users/user3 - -template: default -expected: ^Successfully retrieved 0 users$ diff --git a/doc/7/controllers/security/search-users/snippets/search-users-koncorde.test.yml b/doc/7/controllers/security/search-users/snippets/search-users-koncorde.test.yml deleted file mode 100644 index 599bf257b..000000000 --- a/doc/7/controllers/security/search-users/snippets/search-users-koncorde.test.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: security#searchUsers-koncorde -description: search users -hooks: - before: | - for i in 1 2 3; do - curl --fail -H "Content-type: application/json" -d '{ - "content": { - "profileIds": [ "default" ], - "status": "student" - }, - "credentials": {} - }' kuzzle:7512/users/user${i}/_create?refresh=wait_for - done - after: -template: default -expected: ^Successfully retrieved 0 users$ diff --git a/doc/7/controllers/security/update-credentials/snippets/update-credentials.test.yml b/doc/7/controllers/security/update-credentials/snippets/update-credentials.test.yml deleted file mode 100644 index 42df29f6d..000000000 --- a/doc/7/controllers/security/update-credentials/snippets/update-credentials.test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: security#updateCredentials -description: update credentials -hooks: - before: > - curl --fail -H "Content-type: application/json" -f -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "pass" - } - } - }' kuzzle:7512/users/john.doe/_create - after: curl -XDELETE kuzzle:7512/users/john.doe -template: default -expected: '^{ username: ''jdoe'', kuid: ''john.doe'' }$' diff --git a/doc/7/controllers/security/update-profile-mapping/snippets/update-profile-mapping.test.yml b/doc/7/controllers/security/update-profile-mapping/snippets/update-profile-mapping.test.yml deleted file mode 100644 index dfcd39461..000000000 --- a/doc/7/controllers/security/update-profile-mapping/snippets/update-profile-mapping.test.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: security#updateProfileMapping -description: update profile mapping -template: default -expected: 'description: {' diff --git a/doc/7/controllers/security/update-profile/snippets/update-profile.test.yml b/doc/7/controllers/security/update-profile/snippets/update-profile.test.yml deleted file mode 100644 index 725eb3892..000000000 --- a/doc/7/controllers/security/update-profile/snippets/update-profile.test.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: security#updateProfile -description: updates a security profile definition -hooks: - before: - - > - curl --fail -H "Content-type: application/json" -d '{ - "policies": [] - }' kuzzle:7512/profiles/myProfile/_create - - > - curl --fail -H "Content-type: application/json" -d '{ - "controllers": { - "*": { - "actions": { - "*": true - } - } - } - }' kuzzle:7512/roles/privileged/_create - after: - - curl -XDELETE kuzzle:7512/profiles/myProfile?refresh=wait_for - - curl -XDELETE kuzzle:7512/roles/privileged -template: default -expected: - - "{ roleId: 'privileged', restrictedTo: \\[Array\\] }" diff --git a/doc/7/controllers/security/update-role-mapping/snippets/update-role-mapping.test.yml b/doc/7/controllers/security/update-role-mapping/snippets/update-role-mapping.test.yml deleted file mode 100644 index 99acf0be0..000000000 --- a/doc/7/controllers/security/update-role-mapping/snippets/update-role-mapping.test.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: security#updateRoleMapping -description: update role mapping -template: default -expected: 'description:' diff --git a/doc/7/controllers/security/update-role/snippets/update-role.test.yml b/doc/7/controllers/security/update-role/snippets/update-role.test.yml deleted file mode 100644 index 28a68b1a8..000000000 --- a/doc/7/controllers/security/update-role/snippets/update-role.test.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: security#updateRole -description: update role -hooks: - before: > - curl -f -H "Content-type: application/json" -d '{ - "controllers": { - "auth": { - "actions": { - "login": true - } - } - } - }' kuzzle:7512/roles/read-only/_create - after: curl -f -XDELETE kuzzle:7512/roles/read-only -template: default -expected: - - "auth: { actions: \\[Object\\] }," diff --git a/doc/7/controllers/security/update-user-mapping/snippets/update-user-mapping.test.yml b/doc/7/controllers/security/update-user-mapping/snippets/update-user-mapping.test.yml deleted file mode 100644 index e8bf72cc2..000000000 --- a/doc/7/controllers/security/update-user-mapping/snippets/update-user-mapping.test.yml +++ /dev/null @@ -1,4 +0,0 @@ -name: security#updateUserMapping -description: update user mapping -template: default -expected: 'firstName: ' diff --git a/doc/7/controllers/security/update-user/snippets/update-user.test.yml b/doc/7/controllers/security/update-user/snippets/update-user.test.yml deleted file mode 100644 index 9b917cd35..000000000 --- a/doc/7/controllers/security/update-user/snippets/update-user.test.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: security#updateUser -description: update user -hooks: - before: > - curl -f -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { } - }' kuzzle:7512/users/john.doe/_create - after: curl -f -XDELETE kuzzle:7512/users/john.doe -template: default -expected: - - "firstName: 'John'" diff --git a/doc/7/controllers/security/validate-credentials/snippets/validate-credentials.test.yml b/doc/7/controllers/security/validate-credentials/snippets/validate-credentials.test.yml deleted file mode 100644 index 5fd0cb927..000000000 --- a/doc/7/controllers/security/validate-credentials/snippets/validate-credentials.test.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: security#validateCredentials -description: validate credentials -hooks: - before: > - curl -f -H "Content-type: application/json" -d '{ - "content": { - "profileIds": ["default"] - }, - "credentials": { - "local": { - "username": "jdoe", - "password": "password" - } - } - }' kuzzle:7512/users/john.doe/_create - after: curl -f -XDELETE kuzzle:7512/users/john.doe -template: default -expected: ^true$ diff --git a/doc/7/controllers/server/admin-exists/snippets/admin-exists.test.yml b/doc/7/controllers/server/admin-exists/snippets/admin-exists.test.yml deleted file mode 100644 index 2502f328f..000000000 --- a/doc/7/controllers/server/admin-exists/snippets/admin-exists.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: server#adminExists -description: Checks that an administrator account exists. -hooks: - before: - after: -template: default -expected: ^(Admin exists\?) (true|false)$ - -sdk: js -version: 7 diff --git a/doc/7/controllers/server/get-all-stats/snippets/get-all-stats.test.yml b/doc/7/controllers/server/get-all-stats/snippets/get-all-stats.test.yml deleted file mode 100644 index e154cc024..000000000 --- a/doc/7/controllers/server/get-all-stats/snippets/get-all-stats.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: server#getAllStats -description: Gets all stored internal statistic snapshots. -hooks: - before: - after: -template: default -expected: ongoingRequests diff --git a/doc/7/controllers/server/get-config/snippets/get-config.test.yml b/doc/7/controllers/server/get-config/snippets/get-config.test.yml deleted file mode 100644 index 30e2c2dab..000000000 --- a/doc/7/controllers/server/get-config/snippets/get-config.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: server#getConfig -description: Returns the current Kuzzle configuration. -hooks: - before: - after: -template: default -expected: '^Kuzzle Server configuration:' \ No newline at end of file diff --git a/doc/7/controllers/server/get-last-stats/snippets/get-last-stats.test.yml b/doc/7/controllers/server/get-last-stats/snippets/get-last-stats.test.yml deleted file mode 100644 index a7318c67e..000000000 --- a/doc/7/controllers/server/get-last-stats/snippets/get-last-stats.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: server#getLastStats -description: Gets all stored internal statistic snapshots. -hooks: - before: - after: -template: default -expected: ongoingRequests diff --git a/doc/7/controllers/server/get-stats/snippets/get-stats.test.yml b/doc/7/controllers/server/get-stats/snippets/get-stats.test.yml deleted file mode 100644 index 520756733..000000000 --- a/doc/7/controllers/server/get-stats/snippets/get-stats.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: server#getStats -description: Returns statistics snapshots within a provided timestamp range. -hooks: - before: - after: -template: default -expected: hits diff --git a/doc/7/controllers/server/info/snippets/info.test.yml b/doc/7/controllers/server/info/snippets/info.test.yml deleted file mode 100644 index b2717248b..000000000 --- a/doc/7/controllers/server/info/snippets/info.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: server##info -description: Retrieves information about Kuzzle plugins and active services. -hooks: - before: - after: -template: default -expected: serverInfo diff --git a/doc/7/controllers/server/now/snippets/now.test.yml b/doc/7/controllers/server/now/snippets/now.test.yml deleted file mode 100644 index efff02676..000000000 --- a/doc/7/controllers/server/now/snippets/now.test.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: server#now -description: Fetch the current server timestamp, in Epoch-millis format. -hooks: - before: - after: -template: default -expected: ^(Epoch-millis timestamp:) [0-9]{13}$ \ No newline at end of file diff --git a/doc/7/core-classes/base-controller/properties/index.md b/doc/7/core-classes/base-controller/properties/index.md index 760d3238b..2c1504839 100644 --- a/doc/7/core-classes/base-controller/properties/index.md +++ b/doc/7/core-classes/base-controller/properties/index.md @@ -9,10 +9,11 @@ description: BaseController Properties -| Property name | Type | Description | -| -------------------- | -------- | --------------------------------------- | -| `name` |
string
| Controller name | -| `kuzzle` | [`Kuzzle`](/sdk/js/7/core-classes/kuzzle/constructor) | Kuzzle SDK instance | +| Property name | Type | Description | +| ------------- | ----------------------------------------------------- | ------------------- | +| `name` |
string
| Controller name | +| `kuzzle` | [`Kuzzle`](/sdk/js/7/core-classes/kuzzle/constructor) | Kuzzle SDK instance | **Note:** - - The `name` property will be injected in the request sent by the [BaseController.query](/sdk/js/7/core-classes/base-controller/query) method if the `controller` property is not set. \ No newline at end of file + +- The `name` property will be injected in the request sent by the [BaseController.query](/sdk/js/7/core-classes/base-controller/query) method if the `controller` property is not set. diff --git a/doc/7/core-classes/base-controller/query/index.md b/doc/7/core-classes/base-controller/query/index.md index 436664c27..53c158c50 100644 --- a/doc/7/core-classes/base-controller/query/index.md +++ b/doc/7/core-classes/base-controller/query/index.md @@ -16,14 +16,14 @@ This method injects the controller name into the the request and forwards it to ## Arguments ```js -query (request, [options]); +query(request, [options]); ```
-| Argument | Type | Description | -| -------------- | --------- | ------------- | -| `request` |
object
| API request | +| Argument | Type | Description | +| --------- | ----------------- | ---------------------- | +| `request` |
object
| API request | | `options` |
object
| Optional query options | ### request @@ -31,27 +31,28 @@ query (request, [options]); All properties necessary for the Kuzzle API can be added in the request object. The following properties are the most common. -| Property | Type | Description | -| -------------- | --------- | ------------- | +| Property | Type | Description | +| ------------ | ----------------- | ---------------------------------------- | | `action` |
string
| Action name (required) | -| `controller` |
string
| Controller name | -| `body` |
object
| Query body for this action | -| `index` |
string
| Index name for this action | -| `collection` |
string
| Collection name for this action | -| `_id` |
string
| id for this action | +| `controller` |
string
| Controller name | +| `body` |
object
| Query body for this action | +| `index` |
string
| Index name for this action | +| `collection` |
string
| Collection name for this action | +| `_id` |
string
| id for this action | | `volatile` |
object
| Additional information to send to Kuzzle | **Note:** - - If the `controller` property is not set, the controller [name property](/sdk/js/7/core-classes/base-controller/properties) will be used + +- If the `controller` property is not set, the controller [name property](/sdk/js/7/core-classes/base-controller/properties) will be used ### options Additional query options -| Property | Type
(default) | Description | -| -------------- | --------- | ------------- | +| Property | Type
(default) | Description | +| ---------- | ------------------------------- | ------------------------------------------------------------------------------ | | `queuable` |
boolean

(`true`) | If `true`, queues the request during downtime, until connected to Kuzzle again | ## Resolves -Resolve to the raw Kuzzle API response. See the [API Documentation](/core/2/api). \ No newline at end of file +Resolve to the raw Kuzzle API response. See the [API Documentation](/core/2/api). diff --git a/doc/7/core-classes/index.md b/doc/7/core-classes/index.md index 71320d100..5bf50a486 100644 --- a/doc/7/core-classes/index.md +++ b/doc/7/core-classes/index.md @@ -1,7 +1,7 @@ --- code: false type: branch -order: 200 +order: 400 title: Core Classes description: Javascript SDK v7.x core classes --- diff --git a/doc/7/core-classes/kuzzle-event-emitter/add-listener/snippets/add-listener.js b/doc/7/core-classes/kuzzle-event-emitter/add-listener/snippets/add-listener.js index b98d6e0be..0b9bad05c 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/add-listener/snippets/add-listener.js +++ b/doc/7/core-classes/kuzzle-event-emitter/add-listener/snippets/add-listener.js @@ -1,6 +1,8 @@ const eventEmitter = new KuzzleEventEmitter(); -eventEmitter.addListener('myEvent', () => console.log('Caught event "myEvent"!')); +eventEmitter.addListener("myEvent", () => + console.log('Caught event "myEvent"!'), +); // Prints: Caught event "myEvent"! -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); diff --git a/doc/7/core-classes/kuzzle-event-emitter/add-listener/snippets/add-listener.test.yml b/doc/7/core-classes/kuzzle-event-emitter/add-listener/snippets/add-listener.test.yml deleted file mode 100644 index 261fe9cf4..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/add-listener/snippets/add-listener.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: kuzzleEventEmitter#add-listener -description: Adds new listener for the given event -hooks: - before: - after: -template: eventemitter -expected: Caught event "myEvent"! -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle-event-emitter/add-once-listener/snippets/add-once-listener.js b/doc/7/core-classes/kuzzle-event-emitter/add-once-listener/snippets/add-once-listener.js index 2f63326c1..03f11308c 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/add-once-listener/snippets/add-once-listener.js +++ b/doc/7/core-classes/kuzzle-event-emitter/add-once-listener/snippets/add-once-listener.js @@ -1,11 +1,11 @@ const eventEmitter = new KuzzleEventEmitter(); -eventEmitter.addOnceListener( - 'myEvent', - () => console.log('Caught event "myEvent"!')); +eventEmitter.addOnceListener("myEvent", () => + console.log('Caught event "myEvent"!'), +); // Prints: Caught event "myEvent"! -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); // Prints nothing: the event has since been removed -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); diff --git a/doc/7/core-classes/kuzzle-event-emitter/add-once-listener/snippets/add-once-listener.test.yml b/doc/7/core-classes/kuzzle-event-emitter/add-once-listener/snippets/add-once-listener.test.yml deleted file mode 100644 index 3ca6257d7..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/add-once-listener/snippets/add-once-listener.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: kuzzleEventEmitter#add-once-listener -description: Adds new once listener for the given event -hooks: - before: - after: -template: eventemitter -expected: Caught event "myEvent"! -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle-event-emitter/emit/snippets/emit.js b/doc/7/core-classes/kuzzle-event-emitter/emit/snippets/emit.js index b70bf929b..5378c7935 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/emit/snippets/emit.js +++ b/doc/7/core-classes/kuzzle-event-emitter/emit/snippets/emit.js @@ -1,5 +1,5 @@ const eventEmitter = new KuzzleEventEmitter(); -eventEmitter.addListener('helloEvent', msg => console.log(`Hello ${msg}`)); +eventEmitter.addListener("helloEvent", (msg) => console.log(`Hello ${msg}`)); -eventEmitter.emit('helloEvent', 'World'); +eventEmitter.emit("helloEvent", "World"); diff --git a/doc/7/core-classes/kuzzle-event-emitter/emit/snippets/emit.test.yml b/doc/7/core-classes/kuzzle-event-emitter/emit/snippets/emit.test.yml deleted file mode 100644 index dc23f9a35..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/emit/snippets/emit.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: kuzzleEventEmitter#emit -description: Emits an event -hooks: - before: - after: -template: eventemitter -expected: Hello World -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle-event-emitter/listeners/snippets/listeners.js b/doc/7/core-classes/kuzzle-event-emitter/listeners/snippets/listeners.js index 4e5e83699..5215bafde 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/listeners/snippets/listeners.js +++ b/doc/7/core-classes/kuzzle-event-emitter/listeners/snippets/listeners.js @@ -1,8 +1,10 @@ const eventEmitter = new KuzzleEventEmitter(); -eventEmitter.addListener('myEvent', () => console.log('Hello')); -eventEmitter.addListener('myEvent', () => console.log('Hello World')); +eventEmitter.addListener("myEvent", () => console.log("Hello")); +eventEmitter.addListener("myEvent", () => console.log("Hello World")); -const listeners = eventEmitter.listeners('myEvent'); +const listeners = eventEmitter.listeners("myEvent"); -console.log(`There are ${listeners.length} listeners bound to the event "myEvent"`); +console.log( + `There are ${listeners.length} listeners bound to the event "myEvent"`, +); diff --git a/doc/7/core-classes/kuzzle-event-emitter/listeners/snippets/listeners.test.yml b/doc/7/core-classes/kuzzle-event-emitter/listeners/snippets/listeners.test.yml deleted file mode 100644 index 52a527683..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/listeners/snippets/listeners.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: kuzzleEventEmitter#listeners -description: Returns listeners binded to an event -hooks: - before: - after: -template: eventemitter -expected: There are 2 listeners bound to the event "myEvent" -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle-event-emitter/prepend-listener/snippets/prepend-listener.js b/doc/7/core-classes/kuzzle-event-emitter/prepend-listener/snippets/prepend-listener.js index 997536d57..5f4054d7d 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/prepend-listener/snippets/prepend-listener.js +++ b/doc/7/core-classes/kuzzle-event-emitter/prepend-listener/snippets/prepend-listener.js @@ -1,10 +1,10 @@ const eventEmitter = new KuzzleEventEmitter(); -eventEmitter.addListener('myEvent', () => console.log('listener1')); +eventEmitter.addListener("myEvent", () => console.log("listener1")); -eventEmitter.prependListener('myEvent', () => console.log('listener2')); +eventEmitter.prependListener("myEvent", () => console.log("listener2")); // Prints: // listener2 // listener1 -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); diff --git a/doc/7/core-classes/kuzzle-event-emitter/prepend-listener/snippets/prepend-listener.test.yml b/doc/7/core-classes/kuzzle-event-emitter/prepend-listener/snippets/prepend-listener.test.yml deleted file mode 100644 index 9ab3c939a..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/prepend-listener/snippets/prepend-listener.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: kuzzleEventEmitter#prepend-listener -description: Prepends a new listener for the given event -hooks: - before: - after: -template: eventemitter -expected: - - ^listener2$ - - ^listener1$ -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle-event-emitter/prepend-once-listener/snippets/prepend-once-listener.js b/doc/7/core-classes/kuzzle-event-emitter/prepend-once-listener/snippets/prepend-once-listener.js index 479c42e3c..be2b1ca64 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/prepend-once-listener/snippets/prepend-once-listener.js +++ b/doc/7/core-classes/kuzzle-event-emitter/prepend-once-listener/snippets/prepend-once-listener.js @@ -1,14 +1,14 @@ const eventEmitter = new KuzzleEventEmitter(); -eventEmitter.addListener('myEvent', () => console.log('listener1')); +eventEmitter.addListener("myEvent", () => console.log("listener1")); -eventEmitter.prependOnceListener('myEvent', () => console.log('listener2')); +eventEmitter.prependOnceListener("myEvent", () => console.log("listener2")); // Prints: // listener2 // listener1 -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); // Prints: listener1 // (the listener function printing "listener2" as since been removed) -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); diff --git a/doc/7/core-classes/kuzzle-event-emitter/prepend-once-listener/snippets/prepend-once-listener.test.yml b/doc/7/core-classes/kuzzle-event-emitter/prepend-once-listener/snippets/prepend-once-listener.test.yml deleted file mode 100644 index 6f31d5c21..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/prepend-once-listener/snippets/prepend-once-listener.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: kuzzleEventEmitter#prepend-once-listener -description: Prepends an once new listener for the given event -hooks: - before: - after: -template: eventemitter -expected: - - ^listener2$ - - ^listener1$ - - ^listener1$ -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle-event-emitter/remove-all-listener/snippets/remove-all-listeners.js b/doc/7/core-classes/kuzzle-event-emitter/remove-all-listener/snippets/remove-all-listeners.js index 00154de84..3b6f0da91 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/remove-all-listener/snippets/remove-all-listeners.js +++ b/doc/7/core-classes/kuzzle-event-emitter/remove-all-listener/snippets/remove-all-listeners.js @@ -1,18 +1,22 @@ const eventEmitter = new KuzzleEventEmitter(); -eventEmitter.addListener('myEvent', () => console.log('Caught event "myEvent" (1)')); -eventEmitter.addListener('myEvent', () => console.log('Caught event "myEvent" (2)')); +eventEmitter.addListener("myEvent", () => + console.log('Caught event "myEvent" (1)'), +); +eventEmitter.addListener("myEvent", () => + console.log('Caught event "myEvent" (2)'), +); // Prints: // Caught event "myEvent" (1) // Caught event "myEvent" (2) -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); -eventEmitter.removeAllListeners('myEvent'); +eventEmitter.removeAllListeners("myEvent"); // Prints nothing: all events have been removed -eventEmitter.emit('myEvent'); +eventEmitter.emit("myEvent"); -if (eventEmitter.listeners('myEvent').length === 0) { - console.log('Successfully removed all listeners'); +if (eventEmitter.listeners("myEvent").length === 0) { + console.log("Successfully removed all listeners"); } diff --git a/doc/7/core-classes/kuzzle-event-emitter/remove-all-listener/snippets/remove-all-listeners.test.yml b/doc/7/core-classes/kuzzle-event-emitter/remove-all-listener/snippets/remove-all-listeners.test.yml deleted file mode 100644 index e1d5d344c..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/remove-all-listener/snippets/remove-all-listeners.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: kuzzleEventEmitter#remove-all-listeners -description: Removes a listener for the given event -hooks: - before: - after: -template: eventemitter -expected: Successfully removed all listeners -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle-event-emitter/remove-listener/snippets/remove-listener.js b/doc/7/core-classes/kuzzle-event-emitter/remove-listener/snippets/remove-listener.js index 8c7276211..752610151 100644 --- a/doc/7/core-classes/kuzzle-event-emitter/remove-listener/snippets/remove-listener.js +++ b/doc/7/core-classes/kuzzle-event-emitter/remove-listener/snippets/remove-listener.js @@ -1,13 +1,13 @@ const eventEmitter = new KuzzleEventEmitter(); -const listener = () => console.log('disconnected'); +const listener = () => console.log("disconnected"); eventEmitter - .addListener('disconnected', () => console.log('disconnected')) - .addListener('disconnected', listener); + .addListener("disconnected", () => console.log("disconnected")) + .addListener("disconnected", listener); -eventEmitter.removeListener('disconnected', listener); +eventEmitter.removeListener("disconnected", listener); -if (eventEmitter.listeners('disconnected').length === 1) { - console.log('Successfully removed the listener'); +if (eventEmitter.listeners("disconnected").length === 1) { + console.log("Successfully removed the listener"); } diff --git a/doc/7/core-classes/kuzzle-event-emitter/remove-listener/snippets/remove-listener.test.yml b/doc/7/core-classes/kuzzle-event-emitter/remove-listener/snippets/remove-listener.test.yml deleted file mode 100644 index 50d53fcf9..000000000 --- a/doc/7/core-classes/kuzzle-event-emitter/remove-listener/snippets/remove-listener.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: kuzzleEventEmitter#remove-listener -description: Removes a listener for the given event -hooks: - before: - after: -template: eventemitter -expected: Successfully removed the listener -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/authenticate/snippets/authenticate.test.yml b/doc/7/core-classes/kuzzle/authenticate/snippets/authenticate.test.yml deleted file mode 100644 index 0c5300fe7..000000000 --- a/doc/7/core-classes/kuzzle/authenticate/snippets/authenticate.test.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: kuzzle#authenticate -description: Authenticate the SDK -hooks: - before: curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: curl -X DELETE kuzzle:7512/users/foo -template: default -expected: Success diff --git a/doc/7/core-classes/kuzzle/connect/snippets/connect.test.yml b/doc/7/core-classes/kuzzle/connect/snippets/connect.test.yml deleted file mode 100644 index 86edf692a..000000000 --- a/doc/7/core-classes/kuzzle/connect/snippets/connect.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: kuzzle#connect -description: Connects the SDK to Kuzzle -hooks: - before: - after: -template: without-connect -expected: Successfully connected - -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/constructor/snippets/constructor.js b/doc/7/core-classes/kuzzle/constructor/snippets/constructor.js index f362d01c3..26cf854a2 100644 --- a/doc/7/core-classes/kuzzle/constructor/snippets/constructor.js +++ b/doc/7/core-classes/kuzzle/constructor/snippets/constructor.js @@ -1,25 +1,13 @@ // Loads the Kuzzle SDK module -const - { - Kuzzle, - WebSocket, - Http - } = require('kuzzle-sdk'); +const { Kuzzle, WebSocket, Http } = require("kuzzle-sdk"); const options = { - offlineMode: 'auto', - volatile: { username: 'Gordon' } + offlineMode: "auto", + volatile: { username: "Gordon" }, }; // Instantiates the SDK with the websocket protocol -const - kuzzleWs = new Kuzzle( - new WebSocket('kuzzle'), - options - ); +const kuzzleWs = new Kuzzle(new WebSocket("kuzzle"), options); // Instantiates the SDK with the http protocol -const - kuzzleHttp = new Kuzzle( - new Http('kuzzle') - ); +const kuzzleHttp = new Kuzzle(new Http("kuzzle")); diff --git a/doc/7/core-classes/kuzzle/constructor/snippets/constructor.test.yml b/doc/7/core-classes/kuzzle/constructor/snippets/constructor.test.yml deleted file mode 100644 index 26b345f0b..000000000 --- a/doc/7/core-classes/kuzzle/constructor/snippets/constructor.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: kuzzle#constructor -description: Creates a new Kuzzle instance connected to kuzzle -hooks: - before: - after: -template: empty -expected: Success -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/disconnect/snippets/disconnect.js b/doc/7/core-classes/kuzzle/disconnect/snippets/disconnect.js index e3c9244e6..60590a442 100644 --- a/doc/7/core-classes/kuzzle/disconnect/snippets/disconnect.js +++ b/doc/7/core-classes/kuzzle/disconnect/snippets/disconnect.js @@ -1,7 +1,7 @@ try { kuzzle.disconnect(); - console.log('Successfully disconnected'); + console.log("Successfully disconnected"); } catch (error) { console.error(error); } diff --git a/doc/7/core-classes/kuzzle/disconnect/snippets/disconnect.test.yml b/doc/7/core-classes/kuzzle/disconnect/snippets/disconnect.test.yml deleted file mode 100644 index 15f23ad96..000000000 --- a/doc/7/core-classes/kuzzle/disconnect/snippets/disconnect.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: kuzzle#disconnect -description: Disconnects the SDK -hooks: - before: - after: -template: without-connect -expected: Successfully disconnected - -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/flush-queue/snippets/flush-queue.js b/doc/7/core-classes/kuzzle/flush-queue/snippets/flush-queue.js index 1ce69b412..95decb383 100644 --- a/doc/7/core-classes/kuzzle/flush-queue/snippets/flush-queue.js +++ b/doc/7/core-classes/kuzzle/flush-queue/snippets/flush-queue.js @@ -1,7 +1,7 @@ try { kuzzle.flushQueue(); - console.log('Offline queue flushed'); + console.log("Offline queue flushed"); } catch (error) { console.error(error); } diff --git a/doc/7/core-classes/kuzzle/flush-queue/snippets/flush-queue.test.yml b/doc/7/core-classes/kuzzle/flush-queue/snippets/flush-queue.test.yml deleted file mode 100644 index ada4a3aef..000000000 --- a/doc/7/core-classes/kuzzle/flush-queue/snippets/flush-queue.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: kuzzle#flushQueue -description: Empties the offline request queue -hooks: - before: - after: -template: without-connect -expected: Offline queue flushed - -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/play-queue/snippets/play-queue.js b/doc/7/core-classes/kuzzle/play-queue/snippets/play-queue.js index 463d99a18..57831d0c0 100644 --- a/doc/7/core-classes/kuzzle/play-queue/snippets/play-queue.js +++ b/doc/7/core-classes/kuzzle/play-queue/snippets/play-queue.js @@ -1,7 +1,7 @@ try { kuzzle.playQueue(); - console.log('Start playing offline queue'); + console.log("Start playing offline queue"); } catch (error) { console.error(error); } diff --git a/doc/7/core-classes/kuzzle/play-queue/snippets/play-queue.test.yml b/doc/7/core-classes/kuzzle/play-queue/snippets/play-queue.test.yml deleted file mode 100644 index 8a249726b..000000000 --- a/doc/7/core-classes/kuzzle/play-queue/snippets/play-queue.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: kuzzle#playQueue -description: Play the requests queued -hooks: - before: - after: -template: without-connect -expected: Start playing offline queue - -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/query/snippets/query.test.yml b/doc/7/core-classes/kuzzle/query/snippets/query.test.yml deleted file mode 100644 index 490f1e010..000000000 --- a/doc/7/core-classes/kuzzle/query/snippets/query.test.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: kuzzle#query -description: Sends a request to Kuzzle API -hooks: - before: | - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - curl -X DELETE kuzzle:7512/nyc-open-data/yellow-taxi/my-custom-document-id - after: -template: default -expected: Document created - -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/start-queuing/snippets/start-queuing.js b/doc/7/core-classes/kuzzle/start-queuing/snippets/start-queuing.js index 787e2518b..5960a80e0 100644 --- a/doc/7/core-classes/kuzzle/start-queuing/snippets/start-queuing.js +++ b/doc/7/core-classes/kuzzle/start-queuing/snippets/start-queuing.js @@ -1,7 +1,7 @@ try { kuzzle.startQueuing(); - console.log('Start queuing requests'); + console.log("Start queuing requests"); } catch (error) { console.error(error); } diff --git a/doc/7/core-classes/kuzzle/start-queuing/snippets/start-queuing.test.yml b/doc/7/core-classes/kuzzle/start-queuing/snippets/start-queuing.test.yml deleted file mode 100644 index 8eb3cfc20..000000000 --- a/doc/7/core-classes/kuzzle/start-queuing/snippets/start-queuing.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: kuzzle#startQueuing -description: Starts the requests queuing -hooks: - before: - after: -template: without-connect -expected: Start queuing requests - -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/stop-queuing/snippets/stop-queuing.js b/doc/7/core-classes/kuzzle/stop-queuing/snippets/stop-queuing.js index 782278ef6..f59702f63 100644 --- a/doc/7/core-classes/kuzzle/stop-queuing/snippets/stop-queuing.js +++ b/doc/7/core-classes/kuzzle/stop-queuing/snippets/stop-queuing.js @@ -1,7 +1,7 @@ try { kuzzle.stopQueuing(); - console.log('Stop queuing requests'); + console.log("Stop queuing requests"); } catch (error) { console.error(error); } diff --git a/doc/7/core-classes/kuzzle/stop-queuing/snippets/stop-queuing.test.yml b/doc/7/core-classes/kuzzle/stop-queuing/snippets/stop-queuing.test.yml deleted file mode 100644 index 63175a19a..000000000 --- a/doc/7/core-classes/kuzzle/stop-queuing/snippets/stop-queuing.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: kuzzle#stopQueuing -description: Stops the requests queuing -hooks: - before: - after: -template: without-connect -expected: Stop queuing requests - -sdk: js -version: 7 diff --git a/doc/7/core-classes/kuzzle/use-controller/snippets/use-controller.js b/doc/7/core-classes/kuzzle/use-controller/snippets/use-controller.js index c63c4f286..12394a193 100644 --- a/doc/7/core-classes/kuzzle/use-controller/snippets/use-controller.js +++ b/doc/7/core-classes/kuzzle/use-controller/snippets/use-controller.js @@ -1,21 +1,19 @@ class TaxiController extends BaseController { - constructor (kuzzle) { - super(kuzzle, 'my-plugin/taxi'); + constructor(kuzzle) { + super(kuzzle, "my-plugin/taxi"); } - enroll () { + enroll() { return this.query({ - action: 'enroll' + action: "enroll", }); } } -const kuzzle = new Kuzzle( - new WebSocket('kuzzle') -); +const kuzzle = new Kuzzle(new WebSocket("kuzzle")); // Add the custom SDK controller -kuzzle.useController(TaxiController, 'taxi'); +kuzzle.useController(TaxiController, "taxi"); const run = async () => { try { @@ -24,7 +22,7 @@ const run = async () => { // Call the custom SDK controller action console.log(await kuzzle.taxi.enroll()); - console.log('Success'); + console.log("Success"); } catch (error) { console.error(error); } finally { diff --git a/doc/7/core-classes/kuzzle/use-controller/snippets/use-controller.test.yml b/doc/7/core-classes/kuzzle/use-controller/snippets/use-controller.test.yml deleted file mode 100644 index 976bf68ed..000000000 --- a/doc/7/core-classes/kuzzle/use-controller/snippets/use-controller.test.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: kuzzle#useController -description: Adds a new controller to the SDK -hooks: - before: - after: -template: controller -expected: Success - -sdk: js -version: 7 \ No newline at end of file diff --git a/doc/7/core-classes/profile/getRoles/snippets/getRoles.test.yml b/doc/7/core-classes/profile/getRoles/snippets/getRoles.test.yml deleted file mode 100644 index f7fa219ff..000000000 --- a/doc/7/core-classes/profile/getRoles/snippets/getRoles.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: user#getRoles -description: Loads informations about user roles -hooks: - before: | - curl -X DELETE kuzzle:7512/users/foo - curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: -template: default -expected: - - Profile { _id: \'default\' -sdk: js -version: 7 diff --git a/doc/7/core-classes/search-result/next/snippets/fromsize.test.yml b/doc/7/core-classes/search-result/next/snippets/fromsize.test.yml deleted file mode 100644 index 135ad9c56..000000000 --- a/doc/7/core-classes/search-result/next/snippets/fromsize.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: searchresult#fromsize -description: Next method with from/size -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: | - curl -XDELETE kuzzle:7512/nyc-open-data -template: default -expected: Successfully retrieved 100 documents -sdk: js -version: 7 diff --git a/doc/7/core-classes/search-result/next/snippets/scroll.test.yml b/doc/7/core-classes/search-result/next/snippets/scroll.test.yml deleted file mode 100644 index 5cfbced3c..000000000 --- a/doc/7/core-classes/search-result/next/snippets/scroll.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: searchresult#scroll -description: Next method with scroll -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: | - curl -XDELETE kuzzle:7512/nyc-open-data -template: default -expected: Successfully retrieved 100 documents -sdk: js -version: 7 diff --git a/doc/7/core-classes/search-result/next/snippets/sortsize.test.yml b/doc/7/core-classes/search-result/next/snippets/sortsize.test.yml deleted file mode 100644 index d6c320f00..000000000 --- a/doc/7/core-classes/search-result/next/snippets/sortsize.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: searchresult#sortsize -description: Next method with sort/size -hooks: - before: | - curl -XDELETE kuzzle:7512/nyc-open-data - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: | - curl -XDELETE kuzzle:7512/nyc-open-data -template: default -expected: Successfully retrieved 100 documents \ No newline at end of file diff --git a/doc/7/core-classes/user/getProfiles/snippets/getProfiles.test.yml b/doc/7/core-classes/user/getProfiles/snippets/getProfiles.test.yml deleted file mode 100644 index c112aff5e..000000000 --- a/doc/7/core-classes/user/getProfiles/snippets/getProfiles.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: user#getProfiles -description: Loads informations about user profiles -hooks: - before: | - curl -X DELETE kuzzle:7512/users/foo - curl -X POST kuzzle:7512/users/foo/_create -H "Content-Type:application/json" --data '{"content":{"profileIds":["default"]},"credentials":{"local":{"username":"foo","password":"bar"}}}' - after: -template: default -expected: - - Role { _id: \'default\' -sdk: js -version: 7 diff --git a/doc/7/essentials/error-handling/snippets/error-handling-async.test.yml b/doc/7/essentials/error-handling/snippets/error-handling-async.test.yml deleted file mode 100644 index 9129a8f66..000000000 --- a/doc/7/essentials/error-handling/snippets/error-handling-async.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: essentials#errorHandlingAsync -description: How to handle errors with the SDK -hooks: - before: | - curl -X DELETE kuzzle:7512/nyc-open-data - curl -X POST kuzzle:7512/nyc-open-data/_create - curl -X PUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Try with another name! diff --git a/doc/7/essentials/error-handling/snippets/error-handling.js b/doc/7/essentials/error-handling/snippets/error-handling.js index 65c6dbe51..928e33c8a 100644 --- a/doc/7/essentials/error-handling/snippets/error-handling.js +++ b/doc/7/essentials/error-handling/snippets/error-handling.js @@ -1,8 +1,9 @@ -kuzzle.index.create('nyc-open-data') - .then(() => 'do something') - .catch(error => { +kuzzle.index + .create("nyc-open-data") + .then(() => "do something") + .catch((error) => { if (error.status === 412) { console.log(error.message); - console.log('Try with another name!'); + console.log("Try with another name!"); } }); diff --git a/doc/7/essentials/error-handling/snippets/error-handling.test.yml b/doc/7/essentials/error-handling/snippets/error-handling.test.yml deleted file mode 100644 index 9caa6eee7..000000000 --- a/doc/7/essentials/error-handling/snippets/error-handling.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: essentials#errorHandling -description: How to handle errors with the SDK -hooks: - before: curl -X POST kuzzle:7512/nyc-open-data/_create - after: -template: thencatch -expected: Try with another name! - -sdk: js -version: 7 diff --git a/doc/7/essentials/index.md b/doc/7/essentials/index.md index ef7ceaed5..1af55626f 100644 --- a/doc/7/essentials/index.md +++ b/doc/7/essentials/index.md @@ -1,7 +1,7 @@ --- code: false type: branch -order: 100 +order: 200 title: Essentials description: Javascript SDK v7.x essential notions --- diff --git a/doc/7/getting-started/node-js/snippets/create.js b/doc/7/getting-started/node-js/snippets/create.js index abd761b20..623f7d7c4 100644 --- a/doc/7/getting-started/node-js/snippets/create.js +++ b/doc/7/getting-started/node-js/snippets/create.js @@ -1,18 +1,13 @@ // Loads the Kuzzle SDK modules -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); +const { Kuzzle, WebSocket } = require("kuzzle-sdk"); // Instantiates a Kuzzle client with the WebSocket protocol // Replace 'kuzzle' with your Kuzzle server hostname (e.g. 'localhost') -const kuzzle = new Kuzzle( - new WebSocket('kuzzle') -); +const kuzzle = new Kuzzle(new WebSocket("kuzzle")); // Adds a listener to detect connection problems -kuzzle.on('networkError', error => { - console.error('Network Error:', error); +kuzzle.on("networkError", (error) => { + console.error("Network Error:", error); }); const run = async () => { @@ -22,13 +17,13 @@ const run = async () => { // Creates a document const driver = { - name: 'Sirkis', - birthday: '1959-06-22', - license: 'B' + name: "Sirkis", + birthday: "1959-06-22", + license: "B", }; - await kuzzle.document.create('nyc-open-data', 'yellow-taxi', driver); - console.log('New document successfully created!'); + await kuzzle.document.create("nyc-open-data", "yellow-taxi", driver); + console.log("New document successfully created!"); } catch (error) { console.error(error.message); } finally { diff --git a/doc/7/getting-started/node-js/snippets/create.test.yml b/doc/7/getting-started/node-js/snippets/create.test.yml deleted file mode 100644 index 9a19851b1..000000000 --- a/doc/7/getting-started/node-js/snippets/create.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: gettingstarted#nodejscreate -description: Creates a document -hooks: - before: | - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: empty -expected: New document successfully created! -sdk: js -version: 7 diff --git a/doc/7/getting-started/node-js/snippets/init.js b/doc/7/getting-started/node-js/snippets/init.js index fd0a31384..8982b68d1 100644 --- a/doc/7/getting-started/node-js/snippets/init.js +++ b/doc/7/getting-started/node-js/snippets/init.js @@ -1,18 +1,13 @@ // Loads the Kuzzle SDK modules -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); +const { Kuzzle, WebSocket } = require("kuzzle-sdk"); // Instantiates a Kuzzle client with the WebSocket protocol // Replace 'kuzzle' with your Kuzzle server hostname (e.g. 'localhost') -const kuzzle = new Kuzzle( - new WebSocket('kuzzle') -); +const kuzzle = new Kuzzle(new WebSocket("kuzzle")); // Adds a listener to detect connection problems -kuzzle.on('networkError', error => { - console.error('Network Error:', error); +kuzzle.on("networkError", (error) => { + console.error("Network Error:", error); }); const run = async () => { @@ -21,12 +16,12 @@ const run = async () => { await kuzzle.connect(); // Creates an index - await kuzzle.index.create('nyc-open-data'); + await kuzzle.index.create("nyc-open-data"); // Creates a collection - await kuzzle.collection.create('nyc-open-data', 'yellow-taxi'); + await kuzzle.collection.create("nyc-open-data", "yellow-taxi"); - console.log('nyc-open-data/yellow-taxi ready!'); + console.log("nyc-open-data/yellow-taxi ready!"); } catch (error) { console.error(error.message); } finally { diff --git a/doc/7/getting-started/node-js/snippets/init.test.yml b/doc/7/getting-started/node-js/snippets/init.test.yml deleted file mode 100644 index 89ded1ac8..000000000 --- a/doc/7/getting-started/node-js/snippets/init.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: gettingstarted#nodejsinit -description: Creates an index and a collection -hooks: - before: curl -X DELETE kuzzle:7512/nyc-open-data - after: -template: empty -expected: nyc-open-data/yellow-taxi ready! -sdk: js -version: 7 diff --git a/doc/7/getting-started/node-js/snippets/load-sdk.js b/doc/7/getting-started/node-js/snippets/load-sdk.js index ae17a9b0e..2e83d0b78 100644 --- a/doc/7/getting-started/node-js/snippets/load-sdk.js +++ b/doc/7/getting-started/node-js/snippets/load-sdk.js @@ -1,9 +1,5 @@ -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); +const { Kuzzle, WebSocket } = require("kuzzle-sdk"); // Replace 'kuzzle' with your Kuzzle server hostname (e.g. 'localhost') -const kuzzle = new Kuzzle( - new WebSocket('kuzzle') -); +// eslint-disable-next-line no-unused-vars +const kuzzle = new Kuzzle(new WebSocket("kuzzle")); diff --git a/doc/7/getting-started/node-js/snippets/load-sdk.test.yml b/doc/7/getting-started/node-js/snippets/load-sdk.test.yml deleted file mode 100644 index ae05c0dd3..000000000 --- a/doc/7/getting-started/node-js/snippets/load-sdk.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: gettingstarted#nodejsload -description: Load SDK -hooks: - before: - after: -template: empty -expected: Success -sdk: js -version: 7 diff --git a/doc/7/getting-started/node-js/snippets/prepare-db.js b/doc/7/getting-started/node-js/snippets/prepare-db.js index 2fb9b8410..33aee5200 100644 --- a/doc/7/getting-started/node-js/snippets/prepare-db.js +++ b/doc/7/getting-started/node-js/snippets/prepare-db.js @@ -4,12 +4,12 @@ const run = async () => { await kuzzle.connect(); // Creates an index - await kuzzle.index.create('nyc-open-data'); + await kuzzle.index.create("nyc-open-data"); // Creates a collection - await kuzzle.collection.create('nyc-open-data', 'yellow-taxi'); + await kuzzle.collection.create("nyc-open-data", "yellow-taxi"); - console.log('nyc-open-data/yellow-taxi ready!'); + console.log("nyc-open-data/yellow-taxi ready!"); } catch (error) { console.error(error.message); } finally { diff --git a/doc/7/getting-started/node-js/snippets/prepare-db.test.yml b/doc/7/getting-started/node-js/snippets/prepare-db.test.yml deleted file mode 100644 index c257e2760..000000000 --- a/doc/7/getting-started/node-js/snippets/prepare-db.test.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: gettingstarted#nodejspreparedb -description: Prepare database -hooks: - before: curl -X DELETE kuzzle:7512/nyc-open-data - after: -template: blank -expected: nyc-open-data/yellow-taxi ready! -sdk: js -version: 7 diff --git a/doc/7/getting-started/node-js/snippets/subscribe.js b/doc/7/getting-started/node-js/snippets/subscribe.js index f85d66357..4de6764c1 100644 --- a/doc/7/getting-started/node-js/snippets/subscribe.js +++ b/doc/7/getting-started/node-js/snippets/subscribe.js @@ -1,18 +1,13 @@ // Loads the Kuzzle SDK modules -const { - Kuzzle, - WebSocket -} = require('kuzzle-sdk'); +const { Kuzzle, WebSocket } = require("kuzzle-sdk"); // Instantiates a Kuzzle client with the WebSocket protocol // Replace 'kuzzle' with your Kuzzle server hostname (e.g. 'localhost') -const kuzzle = new Kuzzle( - new WebSocket('kuzzle') -); +const kuzzle = new Kuzzle(new WebSocket("kuzzle")); // Adds a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error('Network Error:', error); +kuzzle.on("networkError", (error) => { + console.error("Network Error:", error); }); const run = async () => { @@ -22,27 +17,33 @@ const run = async () => { // Defines a filter const filter = { - equals: { license: 'B' } + equals: { license: "B" }, }; // Defines a callback invoked each time a notification is received const callback = (notification) => { - - if (notification.type === 'document' && notification.action === 'create') { - const { - _source: driver, - _id: driverId - } = notification.result; - - console.log(`New driver ${driver.name} with id ${driverId} has B license.`); + if ( + notification.type === "document" && + notification.action === "create" + ) { + const { _source: driver, _id: driverId } = notification.result; + + console.log( + `New driver ${driver.name} with id ${driverId} has B license.`, + ); kuzzle.disconnect(); } }; // Subscribes to document notifications using the above filter - await kuzzle.realtime.subscribe('nyc-open-data', 'yellow-taxi', filter, callback); - - console.log('Successfully subscribed to document notifications!'); + await kuzzle.realtime.subscribe( + "nyc-open-data", + "yellow-taxi", + filter, + callback, + ); + + console.log("Successfully subscribed to document notifications!"); } catch (error) { console.error(error.message); } diff --git a/doc/7/getting-started/node-js/snippets/subscribe.test.yml b/doc/7/getting-started/node-js/snippets/subscribe.test.yml deleted file mode 100644 index a34b4d32a..000000000 --- a/doc/7/getting-started/node-js/snippets/subscribe.test.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: gettingstarted#nodejssubscribe -description: Subscribes to document notifications -hooks: - before: | - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: empty-realtime -expected: Successfully subscribed to document notifications! -sdk: js -version: 7 diff --git a/doc/7/getting-started/raw-web/snippets/create.test.yml b/doc/7/getting-started/raw-web/snippets/create.test.yml deleted file mode 100644 index 251b041d0..000000000 --- a/doc/7/getting-started/raw-web/snippets/create.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: gettingstarted#browservanillacreate -description: Create a document -hooks: - before: | - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: New document successfully created -sdk: js -version: 7 -runner: web diff --git a/doc/7/getting-started/raw-web/snippets/load-sdk.test.yml b/doc/7/getting-started/raw-web/snippets/load-sdk.test.yml deleted file mode 100644 index 9c6f8c72d..000000000 --- a/doc/7/getting-started/raw-web/snippets/load-sdk.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: gettingstarted#browservanillaconnect -description: Connect to Kuzzle -hooks: - before: - after: -template: default -expected: Successfully connected to Kuzzle -sdk: js -version: 7 -runner: web diff --git a/doc/7/getting-started/raw-web/snippets/prepare-db.test.yml b/doc/7/getting-started/raw-web/snippets/prepare-db.test.yml deleted file mode 100644 index 2158c88c1..000000000 --- a/doc/7/getting-started/raw-web/snippets/prepare-db.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: gettingstarted#browservanillaprepare -description: Prepare the database -hooks: - before: curl -X DELETE kuzzle:7512/nyc-open-data - after: -template: default -expected: nyc-open-data/yellow-taxi ready -sdk: js -version: 7 -runner: web diff --git a/doc/7/getting-started/raw-web/snippets/subscribe.test.yml b/doc/7/getting-started/raw-web/snippets/subscribe.test.yml deleted file mode 100644 index 944ad12ed..000000000 --- a/doc/7/getting-started/raw-web/snippets/subscribe.test.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: gettingstarted#browservanillasubscribe -description: Subscribe to notifications -hooks: - before: | - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: default -expected: Successfully subscribed to document notifications -sdk: js -version: 7 -runner: web diff --git a/doc/7/getting-started/webpack/index.md b/doc/7/getting-started/webpack/index.md deleted file mode 100644 index 5d7b5a444..000000000 --- a/doc/7/getting-started/webpack/index.md +++ /dev/null @@ -1,212 +0,0 @@ ---- -type: page -code: false -title: Webpack -description: Getting started with Kuzzle and Webpack -order: 200 ---- - -# Getting Started with Kuzzle and Webpack - -In this tutorial you will learn how to install, run and use **Kuzzle** with the **Javascript SDK** in the browser using **Webpack**. -We will walk you through creating scripts that can **store** documents in Kuzzle and subscribe to **notifications** for each new document created. - -:::info -Having trouble? Get in touch with us on [Discord](http://join.discord.kuzzle.io)! -::: - -## Running Kuzzle - -Before going through this tutorial, you should have a Kuzzle server running. Please refer to the [Running Kuzzle Tutorial](/core/2/guides/getting-started/run-kuzzle) if you don't have one yet. - -## Fun with the SDK - -It's time to play with the [Kuzzle Javascript SDK](/sdk/js/7). In this section, we will store a document and subscribe to notifications in Kuzzle using the Javascript SDK in your browser. - -Before proceeding, please make sure your system has **Node.js** version 8 or higher ([instructions here](https://nodejs.org/en/download/)) installed. - -## Including the Kuzzle SDK in a Webpack project - -::: info -This section explains how to use the Kuzzle SDK within an existing Webpack project. -If you don't have your project up and running yet and want to learn how to leverage Webpack to build it, please refer to -the [official Webpack Getting Started page](https://webpack.js.org/guides/getting-started). -::: - -In your terminal, go to the root of your front-end project using Webpack and type - -```bash -npm install kuzzle-sdk -``` - -:::info -If you are performing a clean install you might see some `UNMET PEER DEPENDENCY` warnings, these are safe to ignore as they refer to optional dependencies. -::: - -Then, create a `init-kuzzle.js` file and start by adding the code below. This will load the Kuzzle Javascript SDK: - -<<< ./snippets/init-kuzzle.js:1 - -Next, we instantiate a client that will connect to Kuzzle via WebSocket. If Kuzzle is not running on localhost, replace it with the corresponding server name or IP address. - -<<< ./snippets/init-kuzzle.js:2 - -Next we add a listener to be notified in case of a connection error: - -<<< ./snippets/init-kuzzle.js:3 - -Then we have to connect our web app to the Kuzzle server with the `connect()` method. - -```js -const run = async () => { - try { - // Connect to Kuzzle server - await kuzzle.connect(); - // Some more things will go here... - } catch (error) { - console.error(error.message); - } finally { - kuzzle.disconnect(); - } -}; -``` - -Finally, we will create a new index `nyc-open-data` and a new collection -`yellow-taxi` that we will use to store data later on. - -<<< ./snippets/init-kuzzle.js:4 - -Your `kuzzle-init.js` file should now look like this: - -<<< ./snippets/init-kuzzle.js - -This code does the following: - -- loads the `kuzzle-sdk` from its NPM package -- creates an instance of the SDK -- connects it to Kuzzle running on `localhost` with the `WebSocket` protocol -- creates the `nyc-open-data` index -- creates the `yellow-taxi` collection (within the `nyc-open-data` index), -- disconnects from Kuzzle after the collection is created or if an error occurs - -Now, to have your script up and running, require it somewhere in your application -(e.g. your main entry point) and launch it. - -```js -require('../path/to/init-kuzzle.js'); -``` - -Your console should output the following message: - -``` -nyc-open-data/yellow-taxi ready! -``` - -::: success -Congratulations! You are now ready to say Hello to the World! -::: - -::: info -Having trouble? Get in touch with us on [Discord!](http://join.discord.kuzzle.io) We're happy to help. -::: - -## Create your first document - -Create a `create.js` file with following code: - -<<< ./snippets/create.js - -This code does the following: - -- creates a new document in `nyc-open-data` within the `yellow-taxi` index -- logs a success message to the console if everything went fine -- logs an error message if any of the previous actions failed -- disconnects from Kuzzle after the document is created or if an error occurs - -To activate this code, create a button somewhere in your page like the following - -```html - -``` - -Then, associate it to the `create` function by adding this code to your application - -```js -const create = require('../path/to/create.js'); - -// This is the most "vanilla" way to call a function in reaction to a click, -// if you're using a front-end framework like Vuejs, React or jQuery, feel free -// to follow any convenience method it provides for this purpose. -document.querySelector('#create-document-btn').addListener('click', event => { - create(); -}); -``` - -Now, click the button and check your console for a message like the following: - -```bash -New document successfully created! -``` - -::: success -You have now successfully stored your first document into Kuzzle. Click -[here](http://next-console.kuzzle.io) to see how you can use the -[**Kuzzle Admin Console**](http://console.kuzzle.io) to browse your collection and -confirm that your document was saved. -::: - -::: info -Having trouble? Get in touch with us on [Discord!](http://join.discord.kuzzle.io) We're happy to help. -::: - -## Subscribe to realtime document notifications (pub/sub) - -Kuzzle provides pub/sub features that can be used to trigger real-time notifications based on the state of your data (for a deep-dive on notifications check out the [realtime notifications](/sdk/js/7/essentials/realtime-notifications) documentation). - -Let's get started. Create a `subscribe.js` file with following code: - -<<< ./snippets/subscribe.js - -This code does the following: - -- loads the `Kuzzle SDK` from its NPM package -- creates an instance of the SDK -- connects it to Kuzzle running on `localhost` with the `websocket` protocol -- defines a filter for the subscription to be done later (drivers with "B" license) -- defines a callback that will be called whenever a notification is received from Kuzzle (print driver name to console) -- subscribes for notifications on the `yellow-taxi` collection - -You can execute this code in the same page as before or in another page of your app. Whatever option you choose, to -execute the code, you just need to require it in your page - -```js -require('../path/to/subscribe.js'); -``` - -From now on, whenever you click the button we created before, Kuzzle will send a notification to the page containing -the subscription to the `yellow-taxi` collection. In the console corresponding to this page, you should see the following message: - -```bash -New driver Sirkis with id has B license. -``` - -In place of `` you'll see the ID that Kuzzle automatically generated for the document. - -::: success -Congratulations! You have just choreographed your first pub/sub pattern! -::: - -::: info -Having trouble? Get in touch with us on [Discord!](http://join.discord.kuzzle.io) We're happy to help. -::: - -## Where do we go from here? - -Now that you're more familiar with Kuzzle, dive even deeper to learn how to leverage its full capabilities: - -- take a look at the [SDK Reference](/sdk/js/7) -- learn how to use [Koncorde](/core/2/api/koncorde-filters-syntax) to create incredibly fine-grained and blazing-fast subscriptions -- follow our guide to learn how to implement [basic authentication](/core/2/guides/main-concepts/authentication#local-strategy) -- follow our guide to learn how to implement [manage users and setup fine-grained access control](/core/2/guides/main-concepts/permissions) diff --git a/doc/7/getting-started/webpack/snippets.disabled/create.js b/doc/7/getting-started/webpack/snippets.disabled/create.js deleted file mode 100644 index fe66ca6b5..000000000 --- a/doc/7/getting-started/webpack/snippets.disabled/create.js +++ /dev/null @@ -1,33 +0,0 @@ -// load the Kuzzle SDK module -import { Kuzzle, WebSocket } from 'kuzzle-sdk'; - -// instantiate a Kuzzle client -const kuzzle = new Kuzzle(new WebSocket('kuzzle')); - -// add a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error}`); -}); - -const doIt = async () => { - try { - // Connect to Kuzzle server - await kuzzle.connect(); - - // Create your document - const driver = { - name: 'Sirkis', - birthday: '1959-06-22', - license: 'B' - }; - - await kuzzle.document.create('nyc-open-data', 'yellow-taxi', driver); - console.log('New document successfully created!'); - } catch (error) { - console.error(error.message); - } finally { - kuzzle.disconnect(); - } -}; - -export default doIt; diff --git a/doc/7/getting-started/webpack/snippets.disabled/create.test.yml b/doc/7/getting-started/webpack/snippets.disabled/create.test.yml deleted file mode 100644 index 4cc80bc5e..000000000 --- a/doc/7/getting-started/webpack/snippets.disabled/create.test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: gettingstarted#webpackcreate -description: Creates a document -hooks: - before: | - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: doIt -expected: New document successfully created! - -runner: webpack -sdk: js -version: 7 diff --git a/doc/7/getting-started/webpack/snippets.disabled/init-kuzzle.js b/doc/7/getting-started/webpack/snippets.disabled/init-kuzzle.js deleted file mode 100644 index dd8476b40..000000000 --- a/doc/7/getting-started/webpack/snippets.disabled/init-kuzzle.js +++ /dev/null @@ -1,38 +0,0 @@ -// load the Kuzzle SDK module -/* snippet:start:1 */ -import { Kuzzle, WebSocket } from 'kuzzle-sdk'; -/* snippet:end */ - -// instantiate a Kuzzle client -/* snippet:start:2 */ -const kuzzle = new Kuzzle(new WebSocket('kuzzle')); -/* snippet:end */ - -// add a listener to detect any connection problems -/* snippet:start:3 */ -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error}`); -}); -/* snippet:end */ - -/* snippet:start:4 */ -const run = async () => { - try { - // Connect to Kuzzle server - await kuzzle.connect(); - - // Create an index - await kuzzle.index.create('nyc-open-data'); - - // Create a collection - await kuzzle.collection.create('nyc-open-data', 'yellow-taxi'); - console.log('nyc-open-data/yellow-taxi ready!'); - } catch (error) { - console.error(error.message); - } finally { - kuzzle.disconnect(); - } -}; -/* snippet:end */ - -run(); diff --git a/doc/7/getting-started/webpack/snippets.disabled/init-kuzzle.test.yml b/doc/7/getting-started/webpack/snippets.disabled/init-kuzzle.test.yml deleted file mode 100644 index 6d2364a01..000000000 --- a/doc/7/getting-started/webpack/snippets.disabled/init-kuzzle.test.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: gettingstarted#webpackinitkuzzle -description: Creates an index and a collection -hooks: - before: curl -X DELETE kuzzle:7512/nyc-open-data - after: -template: empty -expected: nyc-open-data/yellow-taxi ready! -sdk: js -version: 7 -runner: webpack diff --git a/doc/7/getting-started/webpack/snippets.disabled/subscribe.js b/doc/7/getting-started/webpack/snippets.disabled/subscribe.js deleted file mode 100644 index 892c99bcb..000000000 --- a/doc/7/getting-started/webpack/snippets.disabled/subscribe.js +++ /dev/null @@ -1,49 +0,0 @@ -// load the Kuzzle SDK module -import { Kuzzle, WebSocket } from 'kuzzle-sdk'; - -// instantiate a Kuzzle client -const kuzzle = new Kuzzle(new WebSocket('kuzzle')); - -// add a listener to detect any connection problems -kuzzle.on('networkError', error => { - console.error(`Network Error: ${error}`); -}); - -const doIt = async () => { - try { - // Connect to Kuzzle server - await kuzzle.connect(); - - // Define a filter - const filter = { - equals: { license: 'B' } - }; - - // Define a callback - const callback = notification => { - if ( - notification.type === 'document' && - notification.action === 'create' - ) { - const driver = notification.result._source; - const driverId = notification.result._id; - console.log( - `New driver ${driver.name} with id ${driverId} has B license.` - ); - } - }; - - // Subscribes to document notifications with our filter - await kuzzle.realtime.subscribe( - 'nyc-open-data', - 'yellow-taxi', - filter, - callback - ); - console.log('Successfully subscribed to document notifications!'); - } catch (error) { - console.error(error.message); - } -}; - -doIt(); diff --git a/doc/7/getting-started/webpack/snippets.disabled/subscribe.test.yml b/doc/7/getting-started/webpack/snippets.disabled/subscribe.test.yml deleted file mode 100644 index d438214ce..000000000 --- a/doc/7/getting-started/webpack/snippets.disabled/subscribe.test.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: gettingstarted#webpacksubscribe -description: Subscribes to document notifications -hooks: - before: | - curl -XPOST kuzzle:7512/nyc-open-data/_create - curl -XPUT kuzzle:7512/nyc-open-data/yellow-taxi - after: -template: createDocumentAfterSnippet -expected: - - Successfully subscribed to document notifications! - - New driver Sirkis with id -sdk: js -version: 7 -runner: webpack diff --git a/doc/7/protocols/http/constructor/index.md b/doc/7/protocols/http/constructor/index.md deleted file mode 100644 index 18e739997..000000000 --- a/doc/7/protocols/http/constructor/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -code: true -type: page -title: constructor -description: Creates a new Http protocol -order: 50 ---- - -# Constructor - -Use this constructor to create a new instance of the `Http` protocol with specific options. - -## Arguments - -```js -Http(host, [options]); -``` - -
- -| Argument | Type | Description | -|-----------|-------------------|------------------------------| -| `host` |
string
| Kuzzle server hostname or IP | -| `options` |
object
| Http connection options | - -### options - -Http protocol connection options. - -| Property | Type
(default) | Description | -|-----------------|----------------------------------|----------------------------------------------------------------------------------------| -| `customRoutes` |
object

(`{}`) | Add custom routes | -| `headers` |
object

(`{}`) | Default headers sent with each HTTP request | -| `port` |
number

(`7512`) | Kuzzle server port | -| `sslConnection` |
boolean

(`false`) | Use SSL to connect to Kuzzle server | -| `ssl` |
boolean

(`false`) | Use SSL to connect to Kuzzle server. Defaults to `true` for ports 443 and 7443. | -| `timeout` |
number

(`0`) | Connection timeout in milliseconds (`0` means no timeout) | - -**Note:** - -`customRoutes` are used to define plugins API routes or to overwrite existing API routes. -They must have the following format: -```js -{ - 'my-plugin/my-controller': { - action: { verb: 'GET', url: '/some/url' }, - action2: { verb: 'GET', url: '/some/url/with/:parameter' } - } -} -``` - - -## Return - -A `Http` protocol instance. - -## Usage - -<<< ./snippets/constructor.js diff --git a/doc/7/protocols/http/constructor/snippets/constructor.js b/doc/7/protocols/http/constructor/snippets/constructor.js deleted file mode 100644 index 35f07816e..000000000 --- a/doc/7/protocols/http/constructor/snippets/constructor.js +++ /dev/null @@ -1,29 +0,0 @@ -// Loads the Http protocol -const - { - Kuzzle, - Http - } = require('kuzzle-sdk'); - -const customRoutes = { - 'nyc-open-data-plugin/driver': { - enroll: { verb: 'POST', url: '/_plugin/nyc-open-data-plugin/drivers' }, - remove: { verb: 'DELETE', url: '/_plugin/nyc-open-data-plugin/drivers/:driverId' } - } -}; - -const headers = { - 'Accept-Encoding': 'gzip, deflate' -}; - -const options = { - customRoutes, - headers, - sslConnection: false -}; - -// Instantiates the Http protocol -const httpProtocol = new Http('kuzzle', options); - -// Use it with Kuzzle -const kuzzle = new Kuzzle(httpProtocol); diff --git a/doc/7/protocols/http/constructor/snippets/constructor.test.yml b/doc/7/protocols/http/constructor/snippets/constructor.test.yml deleted file mode 100644 index 35c10071d..000000000 --- a/doc/7/protocols/http/constructor/snippets/constructor.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: http#constructor -description: Creates a new Http instance -hooks: - before: - after: -template: empty -expected: Success -sdk: js -version: 7 diff --git a/doc/7/protocols/http/index.md b/doc/7/protocols/http/index.md index 1aff2a5df..10876e427 100644 --- a/doc/7/protocols/http/index.md +++ b/doc/7/protocols/http/index.md @@ -1,9 +1,98 @@ --- code: true -type: branch +type: page title: Http description: Http protocol documentation order: 600 --- - +# Http + +The Http protocol can be used by an instance of the SDK to communicate with your Kuzzle server. + +::: info +This protocol does not allow to use the [real-time notifications](/sdk/js/7/essentials/realtime-notifications). + +If you need real-time features, then you have to use the [WebSocket](/sdk/js/7/protocols/websocket) protocol. +::: + +## About HTTP routing + + + +This protocol needs to build routes from the name of the controller and the action used. These routes are made available by Kuzzle via the [server:publicApi](/core/2/api/controllers/server/public-api) method or the [server:info](/core/2/api/controllers/server/info) method. + + +For confidentiality reasons, it is preferable to expose only the `server:publicApi` route to the anonymous user. +If this route is not available, the SDK will use the static definition of API routes that does not include routes developed in plugins. + +Finally, it is also possible to manually define the routes to the actions of its plugins using the `customRoutes` option with the [Http protocol constructor](/sdk/js/7/protocols/http/constructor). + +# Properties + +| Property name | Type | Description | Get/Set | +| ------------- | ------------------ | --------------------------------------------------------------------- | ------- | +| `connected` |
boolean
| Always returns `true` | Get | +| `host` |
string
| Kuzzle server host | Get | +| `http` |
object
| Returns a list of available routes | Get | +| `routes` |
object
| Returns a list of available routes | Get | +| `port` |
number
| Kuzzle server port | Get | +| `protocol` |
string
| `https` or `http` | Get | +| `ssl` |
boolean
| `true` if ssl is active | Get | +| `timeout` |
number
| Connection timeout in milliseconds | Get/Set | + +**Note:** + +A `timeout` of 0 means that the connection will never timeout. + +# Constructor + +Use this constructor to create a new instance of the `Http` protocol with specific options. + +## Arguments + +```js +Http(host, [options]); +``` + +
+ +| Argument | Type | Description | +| --------- | ----------------- | ---------------------------- | +| `host` |
string
| Kuzzle server hostname or IP | +| `options` |
object
| Http connection options | + +### options + +Http protocol connection options. + +| Property | Type
(default) | Description | +| --------------- | -------------------------------- | --------------------------------------------------------------------------------------- | +| `customRoutes` |
object

(`{}`) | Add custom routes | +| `headers` |
object

(`{}`) | Default headers sent with each HTTP request | +| `port` |
number

(`7512`) | Kuzzle server port | +| `sslConnection` |
boolean

(`false`) | Use SSL to connect to Kuzzle server | +| `ssl` |
boolean

(`false`) | Use SSL to connect to Kuzzle server. Defaults to `true` for ports 443 and 7443. | +| `timeout` |
number

(`0`) | Connection timeout in milliseconds (`0` means no timeout) | + +**Note:** + +`customRoutes` are used to define plugins API routes or to overwrite existing API routes. +They must have the following format: + +```js +{ + 'my-plugin/my-controller': { + action: { verb: 'GET', url: '/some/url' }, + action2: { verb: 'GET', url: '/some/url/with/:parameter' } + } +} +``` + +## Return + +A `Http` protocol instance. + +## Usage + +<<< ./snippets/constructor.js diff --git a/doc/7/protocols/http/introduction/index.md b/doc/7/protocols/http/introduction/index.md deleted file mode 100644 index 7689b8a0b..000000000 --- a/doc/7/protocols/http/introduction/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -code: false -type: page -title: Introduction -description: Http protocol implementation -order: 0 ---- - -# Http - -The Http protocol can be used by an instance of the SDK to communicate with your Kuzzle server. - -::: info -This protocol does not allow to use the [real-time notifications](/sdk/js/7/essentials/realtime-notifications). - -If you need real-time features, then you have to use the [WebSocket](/sdk/js/7/protocols/websocket) protocol. -::: - -## About HTTP routing - - - -This protocol needs to build routes from the name of the controller and the action used. These routes are made available by Kuzzle via the [server:publicApi](/core/2/api/controllers/server/public-api) method or the [server:info](/core/2/api/controllers/server/info) method. - - - -For confidentiality reasons, it is preferable to expose only the `server:publicApi` route to the anonymous user. -If this route is not available, the SDK will use the static definition of API routes that does not include routes developed in plugins. - -Finally, it is also possible to manually define the routes to the actions of its plugins using the `customRoutes` option with the [Http protocol constructor](/sdk/js/7/protocols/http/constructor). diff --git a/doc/7/protocols/http/properties/index.md b/doc/7/protocols/http/properties/index.md deleted file mode 100644 index 23584b3ef..000000000 --- a/doc/7/protocols/http/properties/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -code: false -type: page -title: Properties -description: Http class properties -order: 10 ---- - - -# Properties - -| Property name | Type | Description | Get/Set | -| -------------------- | -------- | ---------------------| ---------| -| `connected` |
boolean
| Always returns `true` | Get | -| `host` |
string
| Kuzzle server host | Get | -| `http` |
object
| Returns a list of available routes | Get | -| `routes` |
object
| Returns a list of available routes | Get | -| `port` |
number
| Kuzzle server port | Get | -| `protocol` |
string
| `https` or `http` | Get | -| `ssl` |
boolean
| `true` if ssl is active | Get | -| `timeout` |
number
| Connection timeout in milliseconds | Get/Set | - -**Note:** - -A `timeout` of 0 means that the connection will never timeout. diff --git a/doc/7/protocols/http/snippets/constructor.js b/doc/7/protocols/http/snippets/constructor.js new file mode 100644 index 000000000..17e24cbb0 --- /dev/null +++ b/doc/7/protocols/http/snippets/constructor.js @@ -0,0 +1,28 @@ +// Loads the Http protocol +const { Kuzzle, Http } = require("kuzzle-sdk"); + +const customRoutes = { + "nyc-open-data-plugin/driver": { + enroll: { verb: "POST", url: "/_plugin/nyc-open-data-plugin/drivers" }, + remove: { + verb: "DELETE", + url: "/_plugin/nyc-open-data-plugin/drivers/:driverId", + }, + }, +}; + +const headers = { + "Accept-Encoding": "gzip, deflate", +}; + +const options = { + customRoutes, + headers, + sslConnection: false, +}; + +// Instantiates the Http protocol +const httpProtocol = new Http("kuzzle", options); + +// Use it with Kuzzle +const kuzzle = new Kuzzle(httpProtocol); diff --git a/doc/7/protocols/index.md b/doc/7/protocols/index.md index 2e126af8f..1019e83b5 100644 --- a/doc/7/protocols/index.md +++ b/doc/7/protocols/index.md @@ -1,7 +1,7 @@ --- code: false type: branch -order: 300 +order: 100 title: Protocols description: Javascript SDK v7.x protocols --- diff --git a/doc/7/protocols/websocket/constructor/index.md b/doc/7/protocols/websocket/constructor/index.md deleted file mode 100644 index c3f7fcea2..000000000 --- a/doc/7/protocols/websocket/constructor/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -code: true -type: page -title: constructor -description: Creates a new WebSocket protocol -order: 50 ---- - -# Constructor - -This constructor creates a new WebSocket connection, using the specified options. - -## Arguments - -```js -WebSocket(host, [options]); -``` - -
- -| Argument | Type | Description | -| --------- | ----------------- | ---------------------------- | -| `host` |
string
| Kuzzle server hostname or IP | -| `options` |
object
| WebSocket connection options | - -### options - -WebSocket protocol connection options. - -| Property | Type
(default) | Description | -| ------------------- | -------------------------------- | -------------------------------------------------------------------------------------------- | -| `autoReconnect` |
boolean

(`true`) | Automatically reconnect to kuzzle after a `disconnected` event | -| `headers` |
object
(`{}`) | Connection custom HTTP headers (e.g. origin, subprotocols, ...)
**(Not supported by browsers)** | -| `pingInterval` |
number

(`2000`) | Number of milliseconds between two pings | -| `port` |
number

(`7512`) | Kuzzle server port | -| `reconnectionDelay` |
number

(`1000`) | Number of milliseconds between reconnection attempts | -| `sslConnection` |
boolean

(`false`) | Use SSL to connect to Kuzzle server | -| `ssl` |
boolean

(`false`) | Use SSL to connect to Kuzzle server. Defaults to `true` for ports 443 and 7443. | - -## Return - -A `WebSocket` protocol instance. - -## Usage - -<<< ./snippets/constructor.js diff --git a/doc/7/protocols/websocket/constructor/snippets/constructor.js b/doc/7/protocols/websocket/constructor/snippets/constructor.js deleted file mode 100644 index 17fc0cd26..000000000 --- a/doc/7/protocols/websocket/constructor/snippets/constructor.js +++ /dev/null @@ -1,16 +0,0 @@ -// Loads the WebSocket protocol -const - { - Kuzzle, - WebSocket - } = require('kuzzle-sdk'); - -const options = { - autoReconnect: false -}; - -// Instantiates the websocket protocol -const websocketProtocol = new WebSocket('kuzzle', options); - -// Use it with Kuzzle -const kuzzle = new Kuzzle(websocketProtocol); diff --git a/doc/7/protocols/websocket/constructor/snippets/constructor.test.yml b/doc/7/protocols/websocket/constructor/snippets/constructor.test.yml deleted file mode 100644 index 6074dbfa5..000000000 --- a/doc/7/protocols/websocket/constructor/snippets/constructor.test.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: websocket#constructor -description: Creates a new WebSocket instance -hooks: - before: - after: -template: empty -expected: Success -sdk: js -version: 7 diff --git a/doc/7/protocols/websocket/index.md b/doc/7/protocols/websocket/index.md index 87838ce32..1bbf39793 100644 --- a/doc/7/protocols/websocket/index.md +++ b/doc/7/protocols/websocket/index.md @@ -1,9 +1,106 @@ --- code: true -type: branch +type: page title: WebSocket description: WebSocket protocol documentation order: 600 --- - +# WebSocket + +Inherits from: [KuzzleEventEmitter](/sdk/js/7/core-classes/kuzzle-event-emitter) + +The WebSocket protocol can be used by an instance of the SDK to communicate with your Kuzzle server. + +This protocol allows you to use all the features of Kuzzle, including [real-time notifications](/sdk/js/7/essentials/realtime-notifications). + +### Ping / Pong keep-alive + +Though Kuzzle's WebSocket server is fully compliant with the [RFC6455](https://tools.ietf.org/html/rfc6455#section-5.5.2), meaning (among other things) that Kuzzle will respond to PING packets with standard PONG ones, an additional PING request has been added in the protocol's application layer. + +This application-level PING has been especially added for web browsers, which don't allow sending PING packets. This can be troublesome if a web application needs to know if a connection has been severed, or if Kuzzle is configured to be in passive mode (i.e. it won't send PING requests by itself, and will close sockets if they are idle for too long). + +When run in a browser, our Javascript SDK uses that feature for its keep-alive mechanism: a message will periodically be sent to Kuzzle in the form `"{"p":1}"` through websocket. +That message will call a response from Kuzzle in the form `"{"p":2}"` for the SDK to keep the connection alive. + +### Cookie Authentication + +Kuzzle supports cookie authentications, meaning that when using this SDK in a browser, you can ask Kuzzle to return authentication tokens in secure cookies, handled by browsers. This means that, when using that option, browser clients will never have access to said tokens, preventing a few common attacks. +The support for cookie authentication can be enabled, using the [cookieAuth](/sdk/js/7/core-classes/kuzzle/constructor) option at the SDK initialization. + +When you enable the [cookieAuth](/sdk/js/7/core-classes/kuzzle/constructor) option, it changes the way the websocket protocol behaves when you're sending requests that should otherwise return authentication tokens in their response payload. + +When a request susceptible of changing an authentication cookie is about to be sent, the WebSocket Protocol send it using the [HTTP Protocol](/sdk/js/7/protocols/http/introduction) instead, to allow browsers to apply the received cookie. + +If a new cookie is received from Kuzzle that way, the WebSocket connection is automatically renewed. + +::: info +Cookies can only be applied to WebSocket connections during the connection handshake (upgrade from HTTP to WebSocket), and they stay valid as long as the connection is active, and as long as the cookie hasn't expired. +::: + +![websocket cookie authentication](./websocket-cookie-authentication.png) + +Here is a list of controller's actions that are affected by this behavior, when the [cookieAuth](/sdk/js/7/core-classes/kuzzle/constructor) option is enabled: + +- [auth:login](/sdk/js/7/controllers/auth/login) +- [auth:logout](/sdk/js/7/controllers/auth/logout) +- [auth:refreshToken](/sdk/js/7/controllers/auth/refresh-token) + +::: info +The behaviors described above are automatically handled by the SDK, you do not need to implement this yourself. +::: + +# Properties + +| Property name | Type | Description | +| ------------------- | ------------------ | ---------------------------------------------------- | +| `autoReconnect` |
boolean
| Automatically reconnect after a connection loss | +| `connected` |
boolean
| Returns `true` if the socket is open | +| `host` |
string
| Kuzzle server host | +| `pingInterval` |
number
| Number of milliseconds between two pings | +| `port` |
number
| Kuzzle server port | +| `reconnectionDelay` |
number
| Number of milliseconds between reconnection attempts | +| `ssl` |
boolean
| `true` if ssl is active | + +::: info +Updates to `autoReconnect` and `reconnectionDelay` properties will only take effect on the next `connect` call. +::: + +# Constructor + +This constructor creates a new WebSocket connection, using the specified options. + +## Arguments + +```js +WebSocket(host, [options]); +``` + +
+ +| Argument | Type | Description | +| --------- | ----------------- | ---------------------------- | +| `host` |
string
| Kuzzle server hostname or IP | +| `options` |
object
| WebSocket connection options | + +### options + +WebSocket protocol connection options. + +| Property | Type
(default) | Description | +| ------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------- | +| `autoReconnect` |
boolean

(`true`) | Automatically reconnect to kuzzle after a `disconnected` event | +| `headers` |
object
(`{}`) | Connection custom HTTP headers (e.g. origin, subprotocols, ...)
**(Not supported by browsers)** | +| `pingInterval` |
number

(`2000`) | Number of milliseconds between two pings | +| `port` |
number

(`7512`) | Kuzzle server port | +| `reconnectionDelay` |
number

(`1000`) | Number of milliseconds between reconnection attempts | +| `sslConnection` |
boolean

(`false`) | Use SSL to connect to Kuzzle server | +| `ssl` |
boolean

(`false`) | Use SSL to connect to Kuzzle server. Defaults to `true` for ports 443 and 7443. | + +## Return + +A `WebSocket` protocol instance. + +## Usage + +<<< ./snippets/constructor.js diff --git a/doc/7/protocols/websocket/introduction/index.md b/doc/7/protocols/websocket/introduction/index.md deleted file mode 100644 index 9fa15209e..000000000 --- a/doc/7/protocols/websocket/introduction/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -code: false -type: page -title: Introduction -description: Websocket protocol implementation -order: 0 ---- - -# WebSocket - -Inherits from: [KuzzleEventEmitter](/sdk/js/7/core-classes/kuzzle-event-emitter) - -The WebSocket protocol can be used by an instance of the SDK to communicate with your Kuzzle server. - -This protocol allows you to use all the features of Kuzzle, including [real-time notifications](/sdk/js/7/essentials/realtime-notifications). - -### Ping / Pong keep-alive - -Though Kuzzle's WebSocket server is fully compliant with the [RFC6455](https://tools.ietf.org/html/rfc6455#section-5.5.2), meaning (among other things) that Kuzzle will respond to PING packets with standard PONG ones, an additional PING request has been added in the protocol's application layer. - -This application-level PING has been especially added for web browsers, which don't allow sending PING packets. This can be troublesome if a web application needs to know if a connection has been severed, or if Kuzzle is configured to be in passive mode (i.e. it won't send PING requests by itself, and will close sockets if they are idle for too long). - -When run in a browser, our Javascript SDK uses that feature for its keep-alive mechanism: a message will periodically be sent to Kuzzle in the form `"{"p":1}"` through websocket. -That message will call a response from Kuzzle in the form `"{"p":2}"` for the SDK to keep the connection alive. - -### Cookie Authentication - -Kuzzle supports cookie authentications, meaning that when using this SDK in a browser, you can ask Kuzzle to return authentication tokens in secure cookies, handled by browsers. This means that, when using that option, browser clients will never have access to said tokens, preventing a few common attacks. -The support for cookie authentication can be enabled, using the [cookieAuth](/sdk/js/7/core-classes/kuzzle/constructor) option at the SDK initialization. - -When you enable the [cookieAuth](/sdk/js/7/core-classes/kuzzle/constructor) option, it changes the way the websocket protocol behaves when you're sending requests that should otherwise return authentication tokens in their response payload. - -When a request susceptible of changing an authentication cookie is about to be sent, the WebSocket Protocol send it using the [HTTP Protocol](/sdk/js/7/protocols/http/introduction) instead, to allow browsers to apply the received cookie. - -If a new cookie is received from Kuzzle that way, the WebSocket connection is automatically renewed. - -::: info -Cookies can only be applied to WebSocket connections during the connection handshake (upgrade from HTTP to WebSocket), and they stay valid as long as the connection is active, and as long as the cookie hasn't expired. -::: - -![websocket cookie authentication](./websocket-cookie-authentication.png) - -Here is a list of controller's actions that are affected by this behavior, when the [cookieAuth](/sdk/js/7/core-classes/kuzzle/constructor) option is enabled: -- [auth:login](/sdk/js/7/controllers/auth/login) -- [auth:logout](/sdk/js/7/controllers/auth/logout) -- [auth:refreshToken](/sdk/js/7/controllers/auth/refresh-token) - -::: info -The behaviors described above are automatically handled by the SDK, you do not need to implement this yourself. -::: \ No newline at end of file diff --git a/doc/7/protocols/websocket/properties/index.md b/doc/7/protocols/websocket/properties/index.md deleted file mode 100644 index f4a49c052..000000000 --- a/doc/7/protocols/websocket/properties/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -code: false -type: page -title: Properties -description: Websocket class properties -order: 10 ---- - -# Properties - -| Property name | Type | Description | -| -------------------- | -------- | ---------------------| -| `autoReconnect` |
boolean
| Automatically reconnect after a connection loss | -| `connected` |
boolean
| Returns `true` if the socket is open | -| `host` |
string
| Kuzzle server host | -| `pingInterval` |
number
| Number of milliseconds between two pings | -| `port` |
number
| Kuzzle server port | -| `reconnectionDelay` |
number
| Number of milliseconds between reconnection attempts | -| `ssl` |
boolean
| `true` if ssl is active | - -::: info -Updates to `autoReconnect` and `reconnectionDelay` properties will only take effect on the next `connect` call. -::: \ No newline at end of file diff --git a/doc/7/protocols/websocket/snippets/constructor.js b/doc/7/protocols/websocket/snippets/constructor.js new file mode 100644 index 000000000..39e4391e8 --- /dev/null +++ b/doc/7/protocols/websocket/snippets/constructor.js @@ -0,0 +1,13 @@ +// Loads the WebSocket protocol +const { Kuzzle, WebSocket } = require("kuzzle-sdk"); + +const options = { + autoReconnect: false, +}; + +// Instantiates the websocket protocol +const websocketProtocol = new WebSocket("kuzzle", options); + +// Use it with Kuzzle +// eslint-disable-next-line no-unused-vars +const kuzzle = new Kuzzle(websocketProtocol); diff --git a/doc/7/protocols/websocket/introduction/websocket-cookie-authentication.png b/doc/7/protocols/websocket/websocket-cookie-authentication.png similarity index 100% rename from doc/7/protocols/websocket/introduction/websocket-cookie-authentication.png rename to doc/7/protocols/websocket/websocket-cookie-authentication.png diff --git a/features/auth.feature b/features/auth.feature new file mode 100644 index 000000000..899740912 --- /dev/null +++ b/features/auth.feature @@ -0,0 +1,53 @@ +Feature: User management + + Scenario Outline: Get a valid JWT when login + Given Kuzzle Server is running + And there is an user with id 'my-user-id' + And the user has 'local' credentials with name 'my-user-name' and password 'my-user-pwd' + When I log in as : + Then the JWT is + Examples: + | user-name | user-pwd | jwt_validity | + | 'my-user-name' | 'my-user-pwd' | valid | + | 'my-user-name-w' | 'my-user-pwd' | invalid | + | 'my-user-name' | 'my-user-pwd-w' | invalid | + | 'my-user-name-w' | 'my-user-pwd-w' | invalid | + + Scenario Outline: Set user custom data (updateSelf) + Given Kuzzle Server is running + And there is an user with id 'my-user-id' + And the user has 'local' credentials with name 'my-user-name' and password 'my-user-pwd' + And I log in as 'my-user-name':'my-user-pwd' + And I update my user custom data with the pair : + When I get my user info + Then the response 'content' field contains the pair : + Examples: + | field-name | field-value | + | 'my_data' | 'mystringvalue' | + + Scenario: Login out shall revoke the JWT + Given Kuzzle Server is running + And there is an user with id 'my-user-id' + And the user has 'local' credentials with name 'my-user-name' and password 'my-user-pwd' + And I log in as 'my-user-name':'my-user-pwd' + And the JWT is valid + When I logout + Then the JWT is invalid + + Scenario: GetMyRights should return vector of rights + Given Kuzzle Server is running + And there is an user with id 'my-user-id' + And the user has 'local' credentials with name 'my-user-name' and password 'my-user-pwd' + And I log in as 'my-user-name':'my-user-pwd' + And I get my rights + Then I have a vector with 1 rights + + Scenario: RefreshToken should return a valid token + Given Kuzzle Server is running + And there is an user with id 'my-user-id' + And the user has 'local' credentials with name 'my-user-name' and password 'my-user-pwd' + And I log in as 'my-user-name':'my-user-pwd' + And the JWT is valid + When I refresh the JWT + Then the previous JWT is now invalid + And the JWT is valid diff --git a/features/collection.feature b/features/collection.feature new file mode 100644 index 000000000..96594688e --- /dev/null +++ b/features/collection.feature @@ -0,0 +1,68 @@ +Feature: Collection management + + Scenario: Create a collection + Given Kuzzle Server is running + And there is an index 'test-index' + When I create a collection 'collection-test-collection' + Then the collection 'collection-test-collection' should exist + + Scenario: Check if a collection exists + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + When I check if the collection 'test-collection' exists + Then the collection should exist + + Scenario: List existing collections + Given Kuzzle Server is running + And there is an index 'list-test-index' + And it has a collection 'test-collection1' + And it has a collection 'test-collection2' + When I list the collections of 'list-test-index' + Then the result contains 2 hits + And the content should not be null + + Scenario: Truncate a collection + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'my-document-id' + And the collection has a document with id 'my-document-id2' + When I truncate the collection 'test-collection' + Then the collection 'test-collection' should be empty + + Scenario: Create a collection with a custom mapping + Given Kuzzle Server is running + And there is an index 'test-index' + When I create a collection 'test-create-with-mapping' with a mapping + Then the collection 'test-create-with-mapping' should exist + And the mapping of 'test-create-with-mapping' should be updated + + Scenario: Update a collection with a custom mapping + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + When I update the mapping of collection 'test-collection' + Then the mapping of 'test-collection' should be updated + + Scenario: Update specifications + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + When I update the specifications of the collection 'test-collection' + Then the specifications of 'test-collection' should be updated + + Scenario: Validate specifications + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + When I validate the specifications of 'test-collection' + Then they should be validated + + Scenario: Delete specifications + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And has specifications + When I delete the specifications of 'test-collection' + Then the specifications of 'test-collection' must not exist diff --git a/features/documents.feature b/features/documents.feature new file mode 100644 index 000000000..ca99a4de2 --- /dev/null +++ b/features/documents.feature @@ -0,0 +1,236 @@ +Feature: Document management + + Scenario: Do not allow creating a document with an _id that already exist in the same collection + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'my-document-id' + When I create a document with id 'my-document-id' + Then I get an error with message 'Document already exists.' + + Scenario: Create a document with create + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection doesn't have a document with id 'my-document-id' + When I create a document with id 'my-document-id' + Then the document is successfully created + + Scenario: Create a document with createOrReplace if it does not exists + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection doesn't have a document with id 'my-document-id' + When I createOrReplace a document with id 'my-document-id' + Then the document is successfully created + + Scenario: Replace a document if it exists + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + When I createOrReplace a document with id 'my-document-id' + Then the document is successfully replaced + + Scenario: Replace a document + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'replace-my-document-id' + When I replace a document with id 'replace-my-document-id' + Then the document is successfully replaced + + Scenario: Delete a document + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'delete-my-document-id' + When I delete the document with id 'delete-my-document-id' + Then the document is successfully deleted + + Scenario: Update a document + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'update-my-document-id' + When I update a document with id 'update-my-document-id' + Then the document is successfully updated + + Scenario: Search a document by id and find it + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'search-my-document-id' + When I search a document with id 'search-my-document-id' + Then the document is successfully found + + Scenario: Search a document by id and don't find it + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'search-my-document-id' + When I search a document with id 'fake-id' + Then the document is not found + + Scenario: Search documents by query + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And I truncate the collection 'test-collection' + And the collection has a document with id 'search-my-document-id1' + And the collection has a document with id 'search-my-document-id2' + And the collection has a document with id 'search-my-document-id3' + And the collection has a document with id 'search-my-document-id4' + And the collection has a document with id 'search-my-document-id5' + When I search documents matching '{}' with from 0 and size 2 + Then The search result should have a total of 5 documents + And The search result should have fetched 2 documents + + Scenario: Search next documents + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And I truncate the collection 'test-collection' + And the collection has a document with id 'search-my-document-id1' + And the collection has a document with id 'search-my-document-id2' + And the collection has a document with id 'search-my-document-id3' + And the collection has a document with id 'search-my-document-id4' + And the collection has a document with id 'search-my-document-id5' + When I search documents matching '{}' with from 0 and size 2 + And I search the next documents + Then The search result should have a total of 5 documents + And The search result should have fetched 4 documents + + Scenario: Count documents in a collection + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'count-test-collection' + And the collection has a document with id 'count-my-document-id' + And the collection has a document with id 'count-my-document-id2' + And the collection has a document with id 'count-my-document-id3' + When I count how many documents there is in the collection + Then I shall receive 3 + + Scenario: Delete multiple documents with no error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'delete-test-collection' + And the collection has a document with id 'mdelete-my-document-id' + And the collection has a document with id 'mdelete-my-document-id2' + When I delete the documents ['mdelete-my-document-id', 'mdelete-my-document-id2'] + Then I must have 0 documents in the collection + + Scenario: Delete multiple documents with partial error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mdelete-test-collection' + And the collection has a document with id 'mdelete-my-document-id' + And the collection has a document with id 'mdelete-my-document-id2' + When I delete the documents ['mdelete-my-document-id', 'mdelete-my-document-unknown'] + Then I must have 1 documents in the collection + And I get an error in the errors array + + Scenario: Create multiple documents with no error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mcreate-test-collection' + And the collection doesn't have a document with id 'mcreate-my-document-id' + And the collection doesn't have a document with id 'mcreate-my-document-id2' + When I create the documents ['mcreate-my-document-id', 'mcreate-my-document-id2'] + Then I must have 2 documents in the collection + And I should have no errors in the errors array + + Scenario: Create multiple documents with partial error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mcreate-test-collection' + And the collection has a document with id 'mcreate-my-document-id' + When I create the documents ['mcreate-my-document-id', 'mcreate-my-document-id2'] + Then I must have 2 documents in the collection + And I get an error in the errors array + + Scenario: Replace multiple documents with no error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mreplace-test-collection' + And the collection has a document with id 'mreplace-my-document-id' + And the collection has a document with id 'mreplace-my-document-id2' + When I replace the documents ['mreplace-my-document-id', 'mreplace-my-document-id2'] + Then I should have no errors in the errors array + And the document 'mreplace-my-document-id' should be replaced + And the document 'mreplace-my-document-id2' should be replaced + + Scenario: Replace multiple documents with partial error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mreplace-test-collection' + And the collection has a document with id 'mreplace-my-document-id' + And the collection has a document with id 'mreplace-my-document-id2' + When I replace the documents ['unknown', 'mreplace-my-document-id2'] + And the document 'mreplace-my-document-id2' should be replaced + And I get an error in the errors array + + Scenario: Update multiple documents with no error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mreplace-test-collection' + And the collection has a document with id 'mreplace-my-document-id' + And the collection has a document with id 'mreplace-my-document-id2' + When I update the documents ['mreplace-my-document-id', 'mreplace-my-document-id2'] + Then I should have no errors in the errors array + And the document 'mreplace-my-document-id' should be replaced + And the document 'mreplace-my-document-id2' should be replaced + + Scenario: Update multiple documents with partial error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mupdate-test-collection' + And the collection has a document with id 'mupdate-my-document-id' + And the collection has a document with id 'mupdate-my-document-id2' + When I update the documents ['unknown', 'mupdate-my-document-id2'] + Then the document 'mupdate-my-document-id2' should be updated + And I get an error in the errors array + + Scenario: CreateOrReplace (create) multiple documents with no error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mcreateorreplace-test-collection' + When I createOrReplace the documents ['mcreateorreplace-my-document-id', 'mcreateorreplace-my-document-id2'] + Then I should have no errors in the errors array + And the document 'mcreateorreplace-my-document-id' should be created + And the document 'mcreateorreplace-my-document-id2' should be created + + Scenario: CreateOrReplace (replace) multiple documents with no error + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mcreateorreplace-test-collection' + And the collection has a document with id 'mcreateorreplace-my-document-id' + And the collection has a document with id 'mcreateorreplace-my-document-id2' + When I createOrReplace the documents ['mcreateorreplace-my-document-id', 'mcreateorreplace-my-document-id2'] + Then I should have no errors in the errors array + And the document 'mcreateorreplace-my-document-id' should be replaced + And the document 'mcreateorreplace-my-document-id2' should be replaced + + Scenario: Check if a document exists + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'exist-test-collection' + And the collection has a document with id 'exist-my-document-id' + When I check if 'exist-my-document-id' exists + Then the document should exist + + Scenario: Check if a document does not exists + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'exist-test-collection' + And the collection has a document with id 'exist-my-document-id' + When I check if 'exist-my-document-unknown' exists + Then the document should not exist + + Scenario: Get multiple document + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'mget-test-collection' + And the collection has a document with id 'mget-my-document-id' + And the collection has a document with id 'mget-my-document-id2' + When I get documents ['mget-my-document-id', 'mget-my-document-id2'] + Then the documents should be retrieved diff --git a/features/features b/features/features deleted file mode 160000 index 882e06649..000000000 --- a/features/features +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 882e066490b2ca6a6dd045fdcf65cc4d847b2785 diff --git a/features/index.feature b/features/index.feature new file mode 100644 index 000000000..e56ea9fb0 --- /dev/null +++ b/features/index.feature @@ -0,0 +1,20 @@ +Feature: Index controller + + Scenario: Create should return an error when the index already exist + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + When I create an index called 'test-index' + Then I get an error + + Scenario: Delete multiple indexes + Given Kuzzle Server is running + And there is the indexes 'test-index1' and 'test-index2' + When I delete the indexes 'test-index1' and 'test-index2' + Then indexes 'test-index1' and 'test-index2' don't exist + + Scenario: List indexes + Given Kuzzle Server is running + And there is the indexes 'test-index1' and 'test-index2' + When I list indexes + Then I get 'test-index1' and 'test-index2' diff --git a/features/realtime.feature b/features/realtime.feature new file mode 100644 index 000000000..0751f7e9e --- /dev/null +++ b/features/realtime.feature @@ -0,0 +1,45 @@ +Feature: Realtime subscription + + Scenario: Receive notifications when a document is created + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And I subscribe to 'test-collection' + When I create a document in 'test-collection' + Then I receive a notification + + Scenario: Receive notifications when a document is updated + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'my-document-id' + And I subscribe to 'test-collection' with '{"equals": {"foo": "barz"}}' as filter + When I update the document with id 'my-document-id' and content 'foo' = 'barz' + Then I receive a notification + + Scenario: Receive notifications when a document is deleted + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'my-document-id' + And I subscribe to 'test-collection' + When I delete the document with id 'my-document-id' + Then I receive a notification + + Scenario: Receive notifications when a document is published + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And I subscribe to 'test-collection' + When I publish a document + Then I receive a notification + + Scenario: Stop receiving notification when I unsubscribe + Given Kuzzle Server is running + And there is an index 'test-index' + And it has a collection 'test-collection' + And the collection has a document with id 'my-document-id' + And I subscribe to 'test-collection' + And I unsubscribe + When I publish a document + Then I do not receive a notification diff --git a/features/steps/auth.js b/features/steps/auth.js deleted file mode 100644 index 1745f6897..000000000 --- a/features/steps/auth.js +++ /dev/null @@ -1,79 +0,0 @@ -const { Given, When, Then } = require("cucumber"), - should = require("should"), - retry = require("retry"); - -Given("I log in as {string}:{string}", function (username, password) { - return this.kuzzle.auth - .login("local", { username, password }) - .then((jwt) => { - this.jwt = jwt; - }) - .catch((error) => { - this.jwt = "invalid"; - this.error = error; - }); -}); - -When("I logout", function () { - return this.kuzzle.auth.logout(); -}); - -When("I refresh the JWT", function (cb) { - this.previousJwt = this.jwt; - - // we have to wait for at least 1s: if we ask Kuzzle to refresh a JWT that - // has been generated during the same second, then the new JWT will be - // identical to the one being refreshed - setTimeout(() => { - this.kuzzle.auth - .refreshToken() - .then((token) => { - this.jwt = token.jwt; - cb(); - }) - .catch((err) => cb(err)); - }, 1000); -}); - -Then("the previous JWT is now invalid", function (cb) { - // prevent false positives, just in case - should(this.previousJwt).be.a.String().and.not.empty(); - should(this.previousJwt).not.eql(this.jwt); - - const op = retry.operation({ retries: 10, minTimeout: 500, factor: 1 }); - - op.attempt(() => { - this.kuzzle.auth - .checkToken(this.previousJwt) - .then((response) => { - const err = response.valid ? new Error("Unexpected valid token") : null; - - if (op.retry(err)) { - return; - } - - cb(err); - }) - .catch((err) => cb(err)); - }); -}); - -Then(/^the JWT is (in)?valid$/, function (not) { - return this.kuzzle.auth.checkToken(this.jwt).then((response) => { - if (not) { - should(response.valid).be.false(); - } else { - should(response.valid).be.true(); - } - }); -}); - -Given("I get my rights", function () { - return this.kuzzle.auth.getMyRights().then((rights) => { - this.rights = rights; - }); -}); - -Then("I have a vector with {int} rights", function (nbRights) { - should(this.rights).have.length(nbRights); -}); diff --git a/features/steps/auth.ts b/features/steps/auth.ts new file mode 100644 index 000000000..939ed2827 --- /dev/null +++ b/features/steps/auth.ts @@ -0,0 +1,109 @@ +/* eslint-disable no-invalid-this */ +import type { IWorld } from "@cucumber/cucumber"; +import { Given, Then, When } from "@cucumber/cucumber"; +import retry from "retry"; +import should from "should"; + +import type { Kuzzle } from "../../index"; + +type AuthWorld = IWorld & { + kuzzle: Kuzzle; + jwt: string | null; + previousJwt: string | null; + rights: unknown[] | null; + error: unknown; +}; + +Given( + "I log in as {string}:{string}", + async function (this: AuthWorld, username: string, password: string) { + try { + const jwt = await this.kuzzle.auth.login("local", { username, password }); + this.jwt = jwt; + } catch (error) { + this.jwt = "invalid"; + this.error = error; + } + }, +); + +When("I logout", async function (this: AuthWorld) { + await this.kuzzle.auth.logout(); +}); + +When("I refresh the JWT", async function (this: AuthWorld) { + this.previousJwt = this.jwt; + + // we have to wait for at least 1s: if we ask Kuzzle to refresh a JWT that + // has been generated during the same second, then the new JWT will be + // identical to the one being refreshed + await new Promise((resolve, reject) => { + setTimeout(() => { + this.kuzzle.auth + .refreshToken() + .then((token) => { + this.jwt = token.jwt; + resolve(); + }) + .catch((err) => reject(err)); + }, 1000); + }); +}); + +Then( + "the previous JWT is now invalid", + async function (this: AuthWorld) { + // prevent false positives, just in case + should(this.previousJwt).be.a.String().and.not.empty(); + should(this.previousJwt).not.eql(this.jwt); + + const op = retry.operation({ retries: 10, minTimeout: 500, factor: 1 }); + + await new Promise((resolve, reject) => { + op.attempt(() => { + this.kuzzle.auth + .checkToken(this.previousJwt as string) + .then((response) => { + const err = response.valid + ? new Error("Unexpected valid token") + : null; + + if (op.retry(err)) { + return; + } + + if (err) { + reject(err); + } else { + resolve(); + } + }) + .catch((err) => reject(err)); + }); + }); + }, +); + +Then( + /^the JWT is (in)?valid$/, + async function (this: AuthWorld, not?: string) { + const response = await this.kuzzle.auth.checkToken(this.jwt as string); + + if (not) { + should(response.valid).be.false(); + } else { + should(response.valid).be.true(); + } + }, +); + +Given("I get my rights", async function (this: AuthWorld) { + this.rights = await this.kuzzle.auth.getMyRights(); +}); + +Then( + "I have a vector with {int} rights", + function (this: AuthWorld, nbRights: number) { + should(this.rights).have.length(nbRights); + }, +); diff --git a/features/steps/collection.js b/features/steps/collection.js deleted file mode 100644 index 77d52dd17..000000000 --- a/features/steps/collection.js +++ /dev/null @@ -1,166 +0,0 @@ -const { Given, When, Then } = require("cucumber"); -const should = require("should"); - -Given("has specifications", function () { - return this.kuzzle.collection.updateSpecifications( - this.index, - this.collection, - { strict: true } - ); -}); - -Given("it has a collection {string}", function (collection) { - return this.kuzzle.collection.create(this.index, collection).then(() => { - this.collection = collection; - }); -}); - -Given("I truncate the collection {string}", function (collection) { - return this.kuzzle.collection.truncate(this.index, collection, { - refresh: "wait_for", - }); -}); - -When("I check if the collection {string} exists", function (collection) { - return this.kuzzle.collection - .exists(this.index, collection) - .then((content) => { - this.content = content; - }) - .catch((error) => { - this.error = error; - }); -}); - -When( - /^I create a collection '(.*?)'( with a mapping)?$/, - function (collection, withMapping) { - const mapping = withMapping - ? { properties: { gordon: { type: "keyword" } } } - : undefined; - - return this.kuzzle.collection - .create(this.index, collection, mapping) - .then((content) => { - this.content = content; - }) - .catch((error) => { - this.error = error; - }); - } -); - -When("I delete the specifications of {string}", function (collection) { - return this.kuzzle.collection - .deleteSpecifications(this.index, collection) - .catch((error) => { - this.error = error; - }); -}); - -When("I list the collections of {string}", function (index) { - return this.kuzzle.collection - .list(index) - .then((content) => { - this.content = content; - this.total = this.content.collections.length; - }) - .catch((error) => { - this.error = error; - }); -}); - -When("I update the mapping of collection {string}", function (collection) { - return this.kuzzle.collection - .updateMapping(this.index, collection, { - properties: { - gordon: { type: "keyword" }, - }, - }) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When( - "I update the specifications of the collection {string}", - function (collection) { - return this.kuzzle.collection - .updateSpecifications(this.index, collection, { strict: false }) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); - } -); - -When("I validate the specifications of {string}", function (collection) { - return this.kuzzle.collection - .validateSpecifications(this.index, collection, { strict: true }) - .then((content) => { - this.content = content; - }); -}); - -Then("the collection {string} should be empty", function (collection) { - return this.kuzzle.document - .search(this.index, collection, {}) - .then((result) => should(result.total).eql(0)); -}); - -Then(/^the collection(?: '(.*?)')? should exist$/, function (collection) { - const c = collection || this.collection; - - return this.kuzzle.collection - .exists(this.index, c) - .then((exists) => should(exists).be.true()); -}); - -Then("the mapping of {string} should be updated", function (collection) { - return this.kuzzle.collection - .getMapping(this.index, collection) - .then((mappings) => { - should(mappings).eql({ - dynamic: "true", - properties: { - gordon: { type: "keyword" }, - }, - }); - }); -}); - -Then("the specifications of {string} should be updated", function (collection) { - return this.kuzzle.collection - .getSpecifications(this.index, collection) - .then((specifications) => { - should(specifications.validation).eql({ strict: false }); - }); -}); - -Then( - "the specifications of {string} must not exist", - function (collection, cb) { - this.kuzzle.collection - .getSpecifications(this.index, collection) - .then(() => cb(new Error("Expected promise to be rejected"))) - .catch((error) => { - try { - should(error.status).eql(404); - cb(); - } catch (e) { - cb(e); - } - }); - } -); - -Then("they should be validated", function () { - should(this.content).eql({ - valid: true, - }); -}); diff --git a/features/steps/collection.ts b/features/steps/collection.ts new file mode 100644 index 000000000..5e1c7fbfb --- /dev/null +++ b/features/steps/collection.ts @@ -0,0 +1,221 @@ +/* eslint-disable no-invalid-this */ +import type { IWorld } from "@cucumber/cucumber"; +import { Given, Then, When } from "@cucumber/cucumber"; +import should from "should"; + +import type { Kuzzle } from "../../index"; + +type CollectionWorld = IWorld & { + kuzzle: Kuzzle; + index: string; + collection: string; + content: unknown; + error: unknown; + total: number | null; +}; + +Given( + "has specifications", + async function (this: CollectionWorld) { + await this.kuzzle.collection.updateSpecifications( + this.index, + this.collection, + { strict: true }, + ); + }, +); + +Given( + "it has a collection {string}", + async function (this: CollectionWorld, collection: string) { + await this.kuzzle.collection.create(this.index, collection, {}); + this.collection = collection; + }, +); + +Given( + "I truncate the collection {string}", + async function (this: CollectionWorld, collection: string) { + await this.kuzzle.collection.truncate(this.index, collection, { + refresh: "wait_for", + }); + }, +); + +When( + "I check if the collection {string} exists", + async function (this: CollectionWorld, collection: string) { + try { + this.content = await this.kuzzle.collection.exists( + this.index, + collection, + ); + } catch (error) { + this.error = error; + } + }, +); + +When( + /^I create a collection '(.*?)'( with a mapping)?$/, + async function ( + this: CollectionWorld, + collection: string, + withMapping?: string, + ) { + const mapping = withMapping + ? { properties: { gordon: { type: "keyword" } } } + : undefined; + + try { + this.content = await this.kuzzle.collection.create( + this.index, + collection, + mapping, + ); + } catch (error) { + this.error = error; + } + }, +); + +When( + "I delete the specifications of {string}", + async function (this: CollectionWorld, collection: string) { + try { + await this.kuzzle.collection.deleteSpecifications(this.index, collection); + } catch (error) { + this.error = error; + } + }, +); + +When( + "I list the collections of {string}", + async function (this: CollectionWorld, index: string) { + try { + const content = await this.kuzzle.collection.list(index); + this.content = content; + this.total = content.collections.length; + } catch (error) { + this.error = error; + } + }, +); + +When( + "I update the mapping of collection {string}", + async function (this: CollectionWorld, collection: string) { + try { + this.content = await this.kuzzle.collection.updateMapping( + this.index, + collection, + { + properties: { + gordon: { type: "keyword" }, + }, + }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I update the specifications of the collection {string}", + async function (this: CollectionWorld, collection: string) { + try { + this.content = await this.kuzzle.collection.updateSpecifications( + this.index, + collection, + { strict: false }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I validate the specifications of {string}", + async function (this: CollectionWorld, collection: string) { + this.content = await this.kuzzle.collection.validateSpecifications( + this.index, + collection, + { strict: true }, + ); + }, +); + +Then( + "the collection {string} should be empty", + async function (this: CollectionWorld, collection: string) { + const result = await this.kuzzle.document.search( + this.index, + collection, + {}, + ); + should(result.total).eql(0); + }, +); + +Then( + /^the collection(?: '(.*?)')? should exist$/, + async function (this: CollectionWorld, collection?: string) { + const c = collection || this.collection; + const exists = await this.kuzzle.collection.exists(this.index, c); + + should(exists).be.true(); + }, +); + +Then( + "the mapping of {string} should be updated", + async function (this: CollectionWorld, collection: string) { + const mappings = await this.kuzzle.collection.getMapping( + this.index, + collection, + ); + + should(mappings).eql({ + dynamic: "true", + properties: { + gordon: { type: "keyword" }, + }, + }); + }, +); + +Then( + "the specifications of {string} should be updated", + async function (this: CollectionWorld, collection: string) { + const specifications = await this.kuzzle.collection.getSpecifications( + this.index, + collection, + ); + + should(specifications.validation).eql({ strict: false }); + }, +); + +Then( + "the specifications of {string} must not exist", + async function (this: CollectionWorld, collection: string) { + try { + await this.kuzzle.collection.getSpecifications(this.index, collection); + throw new Error("Expected promise to be rejected"); + } catch (error) { + should((error as { status?: number }).status).eql(404); + } + }, +); + +Then( + "they should be validated", + function (this: CollectionWorld) { + should(this.content).eql({ + valid: true, + }); + }, +); diff --git a/features/steps/document.js b/features/steps/document.js deleted file mode 100644 index bdbdbac2b..000000000 --- a/features/steps/document.js +++ /dev/null @@ -1,404 +0,0 @@ -const { Given, When, Then } = require("cucumber"); -const should = require("should"); - -Given( - /^the collection doesn't have a document with id '(.*?)'$/, - function (id) { - return this.kuzzle.document - .delete(this.index, this.collection, id) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); - } -); - -Given("the collection has a document with id {string}", function (id) { - return this.kuzzle.document - .create(this.index, this.collection, { a: "document" }, id, { - refresh: "wait_for", - }) - .then((content) => { - this.content = content; - }); -}); - -Then("I get an error in the errors array", function () { - should(this.content.errors).be.Array().not.be.empty(); -}); - -Then("I should have no errors in the errors array", function () { - should(this.content.errors).be.empty(); -}); - -When("I check if {string} exists", function (id) { - return this.kuzzle.document - .exists(this.index, this.collection, id) - .then((content) => { - this.content = content; - }); -}); - -When("I count how many documents there is in the collection", function () { - return this.kuzzle.document - .count(this.index, this.collection, {}) - .then((content) => { - this.content = content; - }); -}); - -When("I create a document in {string}", function (collection) { - return this.kuzzle.document - .create(this.index, collection, { a: "document" }, "some-id", { - refresh: "wait_for", - }) - .then((content) => { - this.content = content; - }); -}); - -When("I create a document with id {string}", function (id) { - this.ids = [id]; - - return this.kuzzle.document - .create(this.index, this.collection, { a: "document" }, id, { - refresh: "wait_for", - }) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When("I create the documents [{string}, {string}]", function (id1, id2) { - this.ids = [id1, id2]; - - return this.kuzzle.document - .mCreate( - this.index, - this.collection, - [ - { _id: id1, body: { a: "document" } }, - { _id: id2, body: { a: "document" } }, - ], - { - refresh: "wait_for", - } - ) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When("I createOrReplace a document with id {string}", function (id) { - this.ids = [id]; - - return this.kuzzle.document - .createOrReplace( - this.index, - this.collection, - id, - { a: "replaced document" }, - { refresh: "wait_for" } - ) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When( - "I createOrReplace the documents [{string}, {string}]", - function (id1, id2) { - this.ids = [id1, id2]; - - return this.kuzzle.document - .mCreateOrReplace( - this.index, - this.collection, - [ - { _id: id1, body: { a: "replaced document" } }, - { _id: id2, body: { a: "replaced document" } }, - ], - { - refresh: "wait_for", - } - ) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); - } -); - -When("I delete the document with id {string}", function (id) { - this.ids = [id]; - - return this.kuzzle.document - .delete(this.index, this.collection, id) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When("I delete the documents [{string}, {string}]", function (id1, id2) { - this.ids = [id1, id2]; - - return this.kuzzle.document - .mDelete(this.index, this.collection, [id1, id2], { refresh: "wait_for" }) - .then((content) => { - this.content = content; - }) - .catch((error) => { - this.error = error; - }); -}); - -When("I replace a document with id {string}", function (id) { - this.ids = [id]; - - return this.kuzzle.document - .replace( - this.index, - this.collection, - id, - { a: "replaced document" }, - { refresh: "wait_for" } - ) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When("I replace the documents [{string}, {string}]", function (id1, id2) { - this.ids = [id1, id2]; - - return this.kuzzle.document - .mReplace( - this.index, - this.collection, - [ - { _id: id1, body: { a: "replaced document" } }, - { _id: id2, body: { a: "replaced document" } }, - ], - { refresh: "wait_for" } - ) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When("I get documents [{string}, {string}]", function (id1, id2) { - this.ids = [id1, id2]; - return this.kuzzle.document - .mGet(this.index, this.collection, [id1, id2]) - .then((content) => { - this.content = content; - }); -}); - -When("I search a document with id {string}", function (id) { - return this.kuzzle.document - .search(this.index, this.collection, { - query: { - match: { - _id: id, - }, - }, - }) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When( - "I search documents matching {string} with from {int} and size {int}", - function (query, from, size) { - return this.kuzzle.document - .search(this.index, this.collection, JSON.parse(query), { from, size }) - .then((content) => { - this.content = content; - }); - } -); - -When("I search the next documents", function () { - return this.content.next().then((content) => { - this.content = content; - }); -}); - -When("I update a document with id {string}", function (id) { - this.ids = [id]; - - return this.kuzzle.document - .update(this.index, this.collection, id, { some: "update" }) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -When( - "I update the document with id {string} and content {string} = {string}", - function (id, key, val) { - return this.kuzzle.document - .update(this.index, this.collection, id, { [key]: val }) - .then((content) => { - this.content = content; - }); - } -); - -When("I update the documents [{string}, {string}]", function (id1, id2) { - this.ids = [id1, id2]; - - return this.kuzzle.document - .mUpdate( - this.index, - this.collection, - [ - { _id: id1, body: { a: "replaced document", some: "update" } }, - { _id: id2, body: { a: "replaced document", some: "update" } }, - ], - { refresh: "wait_for" } - ) - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -Then("I get an error with message {string}", function (message) { - should(this.error).not.be.null(); - should(this.error.message).eql(message); -}); - -Then("I must have {int} documents in the collection", function (number) { - return this.kuzzle.document - .count(this.index, this.collection, {}) - .then((count) => should(count).eql(number)); -}); - -Then("the document is successfully created", function () { - return this.kuzzle.document - .get(this.index, this.collection, this.ids[0]) - .then((document) => should(document).be.an.Object()); -}); - -Then("the document is successfully deleted", function (cb) { - this.kuzzle.document - .get(this.index, this.collection, this.ids[0]) - .then(() => cb(new Error("Expected promise to be rejected"))) - .catch((error) => { - try { - should(error.status).eql(404); - cb(); - } catch (e) { - cb(e); - } - }); -}); - -Then(/^the document is (successfully|not) found$/, function (yesno) { - should(this.error).be.null(); - should(this.content.constructor.name).eql("DocumentSearchResult"); - should(this.content.total).eql(yesno === "successfully" ? 1 : 0); -}); - -Then("the document is successfully replaced", function () { - return this.kuzzle.document - .get(this.index, this.collection, this.ids[0]) - .then((document) => should(document._source.a).eql("replaced document")); -}); - -Then("the document is successfully updated", function () { - return this.kuzzle.document - .get(this.index, this.collection, this.ids[0]) - .then((document) => should(document._source.some).eql("update")); -}); - -Then("the document {string} should be created", function (id) { - return this.kuzzle.document - .get(this.index, this.collection, id) - .then((document) => should(document).not.be.null()); -}); - -Then("the document {string} should be replaced", function (id) { - return this.kuzzle.document - .get(this.index, this.collection, id) - .then((document) => should(document._source.a).eql("replaced document")); -}); - -Then("the document {string} should be updated", function (id) { - return this.kuzzle.document - .get(this.index, this.collection, id) - .then((document) => should(document._source.some).eql("update")); -}); - -Then(/^the document should (not )?exist$/, function (not) { - should(this.error).be.null(); - - if (not) { - should(this.content).be.false(); - } else { - should(this.content).be.true(); - } -}); - -Then("the documents should be retrieved", function () { - should(this.content.successes.length).eql(this.ids.length); - should(this.content.errors).be.empty(); - - const found = this.content.successes.map((r) => r._id); - - for (const id of this.ids) { - should(found.indexOf(id)).be.greaterThan(-1); - } -}); - -Then( - /^The search result should have (fetched|a total of) (\d+) documents$/, - function (what, number) { - should(this.content.constructor.name).eql("DocumentSearchResult"); - - let field; - switch (what) { - case "a total of": - field = "total"; - break; - case "fetched": - field = "fetched"; - break; - } - - should(this.content[field]).eql(number); - } -); diff --git a/features/steps/document.ts b/features/steps/document.ts new file mode 100644 index 000000000..5a1eae5ff --- /dev/null +++ b/features/steps/document.ts @@ -0,0 +1,525 @@ +/* eslint-disable no-invalid-this */ +import type { IWorld } from "@cucumber/cucumber"; +import { Given, Then, When } from "@cucumber/cucumber"; +import should from "should"; + +import type { Kuzzle } from "../../index"; + +type DocumentWorld = IWorld & { + kuzzle: Kuzzle; + index: string; + collection: string; + ids: string[]; + content: any; + error: any; +}; + +Given( + /^the collection doesn't have a document with id '(.*?)'$/, + async function (this: DocumentWorld, id: string) { + try { + this.content = await this.kuzzle.document.delete( + this.index, + this.collection, + id, + ); + } catch (err) { + this.error = err; + } + }, +); + +Given( + "the collection has a document with id {string}", + async function (this: DocumentWorld, id: string) { + this.content = await this.kuzzle.document.create( + this.index, + this.collection, + { a: "document" }, + id, + { + refresh: "wait_for", + }, + ); + }, +); + +Then( + "I get an error in the errors array", + function (this: DocumentWorld) { + should(this.content.errors).be.Array().not.be.empty(); + }, +); + +Then( + "I should have no errors in the errors array", + function (this: DocumentWorld) { + should(this.content.errors).be.empty(); + }, +); + +When( + "I check if {string} exists", + async function (this: DocumentWorld, id: string) { + this.content = await this.kuzzle.document.exists( + this.index, + this.collection, + id, + ); + }, +); + +When( + "I count how many documents there is in the collection", + async function (this: DocumentWorld) { + this.content = await this.kuzzle.document.count( + this.index, + this.collection, + {}, + ); + }, +); + +When( + "I create a document in {string}", + async function (this: DocumentWorld, collection: string) { + this.content = await this.kuzzle.document.create( + this.index, + collection, + { a: "document" }, + "some-id", + { + refresh: "wait_for", + }, + ); + }, +); + +When( + "I create a document with id {string}", + async function (this: DocumentWorld, id: string) { + this.ids = [id]; + + try { + this.content = await this.kuzzle.document.create( + this.index, + this.collection, + { a: "document" }, + id, + { + refresh: "wait_for", + }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I create the documents [{string}, {string}]", + async function (this: DocumentWorld, id1: string, id2: string) { + this.ids = [id1, id2]; + + try { + this.content = await this.kuzzle.document.mCreate( + this.index, + this.collection, + [ + { _id: id1, body: { a: "document" } }, + { _id: id2, body: { a: "document" } }, + ], + { + refresh: "wait_for", + }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I createOrReplace a document with id {string}", + async function (this: DocumentWorld, id: string) { + this.ids = [id]; + + try { + this.content = await this.kuzzle.document.createOrReplace( + this.index, + this.collection, + id, + { a: "replaced document" }, + { refresh: "wait_for" }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I createOrReplace the documents [{string}, {string}]", + async function (this: DocumentWorld, id1: string, id2: string) { + this.ids = [id1, id2]; + + try { + this.content = await this.kuzzle.document.mCreateOrReplace( + this.index, + this.collection, + [ + { _id: id1, body: { a: "replaced document" } }, + { _id: id2, body: { a: "replaced document" } }, + ], + { + refresh: "wait_for", + }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I delete the document with id {string}", + async function (this: DocumentWorld, id: string) { + this.ids = [id]; + + try { + this.content = await this.kuzzle.document.delete( + this.index, + this.collection, + id, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I delete the documents [{string}, {string}]", + async function (this: DocumentWorld, id1: string, id2: string) { + this.ids = [id1, id2]; + + try { + this.content = await this.kuzzle.document.mDelete( + this.index, + this.collection, + [id1, id2], + { refresh: "wait_for" }, + ); + } catch (error) { + this.error = error; + } + }, +); + +When( + "I replace a document with id {string}", + async function (this: DocumentWorld, id: string) { + this.ids = [id]; + + try { + this.content = await this.kuzzle.document.replace( + this.index, + this.collection, + id, + { a: "replaced document" }, + { refresh: "wait_for" }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I replace the documents [{string}, {string}]", + async function (this: DocumentWorld, id1: string, id2: string) { + this.ids = [id1, id2]; + + try { + this.content = await this.kuzzle.document.mReplace( + this.index, + this.collection, + [ + { _id: id1, body: { a: "replaced document" } }, + { _id: id2, body: { a: "replaced document" } }, + ], + { refresh: "wait_for" }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I get documents [{string}, {string}]", + async function (this: DocumentWorld, id1: string, id2: string) { + this.ids = [id1, id2]; + this.content = await this.kuzzle.document.mGet( + this.index, + this.collection, + [id1, id2], + ); + }, +); + +When( + "I search a document with id {string}", + async function (this: DocumentWorld, id: string) { + try { + this.content = await this.kuzzle.document.search( + this.index, + this.collection, + { + query: { + match: { + _id: id, + }, + }, + }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I search documents matching {string} with from {int} and size {int}", + async function ( + this: DocumentWorld, + query: string, + from: number, + size: number, + ) { + this.content = await this.kuzzle.document.search( + this.index, + this.collection, + JSON.parse(query), + { from, size }, + ); + }, +); + +When( + "I search the next documents", + async function (this: DocumentWorld) { + const nextPage = await this.content.next(); + this.content = nextPage; + }, +); + +When( + "I update a document with id {string}", + async function (this: DocumentWorld, id: string) { + this.ids = [id]; + + try { + this.content = await this.kuzzle.document.update( + this.index, + this.collection, + id, + { some: "update" }, + ); + } catch (err) { + this.error = err; + } + }, +); + +When( + "I update the document with id {string} and content {string} = {string}", + async function (this: DocumentWorld, id: string, key: string, val: string) { + this.content = await this.kuzzle.document.update( + this.index, + this.collection, + id, + { [key]: val }, + ); + }, +); + +When( + "I update the documents [{string}, {string}]", + async function (this: DocumentWorld, id1: string, id2: string) { + this.ids = [id1, id2]; + + try { + this.content = await this.kuzzle.document.mUpdate( + this.index, + this.collection, + [ + { _id: id1, body: { a: "replaced document", some: "update" } }, + { _id: id2, body: { a: "replaced document", some: "update" } }, + ], + { refresh: "wait_for" }, + ); + } catch (err) { + this.error = err; + } + }, +); + +Then( + "I get an error with message {string}", + function (this: DocumentWorld, message: string) { + should(this.error).not.be.null(); + should(this.error.message).eql(message); + }, +); + +Then( + "I must have {int} documents in the collection", + async function (this: DocumentWorld, number: number) { + const count = await this.kuzzle.document.count( + this.index, + this.collection, + {}, + ); + should(count).eql(number); + }, +); + +Then( + "the document is successfully created", + async function (this: DocumentWorld) { + const document = await this.kuzzle.document.get( + this.index, + this.collection, + this.ids[0], + ); + should(document).be.an.Object(); + }, +); + +Then( + "the document is successfully deleted", + async function (this: DocumentWorld) { + try { + await this.kuzzle.document.get(this.index, this.collection, this.ids[0]); + throw new Error("Expected promise to be rejected"); + } catch (error) { + should((error as any).status).eql(404); + } + }, +); + +Then( + /^the document is (successfully|not) found$/, + function (this: DocumentWorld, yesno: string) { + should(this.error).be.null(); + should(this.content.constructor.name).eql("DocumentSearchResult"); + should(this.content.total).eql(yesno === "successfully" ? 1 : 0); + }, +); + +Then( + "the document is successfully replaced", + async function (this: DocumentWorld) { + const document = await this.kuzzle.document.get( + this.index, + this.collection, + this.ids[0], + ); + should(document._source.a).eql("replaced document"); + }, +); + +Then( + "the document is successfully updated", + async function (this: DocumentWorld) { + const document = await this.kuzzle.document.get( + this.index, + this.collection, + this.ids[0], + ); + should(document._source.some).eql("update"); + }, +); + +Then( + "the document {string} should be created", + async function (this: DocumentWorld, id: string) { + const document = await this.kuzzle.document.get( + this.index, + this.collection, + id, + ); + should(document).not.be.null(); + }, +); + +Then( + "the document {string} should be replaced", + async function (this: DocumentWorld, id: string) { + const document = await this.kuzzle.document.get( + this.index, + this.collection, + id, + ); + should(document._source.a).eql("replaced document"); + }, +); + +Then( + "the document {string} should be updated", + async function (this: DocumentWorld, id: string) { + const document = await this.kuzzle.document.get( + this.index, + this.collection, + id, + ); + should(document._source.some).eql("update"); + }, +); + +Then( + /^the document should (not )?exist$/, + function (this: DocumentWorld, not?: string) { + should(this.error).be.null(); + + if (not) { + should(this.content).be.false(); + } else { + should(this.content).be.true(); + } + }, +); + +Then( + "the documents should be retrieved", + function (this: DocumentWorld) { + should(this.content.successes.length).eql(this.ids.length); + should(this.content.errors).be.empty(); + + const found = this.content.successes.map((r: { _id: string }) => r._id); + + for (const id of this.ids) { + should(found.indexOf(id)).be.greaterThan(-1); + } + }, +); + +Then( + /^The search result should have (fetched|a total of) (\d+) documents$/, + function (this: DocumentWorld, what: string, number: number) { + should(this.content.constructor.name).eql("DocumentSearchResult"); + + let field: "total" | "fetched" = "total"; + switch (what) { + case "a total of": + field = "total"; + break; + case "fetched": + field = "fetched"; + break; + } + + should(this.content[field]).eql(number); + }, +); diff --git a/features/steps/index.js b/features/steps/index.js deleted file mode 100644 index 992c49ba5..000000000 --- a/features/steps/index.js +++ /dev/null @@ -1,88 +0,0 @@ -const { Given, When, Then } = require("cucumber"); -const should = require("should"); - -Given("there is an index {string}", function (index) { - return this.kuzzle.index - .exists(index) - .then((exists) => { - if (!exists) { - return this.kuzzle.index.create(index); - } - - return null; - }) - .then(() => { - this.index = index; - }); -}); - -Given("there is no index called {string}", function (index) { - return this.kuzzle.index - .delete(index) - .then((content) => { - this.content = content; - }) - .catch(() => { - /* do nothing */ - }); -}); - -Given("there is the indexes {string} and {string}", function (index1, index2) { - const createIndex = async (index, exists) => { - if (!exists) { - await this.kuzzle.index.create(index); - await this.kuzzle.collection.create(index, "a-collection"); - } - }; - - return this.kuzzle.index - .exists(index1) - .then((exists) => createIndex(index1, exists)) - .then(() => this.kuzzle.index.exists(index2)) - .then((exists) => createIndex(index2, exists)); -}); - -When("I create an index called {string}", function (index) { - return this.kuzzle.index - .create(index) - .then((content) => { - this.content = content; - this.index = index; - }) - .catch((err) => { - this.error = err; - }); -}); - -When("I delete the indexes {string} and {string}", function (index1, index2) { - return this.kuzzle.index.mDelete([index1, index2]).then((content) => { - this.content = content; - }); -}); - -When("I list indexes", function () { - return this.kuzzle.index - .list() - .then((content) => { - this.content = content; - }) - .catch((err) => { - this.error = err; - }); -}); - -Then("the index should exist", function () { - return this.kuzzle.index - .exists(this.index) - .then((exists) => should(exists).be.true()); -}); - -Then("indexes {string} and {string} don't exist", function (index1, index2) { - const check = (index) => { - return this.kuzzle.index - .exists(index) - .then((exists) => should(exists).be.false()); - }; - - return check(index1).then(() => check(index2)); -}); diff --git a/features/steps/index.ts b/features/steps/index.ts new file mode 100644 index 000000000..4ac33f06e --- /dev/null +++ b/features/steps/index.ts @@ -0,0 +1,100 @@ +/* eslint-disable no-invalid-this */ +import type { IWorld } from "@cucumber/cucumber"; +import { Given, Then, When } from "@cucumber/cucumber"; +import should from "should"; + +import type { Kuzzle } from "../../index"; + +type IndexWorld = IWorld & { + kuzzle: Kuzzle; + index: string; + content: unknown; + error: unknown; +}; + +Given( + "there is an index {string}", + async function (this: IndexWorld, index: string) { + const exists = await this.kuzzle.index.exists(index); + + if (!exists) { + await this.kuzzle.index.create(index); + } + + this.index = index; + }, +); + +Given( + "there is no index called {string}", + async function (this: IndexWorld, index: string) { + try { + this.content = await this.kuzzle.index.delete(index); + } catch { + /* do nothing */ + } + }, +); + +Given( + "there is the indexes {string} and {string}", + async function (this: IndexWorld, index1: string, index2: string) { + const ensureIndex = async (index: string) => { + const exists = await this.kuzzle.index.exists(index); + + if (!exists) { + await this.kuzzle.index.create(index); + await this.kuzzle.collection.create(index, "a-collection", {}); + } + }; + + await ensureIndex(index1); + await ensureIndex(index2); + }, +); + +When( + "I create an index called {string}", + async function (this: IndexWorld, index: string) { + try { + this.content = await this.kuzzle.index.create(index); + this.index = index; + } catch (error) { + this.error = error; + } + }, +); + +When( + "I delete the indexes {string} and {string}", + async function (this: IndexWorld, index1: string, index2: string) { + this.content = await this.kuzzle.index.mDelete([index1, index2]); + }, +); + +When("I list indexes", async function (this: IndexWorld) { + try { + this.content = await this.kuzzle.index.list(); + } catch (error) { + this.error = error; + } +}); + +Then("the index should exist", async function (this: IndexWorld) { + const exists = await this.kuzzle.index.exists(this.index); + + should(exists).be.true(); +}); + +Then( + "indexes {string} and {string} don't exist", + async function (this: IndexWorld, index1: string, index2: string) { + const check = async (index: string) => { + const exists = await this.kuzzle.index.exists(index); + should(exists).be.false(); + }; + + await check(index1); + await check(index2); + }, +); diff --git a/features/steps/kuzzle.js b/features/steps/kuzzle.js deleted file mode 100644 index 2568a8a74..000000000 --- a/features/steps/kuzzle.js +++ /dev/null @@ -1,50 +0,0 @@ -const { Given, Then } = require("cucumber"); -const should = require("should"); - -Given("Kuzzle Server is running", function () { - return this.kuzzle.connect(); -}); - -Then(/^I get an error(?: with status (.*))?$/, function (status) { - should(this.error).not.be.null(); - - if (status) { - should(this.error.status).eql(parseInt(status)); - } -}); - -Then("I get {string} and {string}", function (string1, string2) { - should(this.content).be.an.Array(); - should(this.content.length).eql(2); - - for (const val of [string1, string2]) { - should(this.content.indexOf(val)).be.greaterThanOrEqual(0); - } -}); - -Then("the content should not be null", function () { - should(this.content).not.be.null(); -}); - -Then( - /^the response '(.*)' field contains the pair '(.*)':'(.*)'$/, - function (field, key, val) { - should(this.content[field][key]).eql(val); - } -); - -Then(/^I shall receive (.*?)$/, function (what) { - if (/^\d+$/.test(what)) { - what = parseInt(what); - } else if (/^[\d.]+$/.test(what)) { - what = parseFloat(what); - } else if (/(true|false)/.test.what) { - what = what === "true"; - } - - should(this.content).eql(what); -}); - -Then("the result contains {int} hits", function (hits) { - should(this.total).eql(hits); -}); diff --git a/features/steps/kuzzle.ts b/features/steps/kuzzle.ts new file mode 100644 index 000000000..1d13abe37 --- /dev/null +++ b/features/steps/kuzzle.ts @@ -0,0 +1,78 @@ +/* eslint-disable no-invalid-this */ +import type { IWorld } from "@cucumber/cucumber"; +import { Given, Then } from "@cucumber/cucumber"; +import should from "should"; + +import type { Kuzzle } from "../../index"; + +type KuzzleWorld = IWorld & { + kuzzle: Kuzzle; + error: any; + content: any; + total: number | null; +}; + +Given("Kuzzle Server is running", function (this: KuzzleWorld) { + return this.kuzzle.connect(); +}); + +Then( + /^I get an error(?: with status (.*))?$/, + function (this: KuzzleWorld, status?: string) { + should(this.error).not.be.null(); + + if (status) { + should(this.error.status).eql(parseInt(status, 10)); + } + }, +); + +Then( + "I get {string} and {string}", + function (this: KuzzleWorld, string1: string, string2: string) { + should(this.content).be.an.Array(); + should(this.content.length).eql(2); + + for (const val of [string1, string2]) { + should(this.content.indexOf(val)).be.greaterThanOrEqual(0); + } + }, +); + +Then( + "the content should not be null", + function (this: KuzzleWorld) { + should(this.content).not.be.null(); + }, +); + +Then( + /^the response '(.*)' field contains the pair '(.*)':'(.*)'$/, + function (this: KuzzleWorld, field: string, key: string, val: string) { + should(this.content[field][key]).eql(val); + }, +); + +Then( + /^I shall receive (.*?)$/, + function (this: KuzzleWorld, value: string) { + let expected: any = value; + + if (/^\d+$/.test(value)) { + expected = parseInt(value, 10); + } else if (/^[\d.]+$/.test(value)) { + expected = parseFloat(value); + } else if (/(true|false)/.test(value)) { + expected = value === "true"; + } + + should(this.content).eql(expected); + }, +); + +Then( + "the result contains {int} hits", + function (this: KuzzleWorld, hits: number) { + should(this.total).eql(hits); + }, +); diff --git a/features/steps/realtime.js b/features/steps/realtime.js deleted file mode 100644 index 2bd33eed4..000000000 --- a/features/steps/realtime.js +++ /dev/null @@ -1,49 +0,0 @@ -const { Given, When, Then } = require("cucumber"); -const should = require("should"); - -Given( - /^I subscribe to '(.*?)'(?: with '(.*)' as filter)?$/, - function (collection, filter) { - if (!filter) { - filter = "{}"; - } - - return this.kuzzle.realtime - .subscribe(this.index, collection, JSON.parse(filter), this.callback) - .then((content) => { - this.content = content; - }); - } -); - -Given("I unsubscribe", function () { - return this.kuzzle.realtime.unsubscribe(this.content); -}); - -When("I publish a document", function () { - return this.kuzzle.realtime.publish(this.index, this.collection, { - a: "document", - }); -}); - -Then("I receive a notification", function (cb) { - setTimeout(() => { - try { - should(this.notifications.length).eql(1); - cb(); - } catch (e) { - cb(e); - } - }, 1000); -}); - -Then("I do not receive a notification", function (cb) { - setTimeout(() => { - try { - should(this.notifications.length).eql(0); - cb(); - } catch (e) { - cb(e); - } - }, 1000); -}); diff --git a/features/steps/realtime.ts b/features/steps/realtime.ts new file mode 100644 index 000000000..e7310359c --- /dev/null +++ b/features/steps/realtime.ts @@ -0,0 +1,70 @@ +/* eslint-disable no-invalid-this */ +import type { IWorld } from "@cucumber/cucumber"; +import { Given, Then, When } from "@cucumber/cucumber"; +import should from "should"; + +import type { Kuzzle } from "../../index"; + +type RealtimeWorld = IWorld & { + kuzzle: Kuzzle; + index: string; + collection: string; + callback: (notification: unknown) => void; + content: string; + notifications: unknown[]; +}; + +Given( + /^I subscribe to '(.*?)'(?: with '(.*)' as filter)?$/, + async function (this: RealtimeWorld, collection: string, filter?: string) { + const parsedFilter = filter ? JSON.parse(filter) : {}; + + this.content = await this.kuzzle.realtime.subscribe( + this.index, + collection, + parsedFilter, + this.callback, + ); + }, +); + +Given("I unsubscribe", async function (this: RealtimeWorld) { + await this.kuzzle.realtime.unsubscribe(this.content); +}); + +When( + "I publish a document", + async function (this: RealtimeWorld) { + await this.kuzzle.realtime.publish(this.index, this.collection, { + a: "document", + }); + }, +); + +Then( + "I receive a notification", + function (this: RealtimeWorld, cb: (error?: unknown) => void) { + setTimeout(() => { + try { + should(this.notifications.length).eql(1); + cb(); + } catch (e) { + cb(e); + } + }, 1000); + }, +); + +Then( + "I do not receive a notification", + function (this: RealtimeWorld, cb: (error?: unknown) => void) { + setTimeout(() => { + try { + should(this.notifications.length).eql(0); + cb(); + } catch (e) { + cb(e); + } + }, 1000); + }, +); diff --git a/features/steps/security.js b/features/steps/security.js deleted file mode 100644 index c32435011..000000000 --- a/features/steps/security.js +++ /dev/null @@ -1,53 +0,0 @@ -const { Given, When } = require("cucumber"); - -Given("there is an user with id {string}", function (id) { - this.user = id; - - return this.kuzzle.security - .createOrReplaceProfile("test", { policies: [{ roleId: "admin" }] }) - .then(() => - this.kuzzle.security.createUser(id, { - content: { - profileIds: ["test"], - }, - credentials: {}, - }) - ) - .then((content) => { - this.content = content; - }) - .catch(() => { - /* do nothing */ - }); -}); - -Given( - "the user has {string} credentials with name {string} and password {string}", - function (strategy, username, password) { - return this.kuzzle.security - .createCredentials(strategy, this.user, { username, password }) - .catch(() => - this.kuzzle.security.updateCredentials(strategy, this.user, { - username, - password, - }) - ); - } -); - -When("I get my user info", function () { - return this.kuzzle.security.getUser(this.user).then((content) => { - this.content = content; - }); -}); - -When( - "I update my user custom data with the pair {string}:{string}", - function (key, val) { - return this.kuzzle.security - .updateUser(this.user, { [key]: val }) - .then((content) => { - this.content = content; - }); - } -); diff --git a/features/steps/security.ts b/features/steps/security.ts new file mode 100644 index 000000000..5e04e55f3 --- /dev/null +++ b/features/steps/security.ts @@ -0,0 +1,70 @@ +/* eslint-disable no-invalid-this */ +import type { IWorld } from "@cucumber/cucumber"; +import { Given, When } from "@cucumber/cucumber"; + +import type { Kuzzle } from "../../index"; + +type SecurityWorld = IWorld & { + kuzzle: Kuzzle; + user: string; + content: unknown; +}; + +Given( + "there is an user with id {string}", + async function (this: SecurityWorld, id: string) { + this.user = id; + + try { + await this.kuzzle.security.createOrReplaceProfile("test", { + policies: [{ roleId: "admin" }], + }); + + const content = await this.kuzzle.security.createUser(id, { + content: { + profileIds: ["test"], + }, + credentials: {}, + }); + + this.content = content; + } catch { + /* do nothing */ + } + }, +); + +Given( + "the user has {string} credentials with name {string} and password {string}", + async function ( + this: SecurityWorld, + strategy: string, + username: string, + password: string, + ) { + try { + await this.kuzzle.security.createCredentials(strategy, this.user, { + username, + password, + }); + } catch { + await this.kuzzle.security.updateCredentials(strategy, this.user, { + username, + password, + }); + } + }, +); + +When("I get my user info", async function (this: SecurityWorld) { + this.content = await this.kuzzle.security.getUser(this.user); +}); + +When( + "I update my user custom data with the pair {string}:{string}", + async function (this: SecurityWorld, key: string, val: string) { + this.content = await this.kuzzle.security.updateUser(this.user, { + [key]: val, + }); + }, +); diff --git a/features/support/hooks.js b/features/support/hooks.js deleted file mode 100644 index 379dd9038..000000000 --- a/features/support/hooks.js +++ /dev/null @@ -1,39 +0,0 @@ -const { Before, BeforeAll } = require("cucumber"); - -let _world; - -Before(function () { - _world = this; - return clean(); -}); - -BeforeAll(function () { - this.index = null; - this.collection = null; - this.ids = []; - this.user = null; - this.jwt = null; - - this.content = null; - this.error = null; - this.notifications = []; -}); - -function clean() { - const kuzzle = _world.kuzzle; - - return kuzzle - .connect() - .then(() => - kuzzle.query({ - controller: "admin", - action: "resetDatabase", - }) - ) - .catch((error) => { - // rethrow to get a readable error - // eslint-disable-next-line no-console - console.error(error); - throw error; - }); -} diff --git a/features/support/hooks.ts b/features/support/hooks.ts new file mode 100644 index 000000000..3e00e2225 --- /dev/null +++ b/features/support/hooks.ts @@ -0,0 +1,52 @@ +/* eslint-disable no-invalid-this */ + +import type { IWorld } from "@cucumber/cucumber"; +import { Before, BeforeAll } from "@cucumber/cucumber"; + +type HookWorld = IWorld & { + kuzzle: { + connect: () => Promise; + query: (payload: Record) => Promise; + }; + index: string | null; + collection: string | null; + ids: string[]; + user: string | null; + jwt: string | null; + content: unknown; + error: unknown; + notifications: unknown[]; +}; + +Before(async function () { + await clean(this); +}); + +BeforeAll(function () { + const world = this as unknown as HookWorld; + + world.index = null; + world.collection = null; + world.ids = []; + world.user = null; + world.jwt = null; + + world.content = null; + world.error = null; + world.notifications = []; +}); + +async function clean(world: HookWorld) { + try { + await world.kuzzle.connect(); + await world.kuzzle.query({ + controller: "admin", + action: "resetDatabase", + }); + } catch (error) { + // rethrow to get a readable error + // eslint-disable-next-line no-console + console.error(error); + throw error; + } +} diff --git a/features/support/world.js b/features/support/world.js deleted file mode 100644 index 8548e3ebf..000000000 --- a/features/support/world.js +++ /dev/null @@ -1,26 +0,0 @@ -const { setWorldConstructor } = require("cucumber"), - { Kuzzle, WebSocket } = require("../../index"); - -class World { - constructor() { - this.kuzzle = new Kuzzle(new WebSocket("localhost", { port: 7512 })); - - this.index = null; - this.collection = null; - this.ids = []; - this.user = null; - this.jwt = null; - this.rights = null; - this.previousJwt = null; - - this.content = null; - this.error = null; - this.notifications = []; - - this.callback = (notification) => { - this.notifications.push(notification); - }; - } -} - -setWorldConstructor(World); diff --git a/features/support/world.ts b/features/support/world.ts new file mode 100644 index 000000000..e9f18d2c5 --- /dev/null +++ b/features/support/world.ts @@ -0,0 +1,48 @@ +import type { IWorldOptions } from "@cucumber/cucumber"; +import { + setWorldConstructor, + World as CucumberWorld, +} from "@cucumber/cucumber"; + +import { Kuzzle, WebSocket } from "../../index"; + +class World extends CucumberWorld { + kuzzle: Kuzzle; + index: string | null; + collection: string | null; + ids: string[]; + user: string | null; + jwt: string | null; + rights: unknown[] | null; + previousJwt: string | null; + content: unknown; + error: unknown; + notifications: unknown[]; + total: number | null; + callback: (notification: unknown) => void; + + constructor(options: IWorldOptions) { + super(options); + + this.kuzzle = new Kuzzle(new WebSocket("localhost", { port: 7512 })); + + this.index = null; + this.collection = null; + this.ids = []; + this.user = null; + this.jwt = null; + this.rights = null; + this.previousJwt = null; + + this.content = null; + this.error = null; + this.notifications = []; + this.total = null; + + this.callback = (notification: unknown) => { + this.notifications.push(notification); + }; + } +} + +setWorldConstructor(World); diff --git a/index.ts b/index.ts index 8cd3c1731..e9730802a 100644 --- a/index.ts +++ b/index.ts @@ -1,36 +1,24 @@ -import { isBrowser } from './src/utils/browser'; +export * from "./src/Kuzzle"; +export * from "./src/protocols"; +export * from "./src/protocols/abstract/Base"; +export * from "./src/core/KuzzleEventEmitter"; -// defined by webpack plugin -declare var BUILT: any; +export * from "./src/core/searchResult/SearchResultBase"; +export * from "./src/core/searchResult/Document"; +export * from "./src/core/searchResult/Profile"; +export * from "./src/core/searchResult/Role"; +export * from "./src/core/searchResult/Specifications"; +export * from "./src/core/searchResult/User"; +export * from "./src/core/Observer"; +export * from "./src/core/RealtimeDocument"; +export * from "./src/core/batchWriter/BatchController"; -if (isBrowser() && typeof BUILT === 'undefined') { - throw new Error('It looks like you are using the Nodejs version of Kuzzle SDK ' + - 'in a browser. ' + - 'It is strongly recommended to use the browser-specific build instead. ' + - 'Learn more at https://github.com/kuzzleio/sdk-javascript/tree/master#browser'); -} +export * from "./src/types"; -export * from './src/Kuzzle'; -export * from './src/protocols'; -export * from './src/protocols/abstract/Base'; -export * from './src/core/KuzzleEventEmitter'; - -export * from './src/core/searchResult/SearchResultBase'; -export * from './src/core/searchResult/Document'; -export * from './src/core/searchResult/Profile'; -export * from './src/core/searchResult/Role'; -export * from './src/core/searchResult/Specifications'; -export * from './src/core/searchResult/User'; -export * from './src/core/Observer'; -export * from './src/core/RealtimeDocument'; -export * from './src/core/batchWriter/BatchController'; - -export * from './src/types'; - -export * from './src/controllers/Auth'; -export * from './src/controllers/Base'; -export * from './src/controllers/Collection'; -export * from './src/controllers/Document'; -export * from './src/controllers/Index'; -export * from './src/controllers/Realtime'; -export * from './src/controllers/Server'; +export * from "./src/controllers/Auth"; +export * from "./src/controllers/Base"; +export * from "./src/controllers/Collection"; +export * from "./src/controllers/Document"; +export * from "./src/controllers/Index"; +export * from "./src/controllers/Realtime"; +export * from "./src/controllers/Server"; diff --git a/package-lock.json b/package-lock.json index 29d6a32cb..f32daa036 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,110 +9,78 @@ "version": "7.15.1", "license": "Apache-2.0", "dependencies": { - "min-req-promise": "^1.0.1", - "ws": "^8.17.1" + "ws": "8.18.3" }, "devDependencies": { - "@babel/core": "^7.21.4", - "@babel/preset-env": "^7.21.4", - "@commitlint/cli": "^17.6.7", - "@commitlint/config-conventional": "^17.6.7", - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^10.0.1", - "@semantic-release/git": "^10.0.1", - "@semantic-release/release-notes-generator": "^11.0.4", - "@types/node": "^18.15.11", - "babel-loader": "^8.3.0", - "buffer": "^6.0.3", - "cucumber": "^6.0.5", - "cz-conventional-changelog": "^3.3.0", - "eslint-plugin-html": "^8.1.2", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-kuzzle": "^0.0.6", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^7.1.0", - "eslint-plugin-standard": "^5.0.0", - "https-browserify": "^1.0.0", - "lodash": "^4.17.21", - "lolex": "^6.0.0", - "mocha": "10.2.0", - "mock-require": "^3.0.3", - "nyc": "^15.1.0", - "proxyquire": "^2.1.3", - "retry": "^0.13.1", - "rewire": "^6.0.0", - "semantic-release-config-kuzzle": "^1.0.0", - "semantic-release-slack-bot": "^4.0.2", + "@cucumber/cucumber": "12.3.0", + "@types/node": "24.10.1", + "eslint-plugin-kuzzle": "0.0.15", + "lodash": "4.17.21", + "lolex": "6.0.0", + "mocha": "11.7.5", + "mock-require": "3.0.3", + "nyc": "17.1.0", + "retry": "0.13.1", + "rewire": "9.0.1", + "semantic-release-config-kuzzle": "1.1.2", "should": "13.2.3", "should-sinon": "0.0.6", - "sinon": "^14.0.2", - "stream-http": "^3.2.0", - "ts-morph": "^15.1.0", - "ts-node": "^10.9.1", - "typescript": "^4.9.5", - "url": "^0.11.0", - "webpack": "^5.79.0", - "webpack-cli": "^4.10.0" + "sinon": "21.0.0", + "ts-node": "10.9.2", + "typescript": "5.4.*", + "vite": "7.2.6" }, "engines": { "node": ">= 10.13.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -123,78 +91,73 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", - "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -203,3253 +166,2459 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", - "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": ">=6.9.0" + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "node_modules/@cucumber/ci-environment": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/ci-environment/-/ci-environment-12.0.0.tgz", + "integrity": "sha512-SqCEnbCNl3zCXCFpqGUuoaSNhLC0jLw4tKeFcAxTw9MD/QRlJjeAC/fyvVLFuXuSq0OunJlFfxLu+Z3HE+oLPg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cucumber/cucumber": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@cucumber/cucumber/-/cucumber-12.3.0.tgz", + "integrity": "sha512-36cIyplE1iDl12s4k6lBVpceua8tKLklFTf7CUITPrNHTLlQ/KBr7NYUUHviPzCbj2Ox3BPTZ6qkSLd6WMvVQg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@cucumber/ci-environment": "12.0.0", + "@cucumber/cucumber-expressions": "18.0.1", + "@cucumber/gherkin": "37.0.0", + "@cucumber/gherkin-streams": "6.0.0", + "@cucumber/gherkin-utils": "10.0.0", + "@cucumber/html-formatter": "22.2.0", + "@cucumber/junit-xml-formatter": "0.9.0", + "@cucumber/message-streams": "4.0.1", + "@cucumber/messages": "31.0.0", + "@cucumber/pretty-formatter": "1.0.1", + "@cucumber/tag-expressions": "8.1.0", + "assertion-error-formatter": "^3.0.0", + "capital-case": "^1.0.4", + "chalk": "^4.1.2", + "cli-table3": "0.6.5", + "commander": "^14.0.0", + "debug": "^4.3.4", + "error-stack-parser": "^2.1.4", + "figures": "^3.2.0", + "glob": "^13.0.0", + "has-ansi": "^4.0.1", + "indent-string": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-stream": "^2.0.0", + "knuth-shuffle-seeded": "^1.0.6", + "lodash.merge": "^4.6.2", + "lodash.mergewith": "^4.6.2", + "luxon": "3.7.2", + "mime": "^3.0.0", + "mkdirp": "^3.0.0", + "mz": "^2.7.0", + "progress": "^2.0.3", + "read-package-up": "^12.0.0", + "semver": "7.7.3", + "string-argv": "0.3.1", + "supports-color": "^8.1.1", + "type-fest": "^4.41.0", + "util-arity": "^1.1.0", + "yaml": "^2.2.2", + "yup": "1.7.1" + }, + "bin": { + "cucumber-js": "bin/cucumber.js" }, "engines": { - "node": ">=6.9.0" + "node": "20 || 22 || >=24" + }, + "funding": { + "url": "https://opencollective.com/cucumber" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "node_modules/@cucumber/cucumber-expressions": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/cucumber-expressions/-/cucumber-expressions-18.0.1.tgz", + "integrity": "sha512-NSid6bI+7UlgMywl5octojY5NXnxR9uq+JisjOrO52VbFsQM6gTWuQFE8syI10KnIBEdPzuEUSVEeZ0VFzRnZA==", "dev": true, - "engines": { - "node": ">=6.9.0" + "license": "MIT", + "dependencies": { + "regexp-match-indices": "1.0.2" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "node_modules/@cucumber/cucumber/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "node_modules/@cucumber/cucumber/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "node_modules/@cucumber/cucumber/node_modules/chalk/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": { - "@babel/types": "^7.20.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "node_modules/@cucumber/cucumber/node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.20.0" + "string-width": "^4.2.0" }, "engines": { - "node": ">=6.9.0" + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "node_modules/@cucumber/cucumber/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.9.0" + "node": ">=7.0.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "node_modules/@cucumber/cucumber/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cucumber/cucumber/node_modules/commander": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=20" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "node_modules/@cucumber/cucumber/node_modules/glob": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "node_modules/@cucumber/cucumber/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "node_modules/@cucumber/cucumber/node_modules/hosted-git-info": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.2.tgz", + "integrity": "sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==", "dev": true, + "license": "ISC", "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "lru-cache": "^11.1.0" }, "engines": { - "node": ">=6.9.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "node_modules/@cucumber/cucumber/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@cucumber/cucumber/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=6.9.0" + "node": "20 || >=22" } }, - "node_modules/@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "node_modules/@cucumber/cucumber/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", "bin": { - "parser": "bin/babel-parser.js" + "mime": "cli.js" }, "engines": { - "node": ">=6.0.0" + "node": ">=10.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "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.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "node_modules/@cucumber/cucumber/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "20 || >=22" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", - "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "node_modules/@cucumber/cucumber/node_modules/normalize-package-data": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-8.0.0.tgz", + "integrity": "sha512-RWk+PI433eESQ7ounYxIp67CYuVsS1uYSonX3kA6ps/3LWfjVQa/ptEg6Y3T6uAMq1mWpX9PQ+qx+QaHpsc7gQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.7" + "hosted-git-info": "^9.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" + "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "node_modules/@cucumber/cucumber/node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=18" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "node_modules/@cucumber/cucumber/node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=6.9.0" + "node": "20 || >=22" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", - "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "node_modules/@cucumber/cucumber/node_modules/read-package-up": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-12.0.0.tgz", + "integrity": "sha512-Q5hMVBYur/eQNWDdbF4/Wqqr9Bjvtrw2kjGxxBbKLbx8bVCL8gcArjTy8zDUuLGQicftpMuU0riQNcAsbtOVsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "find-up-simple": "^1.0.1", + "read-pkg": "^10.0.0", + "type-fest": "^5.2.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=20" }, - "peerDependencies": { - "@babel/core": "^7.12.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "node_modules/@cucumber/cucumber/node_modules/read-package-up/node_modules/type-fest": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.3.0.tgz", + "integrity": "sha512-d9CwU93nN0IA1QL+GSNDdwLAu1Ew5ZjTwupvedwg3WdfoH6pIDvYQ2hV0Uc2nKBLPq7NB5apCx57MLS5qlmO5g==", "dev": true, + "license": "(MIT OR CC0-1.0)", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "tagged-tag": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=20" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "node_modules/@cucumber/cucumber/node_modules/read-pkg": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-10.0.0.tgz", + "integrity": "sha512-A70UlgfNdKI5NSvTTfHzLQj7NJRpJ4mT5tGafkllJ4wh71oYuGm/pzphHcmW4s35iox56KSK721AihodoXSc/A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@types/normalize-package-data": "^2.4.4", + "normalize-package-data": "^8.0.0", + "parse-json": "^8.3.0", + "type-fest": "^5.2.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=20" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "node_modules/@cucumber/cucumber/node_modules/read-pkg/node_modules/type-fest": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.3.0.tgz", + "integrity": "sha512-d9CwU93nN0IA1QL+GSNDdwLAu1Ew5ZjTwupvedwg3WdfoH6pIDvYQ2hV0Uc2nKBLPq7NB5apCx57MLS5qlmO5g==", "dev": true, + "license": "(MIT OR CC0-1.0)", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "tagged-tag": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=20" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", - "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "node_modules/@cucumber/cucumber/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=10" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "node_modules/@cucumber/cucumber/node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=0.6.19" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "node_modules/@cucumber/cucumber/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "node_modules/@cucumber/cucumber/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "node_modules/@cucumber/cucumber/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6.9.0" + "node": ">=16" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "node_modules/@cucumber/gherkin": { + "version": "37.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-37.0.0.tgz", + "integrity": "sha512-vKJVJ6h4HCktG870wgYUUskNpFxbFI0WmAkVLPTz1LlLwJX7/KOBqFcr2/L3u0pPoHjbLRW+IpbiXLT2T13/wg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/messages": ">=31.0.0 <32" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", - "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "node_modules/@cucumber/gherkin-streams": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin-streams/-/gherkin-streams-6.0.0.tgz", + "integrity": "sha512-HLSHMmdDH0vCr7vsVEURcDA4WwnRLdjkhqr6a4HQ3i4RFK1wiDGPjBGVdGJLyuXuRdJpJbFc6QxHvT8pU4t6jw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "commander": "14.0.0", + "source-map-support": "0.5.21" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "gherkin-javascript": "bin/gherkin" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/gherkin": ">=22.0.0", + "@cucumber/message-streams": ">=4.0.0", + "@cucumber/messages": ">=17.1.1" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "node_modules/@cucumber/gherkin-streams/node_modules/commander": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", + "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=20" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@cucumber/gherkin-utils": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin-utils/-/gherkin-utils-10.0.0.tgz", + "integrity": "sha512-BcujlDT343GXXNrMPl3ws6Il3zs8dQw3Yp/d3HnOJF8i2snGGgiapoTbko7MdvAt7ivDL7SDo+e1d5Cnpl3llA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@cucumber/gherkin": "^34.0.0", + "@cucumber/messages": "^29.0.0", + "@teppeis/multimaps": "3.0.0", + "commander": "14.0.0", + "source-map-support": "^0.5.21" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "gherkin-utils": "bin/gherkin-utils" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin": { + "version": "34.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/gherkin/-/gherkin-34.0.0.tgz", + "integrity": "sha512-659CCFsrsyvuBi/Eix1fnhSheMnojSfnBcqJ3IMPNawx7JlrNJDcXYSSdxcUw3n/nG05P+ptCjmiZY3i14p+tA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/messages": ">=19.1.4 <29" } }, - "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==", + "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin/node_modules/@cucumber/messages": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-28.1.0.tgz", + "integrity": "sha512-2LzZtOwYKNlCuNf31ajkrekoy2M4z0Z1QGiPH40n4gf5t8VOUFb7m1ojtR4LmGvZxBGvJZP8voOmRqDWzBzYKA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/uuid": "10.0.0", + "class-transformer": "0.5.1", + "reflect-metadata": "0.2.2", + "uuid": "11.1.0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages": { + "version": "29.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-29.0.1.tgz", + "integrity": "sha512-aAvIYfQD6/aBdF8KFQChC3CQ1Q+GX9orlR6GurGiX6oqaCnBkxA4WU3OQUVepDynEFrPayerqKRFcAMhdcXReQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "class-transformer": "0.5.1", + "reflect-metadata": "0.2.2" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "node_modules/@cucumber/gherkin-utils/node_modules/commander": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", + "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=20" } }, - "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==", + "node_modules/@cucumber/gherkin-utils/node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" } }, - "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==", + "node_modules/@cucumber/html-formatter": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-22.2.0.tgz", + "integrity": "sha512-fUNC/KngTIz+hAQ2Yr4XjdYq+MO60PwK9SidxBQ54jNI1Vw7erlgsPq0TOWneCIvdjU3qp+YDqYG1hw3zuUuDA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, + "license": "MIT", "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/messages": ">=18" } }, - "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==", + "node_modules/@cucumber/junit-xml-formatter": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@cucumber/junit-xml-formatter/-/junit-xml-formatter-0.9.0.tgz", + "integrity": "sha512-WF+A7pBaXpKMD1i7K59Nk5519zj4extxY4+4nSgv5XLsGXHDf1gJnb84BkLUzevNtp2o2QzMG0vWLwSm8V5blw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@cucumber/query": "^14.0.1", + "@teppeis/multimaps": "^3.0.0", + "luxon": "^3.5.0", + "xmlbuilder": "^15.1.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/messages": "*" } }, - "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==", + "node_modules/@cucumber/message-streams": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-4.0.1.tgz", + "integrity": "sha512-Kxap9uP5jD8tHUZVjTWgzxemi/0uOsbGjd4LBOSxcJoOCRbESFwemUzilJuzNTB8pcTQUh8D5oudUyxfkJOKmA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, + "license": "MIT", "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/messages": ">=17.1.1" } }, - "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==", + "node_modules/@cucumber/messages": { + "version": "31.0.0", + "resolved": "https://registry.npmjs.org/@cucumber/messages/-/messages-31.0.0.tgz", + "integrity": "sha512-Dqhatp4AjMsH9SREfWz3Q8nlGuwJMTW7YAW5L3OzRId86ZUEu/a8vIL1RO2c0agQefuBS2SVH9fEZ66ovrMYRA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "class-transformer": "0.5.1", + "reflect-metadata": "0.2.2" } }, - "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==", + "node_modules/@cucumber/pretty-formatter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@cucumber/pretty-formatter/-/pretty-formatter-1.0.1.tgz", + "integrity": "sha512-A1lU4VVP0aUWdOTmpdzvXOyEYuPtBDI0xYwYJnmoMDplzxMdhcHk86lyyvYDoMoPzzq6OkOE3isuosvUU4X7IQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "ansi-styles": "^5.0.0", + "cli-table3": "^0.6.0", + "figures": "^3.2.0", + "ts-dedent": "^2.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/cucumber": ">=7.0.0", + "@cucumber/messages": "*" } }, - "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==", + "node_modules/@cucumber/pretty-formatter/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "license": "MIT", + "engines": { + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", + "node_modules/@cucumber/pretty-formatter/node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "string-width": "^4.2.0" }, "engines": { - "node": ">=6.9.0" + "node": "10.* || >= 12.*" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@cucumber/pretty-formatter/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", - "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "node_modules/@cucumber/pretty-formatter/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "node_modules/@cucumber/query": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@cucumber/query/-/query-14.6.0.tgz", + "integrity": "sha512-bPbfpkDsFCBn95erh3un76QViPqGAo3T7iYews0yA3/JRNoV009s7acxxY+f+OMABPFl0TJVIZlvqX+KayQ+Eg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" + "@teppeis/multimaps": "3.0.0", + "lodash.sortby": "^4.7.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@cucumber/messages": "*" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "node_modules/@cucumber/tag-expressions": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@cucumber/tag-expressions/-/tag-expressions-8.1.0.tgz", + "integrity": "sha512-UFeOVUyc711/E7VHjThxMwg3jbGod9TlbM1gxNixX/AGDKg82Eha4cE0tKki3GGUs7uB2NyI+hQAuhB8rL2h5A==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", - "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/template": "^7.20.7" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", - "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", - "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-identifier": "^7.19.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz", - "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", - "@babel/plugin-proposal-async-generator-functions": "^7.20.7", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.21.0", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.21.0", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.20.7", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.20.7", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.21.0", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-modules-systemjs": "^7.20.11", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.21.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.20.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.21.4", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "@eslint/core": "^0.17.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@types/json-schema": "^7.0.15" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.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.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "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", + "peer": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "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": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz", - "integrity": "sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "dependencies": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.11" + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, + "license": "MIT", + "peer": true + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", - "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "optional": true, - "peer": true, + "license": "Apache-2.0", "engines": { - "node": ">=0.1.90" + "node": ">=18.18.0" } }, - "node_modules/@commitlint/cli": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.7.1.tgz", - "integrity": "sha512-BCm/AT06SNCQtvFv921iNhudOHuY16LswT0R3OeolVGLk8oP+Rk9TfQfgjH7QPMjhvp76bNqGFEcpKojxUNW1g==", + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@commitlint/format": "^17.4.4", - "@commitlint/lint": "^17.7.0", - "@commitlint/load": "^17.7.1", - "@commitlint/read": "^17.5.1", - "@commitlint/types": "^17.4.4", - "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "commitlint": "cli.js" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": ">=v14" + "node": ">=18.18.0" } }, - "node_modules/@commitlint/cli/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", + "peer": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=12" + "node": ">=10.10.0" } }, - "node_modules/@commitlint/cli/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "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, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/cli/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@commitlint/cli/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/@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==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, - "engines": { - "node": ">=10.17.0" - } + "license": "BSD-3-Clause", + "peer": true }, - "node_modules/@commitlint/cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@commitlint/cli/node_modules/npm-run-path": { + "node_modules/@isaacs/balanced-match": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": "20 || >=22" } }, - "node_modules/@commitlint/cli/node_modules/resolve-from": { + "node_modules/@isaacs/brace-expansion": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, "engines": { - "node": ">=8" + "node": "20 || >=22" } }, - "node_modules/@commitlint/cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@commitlint/cli/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@commitlint/cli/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/cli/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@commitlint/config-conventional": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.7.0.tgz", - "integrity": "sha512-iicqh2o6et+9kWaqsQiEYZzfLbtoWv9uZl8kbI8EGfnc0HeGafQBF7AJ0ylN9D/2kj6txltsdyQs8+2fTMwWEw==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { - "conventional-changelog-conventionalcommits": "^6.1.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=v14" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@commitlint/config-validator": { - "version": "17.6.7", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.6.7.tgz", - "integrity": "sha512-vJSncmnzwMvpr3lIcm0I8YVVDJTzyjy7NZAeXbTXy+MPUdAr9pKyyg7Tx/ebOQ9kqzE6O9WT6jg2164br5UdsQ==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { - "@commitlint/types": "^17.4.4", - "ajv": "^8.11.0" + "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": ">=v14" + "node": ">=8" } }, - "node_modules/@commitlint/config-validator/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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, + "license": "MIT", "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" + "sprintf-js": "~1.0.2" } }, - "node_modules/@commitlint/config-validator/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/@commitlint/ensure": { - "version": "17.6.7", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.6.7.tgz", - "integrity": "sha512-mfDJOd1/O/eIb/h4qwXzUxkmskXDL9vNPnZ4AKYKiZALz4vHzwMxBSYtyL2mUIDeU9DRSpEUins8SeKtFkYHSw==", + "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, + "license": "MIT", "dependencies": { - "@commitlint/types": "^17.4.4", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=v14" + "node": ">=8" } }, - "node_modules/@commitlint/execute-rule": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz", - "integrity": "sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, - "engines": { - "node": ">=v14" + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@commitlint/format": { - "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz", - "integrity": "sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==", + "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, + "license": "MIT", "dependencies": { - "@commitlint/types": "^17.4.4", - "chalk": "^4.1.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=v14" + "node": ">=8" } }, - "node_modules/@commitlint/format/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/@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, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@commitlint/format/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/@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, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/@commitlint/format/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/@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, - "dependencies": { - "color-name": "~1.1.4" - }, + "license": "MIT", "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/@commitlint/format/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/@commitlint/format/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/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@commitlint/format/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@commitlint/is-ignored": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.7.0.tgz", - "integrity": "sha512-043rA7m45tyEfW7Zv2vZHF++176MLHH9h70fnPoYlB1slKBeKl8BwNIlnPg4xBdRBVNPaCqvXxWswx2GR4c9Hw==", + "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, - "dependencies": { - "@commitlint/types": "^17.4.4", - "semver": "7.5.4" - }, + "license": "MIT", "engines": { - "node": ">=v14" + "node": ">=6.0.0" } }, - "node_modules/@commitlint/is-ignored/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==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@commitlint/is-ignored/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==", + "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": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/@commitlint/is-ignored/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/@commitlint/lint": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.7.0.tgz", - "integrity": "sha512-TCQihm7/uszA5z1Ux1vw+Nf3yHTgicus/+9HiUQk+kRSQawByxZNESeQoX9ujfVd3r4Sa+3fn0JQAguG4xvvbA==", + "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, - "dependencies": { - "@commitlint/is-ignored": "^17.7.0", - "@commitlint/parse": "^17.7.0", - "@commitlint/rules": "^17.7.0", - "@commitlint/types": "^17.4.4" - }, + "license": "MIT", "engines": { - "node": ">=v14" + "node": ">= 8" } }, - "node_modules/@commitlint/load": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.7.1.tgz", - "integrity": "sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==", + "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": { - "@commitlint/config-validator": "^17.6.7", - "@commitlint/execute-rule": "^17.4.0", - "@commitlint/resolve-extends": "^17.6.7", - "@commitlint/types": "^17.4.4", - "@types/node": "20.4.7", - "chalk": "^4.1.0", - "cosmiconfig": "^8.0.0", - "cosmiconfig-typescript-loader": "^4.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", - "resolve-from": "^5.0.0", - "ts-node": "^10.8.1", - "typescript": "^4.6.4 || ^5.0.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=v14" + "node": ">= 8" } }, - "node_modules/@commitlint/load/node_modules/@types/node": { - "version": "20.4.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.7.tgz", - "integrity": "sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==", - "dev": true - }, - "node_modules/@commitlint/load/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/@octokit/auth-token": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz", + "integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 18" } }, - "node_modules/@commitlint/load/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/@octokit/core": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.6.tgz", + "integrity": "sha512-kIU8SLQkYWGp3pVKiYzA5OSaNF5EE03P/R8zEmmrG6XwOg5oBjXyQVVIauQ0dgau4zYhpZEhJrvIYt6oM+zZZA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.2.2", + "@octokit/request": "^9.2.3", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">= 18" } }, - "node_modules/@commitlint/load/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/@octokit/endpoint": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.4.tgz", + "integrity": "sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "color-name": "~1.1.4" + "@octokit/types": "^14.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">=7.0.0" + "node": ">= 18" } }, - "node_modules/@commitlint/load/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/@commitlint/load/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/@octokit/graphql": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.2.tgz", + "integrity": "sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/request": "^9.2.3", + "@octokit/types": "^14.0.0", + "universal-user-agent": "^7.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 18" } }, - "node_modules/@commitlint/load/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==", + "node_modules/@octokit/openapi-types": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT", + "peer": true }, - "node_modules/@commitlint/load/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.6.0.tgz", + "integrity": "sha512-n5KPteiF7pWKgBIBJSk8qzoZWcUkza2O6A0za97pMGVrGfPdltxrfmfF5GucHYvHGZD8BdaZmmHGz5cX/3gdpw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "@octokit/types": "^13.10.0" }, "engines": { - "node": ">=8" + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" } }, - "node_modules/@commitlint/message": { - "version": "17.4.2", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz", - "integrity": "sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==", + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", "dev": true, - "engines": { - "node": ">=v14" - } + "license": "MIT", + "peer": true }, - "node_modules/@commitlint/parse": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.7.0.tgz", - "integrity": "sha512-dIvFNUMCUHqq5Abv80mIEjLVfw8QNuA4DS7OWip4pcK/3h5wggmjVnlwGCDvDChkw2TjK1K6O+tAEV78oxjxag==", + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@commitlint/types": "^17.4.4", - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-parser": "^4.0.0" - }, - "engines": { - "node": ">=v14" + "@octokit/openapi-types": "^24.2.0" } }, - "node_modules/@commitlint/parse/node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "node_modules/@octokit/plugin-retry": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.2.1.tgz", + "integrity": "sha512-wUc3gv0D6vNHpGxSaR3FlqJpTXGWgqmk607N9L3LvPL4QjaxDgX/1nY2mGpT37Khn+nlIXdljczkRnNdTTV3/A==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "conventional-commits-parser": "cli.js" + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "bottleneck": "^2.15.3" }, "engines": { - "node": ">=14" + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" } }, - "node_modules/@commitlint/parse/node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "node_modules/@octokit/plugin-throttling": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.6.1.tgz", + "integrity": "sha512-bt3EBUkeKUzDQXRCcFrR9SWVqlLFRRqcCrr6uAorWt6NXTyjMKqcGrFmXqJy9NCbnKgiIZ2OXWq04theFc76Jg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "text-extensions": "^1.0.0" + "@octokit/types": "^13.7.0", + "bottleneck": "^2.15.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^6.1.3" } }, - "node_modules/@commitlint/parse/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "node_modules/@octokit/plugin-throttling/node_modules/@octokit/openapi-types": { + "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } + "license": "MIT", + "peer": true }, - "node_modules/@commitlint/parse/node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "node_modules/@octokit/plugin-throttling/node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", "dev": true, - "engines": { - "node": ">=0.10" + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^24.2.0" } }, - "node_modules/@commitlint/read": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz", - "integrity": "sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==", + "node_modules/@octokit/request": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.4.tgz", + "integrity": "sha512-q8ybdytBmxa6KogWlNa818r0k1wlqzNC+yNkcQDECHvQo8Vmstrg18JwqJHdJdUiHD2sjlwBgSm9kHkOKe2iyA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@commitlint/top-level": "^17.4.0", - "@commitlint/types": "^17.4.4", - "fs-extra": "^11.0.0", - "git-raw-commits": "^2.0.11", - "minimist": "^1.2.6" + "@octokit/endpoint": "^10.1.4", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "fast-content-type-parse": "^2.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">=v14" + "node": ">= 18" } }, - "node_modules/@commitlint/read/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==", + "node_modules/@octokit/request-error": { + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.8.tgz", + "integrity": "sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@octokit/types": "^14.0.0" }, "engines": { - "node": ">=14.14" + "node": ">= 18" } }, - "node_modules/@commitlint/resolve-extends": { - "version": "17.6.7", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.6.7.tgz", - "integrity": "sha512-PfeoAwLHtbOaC9bGn/FADN156CqkFz6ZKiVDMjuC2N5N0740Ke56rKU7Wxdwya8R8xzLK9vZzHgNbuGhaOVKIg==", + "node_modules/@octokit/types": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@commitlint/config-validator": "^17.6.7", - "@commitlint/types": "^17.4.4", - "import-fresh": "^3.0.0", - "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - }, - "engines": { - "node": ">=v14" + "@octokit/openapi-types": "^25.1.0" } }, - "node_modules/@commitlint/resolve-extends/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==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", + "optional": true, "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/@commitlint/rules": { - "version": "17.7.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.7.0.tgz", - "integrity": "sha512-J3qTh0+ilUE5folSaoK91ByOb8XeQjiGcdIdiB/8UT1/Rd1itKo0ju/eQVGyFzgTMYt8HrDJnGTmNWwcMR1rmA==", + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, - "dependencies": { - "@commitlint/ensure": "^17.6.7", - "@commitlint/message": "^17.4.2", - "@commitlint/to-lines": "^17.4.0", - "@commitlint/types": "^17.4.4", - "execa": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": ">=v14" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" } }, - "node_modules/@commitlint/rules/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@commitlint/rules/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=10.17.0" + "node": ">=12.22.0" } }, - "node_modules/@commitlint/rules/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "path-key": "^3.0.0" + "graceful-fs": "4.2.10" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@commitlint/rules/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" + "node": ">=12.22.0" } }, - "node_modules/@commitlint/to-lines": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz", - "integrity": "sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==", + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true, - "engines": { - "node": ">=v14" - } + "license": "ISC", + "peer": true }, - "node_modules/@commitlint/top-level": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz", - "integrity": "sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==", + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "find-up": "^5.0.0" + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" }, "engines": { - "node": ">=v14" + "node": ">=12" } }, - "node_modules/@commitlint/types": { - "version": "17.4.4", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz", - "integrity": "sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=v14" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@commitlint/types/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/@rollup/rollup-android-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@commitlint/types/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/@rollup/rollup-darwin-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@commitlint/types/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/@rollup/rollup-darwin-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@commitlint/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@commitlint/types/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/@rollup/rollup-freebsd-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@commitlint/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": { - "node": ">=10.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "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/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "cpu": [ + "arm64" + ], "dev": true, - "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" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "cpu": [ + "loong64" + ], "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "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/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.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, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "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/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/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.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/core": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz", - "integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz", - "integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/types": "^11.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/endpoint/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@octokit/graphql": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz", - "integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/request": "^8.0.1", - "@octokit/types": "^11.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true, - "peer": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-8.0.0.tgz", - "integrity": "sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/types": "^11.0.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=5" - } - }, - "node_modules/@octokit/plugin-retry": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.0.tgz", - "integrity": "sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.0.0", - "bottleneck": "^2.15.3" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=5" - } - }, - "node_modules/@octokit/plugin-throttling": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-7.0.0.tgz", - "integrity": "sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/types": "^11.0.0", - "bottleneck": "^2.15.3" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "^5.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.1.tgz", - "integrity": "sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/endpoint": "^9.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.1.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz", - "integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/types": "^11.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/request/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@octokit/types": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz", - "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true, - "peer": true - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", - "dev": true, - "peer": true, - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@semantic-release/changelog": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", - "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==", - "dev": true, - "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "fs-extra": "^11.0.0", - "lodash": "^4.17.4" - }, - "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0" - } - }, - "node_modules/@semantic-release/changelog/node_modules/@semantic-release/error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", - "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", - "dev": true, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@semantic-release/changelog/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/@semantic-release/commit-analyzer": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-10.0.4.tgz", - "integrity": "sha512-pFGn99fn8w4/MHE0otb2A/l5kxgOuxaaauIh4u30ncoTJuqWj4hXTgEJ03REqjS+w1R2vPftSsO26WC61yOcpw==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^5.0.0", - "debug": "^4.0.0", - "import-from": "^4.0.0", - "lodash-es": "^4.17.21", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", - "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@semantic-release/git": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", - "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", - "dev": true, - "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "debug": "^4.0.0", - "dir-glob": "^3.0.0", - "execa": "^5.0.0", - "lodash": "^4.17.4", - "micromatch": "^4.0.0", - "p-reduce": "^2.0.0" - }, - "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0" - } - }, - "node_modules/@semantic-release/git/node_modules/@semantic-release/error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", - "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", - "dev": true, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@semantic-release/git/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@semantic-release/git/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/@semantic-release/git/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@semantic-release/git/node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@semantic-release/git/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@semantic-release/github": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.0.4.tgz", - "integrity": "sha512-kQCGFAsBErvCR6hzNuzu63cj4erQN2krm9zQlg8vl4j5X0mL0d/Ras0wmL5Gkr1TuSS2lweME7M4J5zvtDDDSA==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/core": "^5.0.0", - "@octokit/plugin-paginate-rest": "^8.0.0", - "@octokit/plugin-retry": "^6.0.0", - "@octokit/plugin-throttling": "^7.0.0", - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", - "debug": "^4.3.4", - "dir-glob": "^3.0.1", - "globby": "^13.1.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "issue-parser": "^6.0.0", - "lodash-es": "^4.17.21", - "mime": "^3.0.0", - "p-filter": "^3.0.0", - "url-join": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } - }, - "node_modules/@semantic-release/github/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@semantic-release/github/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "peer": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@semantic-release/github/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "cpu": [ + "s390x" + ], "dev": true, - "peer": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@semantic-release/github/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], "dev": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@semantic-release/github/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "cpu": [ + "x64" + ], "dev": true, - "peer": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@semantic-release/github/node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "cpu": [ + "arm64" + ], "dev": true, - "peer": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] }, - "node_modules/@semantic-release/github/node_modules/https-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.1.tgz", - "integrity": "sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "cpu": [ + "arm64" + ], "dev": true, - "peer": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@semantic-release/github/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "cpu": [ + "ia32" + ], "dev": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@semantic-release/github/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "cpu": [ + "x64" + ], "dev": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@semantic-release/npm": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-10.0.5.tgz", - "integrity": "sha512-cJnQ2M5pxJRwZEkb0A/+U3TG4UNmjrrLwV2PxJKljn5OPT0yJB8GzGgWbbKACayvxrT06YdTa4Amtq/piJcOIA==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "cpu": [ + "x64" + ], "dev": true, - "peer": true, - "dependencies": { - "@semantic-release/error": "^4.0.0", - "aggregate-error": "^4.0.1", - "execa": "^8.0.0", - "fs-extra": "^11.0.0", - "lodash-es": "^4.17.21", - "nerf-dart": "^1.0.0", - "normalize-url": "^8.0.0", - "npm": "^9.5.0", - "rc": "^1.2.8", - "read-pkg": "^8.0.0", - "registry-auth-token": "^5.0.0", - "semver": "^7.1.2", - "tempy": "^3.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@semantic-release/npm/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", "dev": true, - "peer": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "peer": true }, - "node_modules/@semantic-release/npm/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "node_modules/@semantic-release/changelog": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", + "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "escape-string-regexp": "5.0.0" + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "fs-extra": "^11.0.0", + "lodash": "^4.17.4" }, "engines": { - "node": ">=12" + "node": ">=14.17" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "semantic-release": ">=18.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "node_modules/@semantic-release/changelog/node_modules/@semantic-release/error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.17" } }, - "node_modules/@semantic-release/npm/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==", + "node_modules/@semantic-release/changelog/node_modules/fs-extra": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -3459,1214 +2628,1068 @@ "node": ">=14.14" } }, - "node_modules/@semantic-release/npm/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/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, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@semantic-release/npm/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==", + "node_modules/@semantic-release/commit-analyzer": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-12.0.0.tgz", + "integrity": "sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@semantic-release/npm/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, - "peer": true - }, - "node_modules/@semantic-release/release-notes-generator": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.7.tgz", - "integrity": "sha512-T09QB9ImmNx7Q6hY6YnnEbw/rEJ6a+22LBxfZq+pSAXg/OL/k0siwEm5cK4k1f9dE2Z2mPIjJKKohzUm0jbxcQ==", - "dev": true, - "dependencies": { - "conventional-changelog-angular": "^6.0.0", - "conventional-changelog-writer": "^6.0.0", + "conventional-changelog-angular": "^7.0.0", "conventional-commits-filter": "^4.0.0", "conventional-commits-parser": "^5.0.0", "debug": "^4.0.0", - "get-stream": "^7.0.0", - "import-from": "^4.0.0", - "into-stream": "^7.0.0", + "import-from-esm": "^1.0.3", "lodash-es": "^4.17.21", - "read-pkg-up": "^10.0.0" + "micromatch": "^4.0.2" }, "engines": { - "node": ">=18" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-commits-filter": { + "node_modules/@semantic-release/error": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", - "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-4.0.0.tgz", + "integrity": "sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=16" + "node": ">=18" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", - "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", + "node_modules/@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, "engines": { - "node": ">=16" + "node": ">=14.17" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "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/@ts-morph/common": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.16.0.tgz", - "integrity": "sha512-SgJpzkTgZKLKqQniCjLaE3c2L2sdL7UShvmTmPBejAKd2OKV/yfMpQ2IWpAuA+VY5wy7PkSUaEObIqEK6afFuw==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.11", - "minimatch": "^5.1.0", - "mkdirp": "^1.0.4", - "path-browserify": "^1.0.1" + "peerDependencies": { + "semantic-release": ">=18.0.0" } }, - "node_modules/@ts-morph/common/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@semantic-release/git/node_modules/@semantic-release/error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=14.17" } }, - "node_modules/@ts-morph/common/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/@semantic-release/git/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/eslint": { - "version": "8.37.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", - "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "node_modules/@semantic-release/git/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "node_modules/@semantic-release/git/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "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==", + "node_modules/@semantic-release/git/node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/@types/mdast": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.12.tgz", - "integrity": "sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==", + "node_modules/@semantic-release/git/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "dependencies": { - "@types/unist": "^2" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@types/unist": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz", - "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.58.0.tgz", - "integrity": "sha512-vxHvLhH0qgBd3/tW6/VccptSfc8FxPQIkmNTVLWcCOVqSBvqpnKkBTYrhcGlXfSnd78azwe+PsjYFj0X34/njA==", + "node_modules/@semantic-release/github": { + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.3.5.tgz", + "integrity": "sha512-svvRglGmvqvxjmDgkXhrjf0lC88oZowFhOfifTldbgX9Dzj0inEtMLaC+3/MkDEmxmaQjWmF5Q/0CMIvPNSVdQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.58.0", - "@typescript-eslint/type-utils": "5.58.0", - "@typescript-eslint/utils": "5.58.0", + "@octokit/core": "^6.0.0", + "@octokit/plugin-paginate-rest": "^11.0.0", + "@octokit/plugin-retry": "^7.0.0", + "@octokit/plugin-throttling": "^9.0.0", + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "dir-glob": "^3.0.1", + "globby": "^14.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^7.0.0", + "lodash-es": "^4.17.21", + "mime": "^4.0.0", + "p-filter": "^4.0.0", + "url-join": "^5.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=20.8.1" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "semantic-release": ">=20.1.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/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==", + "node_modules/@semantic-release/github/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "node_modules/@semantic-release/github/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/parser": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.58.0.tgz", - "integrity": "sha512-ixaM3gRtlfrKzP8N6lRhBbjTow1t6ztfBvQNGuRM8qH1bjFFXIJ35XY+FC0RRBKn3C6cT+7VW1y8tNm7DwPHDQ==", + "node_modules/@semantic-release/github/node_modules/clean-stack": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.3.0.tgz", + "integrity": "sha512-9ngPTOhYGQqNVSfeJkYXHmF7AGWp4/nN5D/QqNQs3Dvxd1Kk/WpjHfNujKHYUQ/5CoGyOyFNoWSPk5afzP0QVg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.58.0", - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/typescript-estree": "5.58.0", - "debug": "^4.3.4" + "escape-string-regexp": "5.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=14.16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz", - "integrity": "sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==", + "node_modules/@semantic-release/github/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/visitor-keys": "5.58.0" - }, + "license": "MIT", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.58.0.tgz", - "integrity": "sha512-FF5vP/SKAFJ+LmR9PENql7fQVVgGDOS+dq3j+cKl9iW/9VuZC/8CFmzIP0DLKXfWKpRHawJiG70rVH+xZZbp8w==", + "node_modules/@semantic-release/github/node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.58.0", - "@typescript-eslint/utils": "5.58.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz", - "integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==", + "node_modules/@semantic-release/github/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">= 4" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz", - "integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==", + "node_modules/@semantic-release/github/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/visitor-keys": "5.58.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, + "license": "MIT", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "node_modules/@semantic-release/github/node_modules/path-type": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "node_modules/@semantic-release/github/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=10" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/utils": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.58.0.tgz", - "integrity": "sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==", + "node_modules/@semantic-release/npm": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.2.tgz", + "integrity": "sha512-+M9/Lb35IgnlUO6OSJ40Ie+hUsZLuph2fqXC/qrKn0fMvUU/jiCjpoL6zEm69vzcmaZJ8yNKtMBEKHWN49WBbQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.58.0", - "@typescript-eslint/types": "5.58.0", - "@typescript-eslint/typescript-estree": "5.58.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@semantic-release/error": "^4.0.0", + "aggregate-error": "^5.0.0", + "execa": "^9.0.0", + "fs-extra": "^11.0.0", + "lodash-es": "^4.17.21", + "nerf-dart": "^1.0.0", + "normalize-url": "^8.0.0", + "npm": "^10.9.3", + "rc": "^1.2.8", + "read-pkg": "^9.0.0", + "registry-auth-token": "^5.0.0", + "semver": "^7.1.2", + "tempy": "^3.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=20.8.1" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "semantic-release": ">=20.1.0" } }, - "node_modules/@typescript-eslint/utils/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==", + "node_modules/@semantic-release/npm/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "yallist": "^4.0.0" + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "node_modules/@semantic-release/npm/node_modules/clean-stack": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.3.0.tgz", + "integrity": "sha512-9ngPTOhYGQqNVSfeJkYXHmF7AGWp4/nN5D/QqNQs3Dvxd1Kk/WpjHfNujKHYUQ/5CoGyOyFNoWSPk5afzP0QVg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/utils/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/@typescript-eslint/visitor-keys": { - "version": "5.58.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz", - "integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==", + "node_modules/@semantic-release/npm/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.58.0", - "eslint-visitor-keys": "^3.3.0" - }, + "license": "MIT", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "node_modules/@semantic-release/npm/node_modules/fs-extra": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "node_modules/@semantic-release/npm/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "node_modules/@semantic-release/npm/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "node_modules/@semantic-release/release-notes-generator": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz", + "integrity": "sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@xtuc/ieee754": "^1.2.0" + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-filter": "^4.0.0", + "conventional-commits-parser": "^5.0.0", + "debug": "^4.0.0", + "get-stream": "^7.0.0", + "import-from-esm": "^1.0.3", + "into-stream": "^7.0.0", + "lodash-es": "^4.17.21", + "read-pkg-up": "^11.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" } }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.1.tgz", + "integrity": "sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ==", "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "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, + "license": "BSD-3-Clause", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "type-detect": "4.0.8" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@sinonjs/commons": "^3.0.1" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "node_modules/@sinonjs/fake-timers/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": "BSD-3-Clause", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" + "type-detect": "4.0.8" } }, - "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "node_modules/@sinonjs/samsam": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.3.tgz", + "integrity": "sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==", "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "type-detect": "^4.1.0" } }, - "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "node_modules/@sinonjs/samsam/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": "BSD-3-Clause", "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" + "type-detect": "4.0.8" } }, - "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons/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, - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } + "license": "MIT", + "engines": { + "node": ">=4" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, + "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=4" } }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "node_modules/@teppeis/multimaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-3.0.0.tgz", + "integrity": "sha512-ID7fosbc50TbT0MK0EG12O+gAP3W3Aa/Pz4DaTtQtEvlc9Odaqi0de+xuZ7Li2GtK4HzEX7IuRWS/JmZLksR3Q==", "dev": true, - "peerDependencies": { - "acorn": "^8" + "license": "MIT", + "engines": { + "node": ">=14" } }, - "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/@tsconfig/node10": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", + "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "license": "MIT" }, - "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==", + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true, - "engines": { - "node": ">=0.4.0" - } + "license": "MIT" }, - "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==", + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "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/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, - "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" - } + "license": "MIT" }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } + "license": "MIT" }, - "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==", + "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, - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@types/unist": "^2" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/@types/node": { + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.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/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "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==", + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", "dev": true, - "peer": true - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "license": "MIT" }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": 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==", + "node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "default-require-extensions": "^3.0.0" + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=8" - } - }, - "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/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "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": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", - "dev": true, - "peer": true - }, - "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/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "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==", + "node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", "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" + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "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/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "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" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "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/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "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" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "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/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "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" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.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/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "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" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.0" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "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, - "engines": { - "node": ">=0.8" + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/assertion-error-formatter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz", - "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==", + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, + "license": "MIT", "dependencies": { - "diff": "^4.0.1", - "pad-right": "^0.2.2", - "repeat-string": "^1.6.1" + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 4.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "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/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "default-require-extensions": "^3.0.0" }, "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" + "node": ">=8" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "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, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "license": "MIT" }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "node_modules/assertion-error-formatter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz", + "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "diff": "^4.0.1", + "pad-right": "^0.2.2", + "repeat-string": "^1.6.1" } }, "node_modules/bail": { @@ -4674,6 +3697,7 @@ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4683,124 +3707,54 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/becke-ch--regex--s0-0-v1--base--pl--lib": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/becke-ch--regex--s0-0-v1--base--pl--lib/-/becke-ch--regex--s0-0-v1--base--pl--lib-1.4.0.tgz", - "integrity": "sha512-FnWonOyaw7Vivg5nIkrUll9HSS5TjFbyuURAiDssuL6VxrBe3ERzudRxOcWRhZYlP89UArMDikz7SapRPQpmZQ==", - "dev": true - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true, - "peer": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/baseline-browser-mapping": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.2.tgz", + "integrity": "sha512-PxSsosKQjI38iXkmb3d0Y32efqyA0uW4s41u4IVBsLlWLhCiYNpH/AfNOVWRqCQBlD8TFJTz6OUWNd4DFJCnmw==", "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" } }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/before-after-hook": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", "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/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "license": "Apache-2.0", + "peer": true }, "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", "dev": true, + "license": "MIT", "peer": 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==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -4810,12 +3764,13 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -4825,13 +3780,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -4840,56 +3801,19 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "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.2.1" - } - }, "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/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "node_modules/cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "hasha": "^5.0.0", "make-dir": "^3.0.0", @@ -4900,31 +3824,12 @@ "node": ">=8" } }, - "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" } @@ -4934,31 +3839,15 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001478", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz", - "integrity": "sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==", + "version": "1.0.30001759", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", + "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", "dev": true, "funding": [ { @@ -4973,20 +3862,40 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/capital-case/node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/capital-case/node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, "node_modules/ccount": { @@ -4994,6 +3903,7 @@ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5004,6 +3914,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -5013,11 +3925,34 @@ "node": ">=4" } }, + "node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5028,6 +3963,7 @@ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5038,148 +3974,178 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "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==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" + "node": ">= 14.16.0" }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", "dev": true, - "engines": { - "node": ">=6.0" - } + "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { - "restore-cursor": "^3.1.0" + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" }, "engines": { - "node": ">=8" + "node": ">=8.0.0", + "npm": ">=5.0.0" } }, - "node_modules/cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cliui": { + "node_modules/cli-highlight/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/cli-highlight/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=8" } }, - "node_modules/cliui/node_modules/string-width": { + "node_modules/cli-highlight/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5189,40 +4155,98 @@ "node": ">=8" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "node_modules/cli-highlight/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", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "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": ">=6" + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/code-block-writer": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz", - "integrity": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==", - "dev": true + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -5231,70 +4255,23 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "node_modules/commitizen": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", - "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", - "dev": true, - "dependencies": { - "cachedir": "2.3.0", - "cz-conventional-changelog": "3.3.0", - "dedent": "0.7.0", - "detect-indent": "6.1.0", - "find-node-modules": "^2.1.2", - "find-root": "1.1.0", - "fs-extra": "9.1.0", - "glob": "7.2.3", - "inquirer": "8.2.5", - "is-utf8": "^0.2.1", - "lodash": "4.17.21", - "minimist": "1.2.7", - "strip-bom": "4.0.0", - "strip-json-comments": "3.1.1" - }, - "bin": { - "commitizen": "bin/commitizen", - "cz": "bin/git-cz", - "git-cz": "bin/git-cz" - }, - "engines": { - "node": ">= 12" - } + "license": "MIT", + "peer": true }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" @@ -5304,84 +4281,85 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "peer": true + }, "node_modules/conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", - "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-writer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", - "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", + "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "conventional-commits-filter": "^3.0.0", - "dateformat": "^3.0.3", + "conventional-commits-filter": "^4.0.0", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "meow": "^8.1.2", - "semver": "^7.0.0", - "split": "^1.0.1" + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" }, "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-changelog-writer/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" + "conventional-changelog-writer": "cli.mjs" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-writer/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==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -5389,29 +4367,15 @@ "node": ">=10" } }, - "node_modules/conventional-changelog-writer/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/conventional-commit-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", - "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", - "dev": true - }, "node_modules/conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-commits-parser": { @@ -5419,6 +4383,8 @@ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "is-text-path": "^2.0.0", "JSONStream": "^1.3.5", @@ -5432,116 +4398,76 @@ "node": ">=16" } }, - "node_modules/conventional-commits-parser/node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=16.10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/core-js-compat": { - "version": "3.30.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.0.tgz", - "integrity": "sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.30.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.0.tgz", - "integrity": "sha512-+2KbMFGeBU0ln/csoPqTe0i/yfHbrd2EUhNMObsGtXMKS/RTtlkYyi+/3twLcevbgNR0yM/r0Psa3TEoQRpFMQ==", + "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, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } + "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/cosmiconfig": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", - "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "import-fresh": "^3.2.1", + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/d-fischer" - } - }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", - "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", - "dev": true, - "engines": { - "node": ">=v14.21.3" }, "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", - "typescript": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" + "typescript": ">=4.9.5" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5556,6 +4482,7 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "type-fest": "^1.0.1" @@ -5572,6 +4499,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -5580,335 +4508,66 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cucumber": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-6.0.7.tgz", - "integrity": "sha512-pN3AgWxHx8rOi+wOlqjASNETOjf3TgeyqhMNLQam7nSTXgQzju1oAmXkleRQRcXvpVvejcDHiZBLFSfBkqbYpA==", - "deprecated": "Cucumber is publishing new releases under @cucumber/cucumber", - "dev": true, - "dependencies": { - "assertion-error-formatter": "^3.0.0", - "bluebird": "^3.4.1", - "cli-table3": "^0.5.1", - "colors": "^1.1.2", - "commander": "^3.0.1", - "cucumber-expressions": "^8.1.0", - "cucumber-tag-expressions": "^2.0.2", - "duration": "^0.2.1", - "escape-string-regexp": "^2.0.0", - "figures": "^3.0.0", - "gherkin": "5.0.0", - "glob": "^7.1.3", - "indent-string": "^4.0.0", - "is-generator": "^1.0.2", - "is-stream": "^2.0.0", - "knuth-shuffle-seeded": "^1.0.6", - "lodash": "^4.17.14", - "mz": "^2.4.0", - "progress": "^2.0.0", - "resolve": "^1.3.3", - "serialize-error": "^4.1.0", - "stack-chain": "^2.0.0", - "stacktrace-js": "^2.0.0", - "string-argv": "^0.3.0", - "title-case": "^2.1.1", - "util-arity": "^1.0.2", - "verror": "^1.9.0" - }, - "bin": { - "cucumber-js": "bin/cucumber-js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cucumber-expressions": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/cucumber-expressions/-/cucumber-expressions-8.3.0.tgz", - "integrity": "sha512-cP2ya0EiorwXBC7Ll7Cj7NELYbasNv9Ty42L4u7sso9KruWemWG1ZiTq4PMqir3SNDSrbykoqI5wZgMbLEDjLQ==", - "deprecated": "This package is now published under @cucumber/cucumber-expressions", - "dev": true, - "dependencies": { - "becke-ch--regex--s0-0-v1--base--pl--lib": "^1.4.0", - "xregexp": "^4.2.4" - } - }, - "node_modules/cucumber-tag-expressions": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/cucumber-tag-expressions/-/cucumber-tag-expressions-2.0.3.tgz", - "integrity": "sha512-+x5j1IfZrBtbvYHuoUX0rl4nUGxaey6Do9sM0CABmZfDCcWXuuRm1fQeCaklIYQgOFHQ6xOHvDSdkMHHpni6tQ==", - "dev": true - }, - "node_modules/cucumber/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/cz-conventional-changelog": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", - "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.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 - }, - "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/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "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==", + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "ms": "^2.1.3" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=4.0.0" } }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "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/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, + "license": "MIT", + "dependencies": { + "strip-bom": "^4.0.0" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/diff": { @@ -5916,6 +4575,7 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -5925,6 +4585,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -5937,6 +4598,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", + "peer": true, "dependencies": { "esutils": "^2.0.2" }, @@ -5944,70 +4607,12 @@ "node": ">=6.0.0" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -6020,23 +4625,18 @@ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "readable-stream": "^2.0.2" } }, - "node_modules/duplexer2/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, - "peer": true - }, "node_modules/duplexer2/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", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -6053,6 +4653,7 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/duplexer2/node_modules/string_decoder": { @@ -6060,126 +4661,104 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/duration": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz", - "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.46" - } + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.361", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.361.tgz", - "integrity": "sha512-VocVwjPp05HUXzf3xmL0boRn5b0iyqC7amtDww84Jb1QJNPBc7F69gJyEeXRoriLBC4a5pSyckdllrXAg4mmRA==", - "dev": true + "version": "1.5.264", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.264.tgz", + "integrity": "sha512-1tEf0nLgltC3iy9wtlYDlQDc5Rg9lEKVjEmIHJ21rI9OcqkvD45K1oyNIRA4rR1z3LgJ7KeGzEBojVcV6m4qjA==", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } + "license": "MIT" }, - "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/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } + "license": "MIT", + "peer": true }, "node_modules/env-ci": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.1.1.tgz", - "integrity": "sha512-Im2yEWeF4b2RAMAaWvGioXk6m0UNaIjD8hj28j2ij5ldnIFrDQT0+pzDvpbRkcjurhXhf/AsBKv8P2rtmGi9Aw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.2.0.tgz", + "integrity": "sha512-D5kWfzkmaOQDioPmiviWAVtKmpPT4/iJmMVQxWxMPJTFyTkdc5JQUfc5iXEeWxcOdsYTKSAiA/Age4NUOqKsRA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "execa": "^7.0.0", + "execa": "^8.0.0", "java-properties": "^1.0.2" }, "engines": { - "node": "^16.14 || >=18" + "node": "^18.17 || >=20.6.1" } }, "node_modules/env-ci/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/env-ci/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/env-ci/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/env-ci/node_modules/is-stream": { @@ -6187,6 +4766,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -6200,6 +4780,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -6208,280 +4789,213 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/env-ci/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/env-ci/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "mimic-fn": "^4.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "node_modules/env-ci/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "stackframe": "^1.3.4" - } - }, - "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" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/env-ci/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/env-ci/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT", + "license": "ISC", + "peer": true, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", - "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", - "dev": true - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" + "node": ">=14" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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/env-ci/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" + "peer": true, + "engines": { + "node": ">=6" } }, - "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/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "dev": true, "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, - "hasInstallScript": true, + "license": "MIT", + "peer": true, "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" } }, "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/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } + "license": "MIT" }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "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", @@ -6489,22 +5003,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -6517,284 +5028,87 @@ "url": "https://opencollective.com/eslint" } }, - "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-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "node_modules/eslint-plugin-kuzzle": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/eslint-plugin-kuzzle/-/eslint-plugin-kuzzle-0.0.15.tgz", + "integrity": "sha512-Hn7Bc/6L4O9pwEIed0uUQ1hNZ4YosBb39KWRQ9UqoiuhV3Ein3zrl4hNrozds0yqAgd8Wm3apnw4JxJX47225Q==", "dev": true, - "license": "MIT", + "license": "Apache 2", "dependencies": { - "debug": "^3.2.7" + "@typescript-eslint/eslint-plugin": "^7.13.0", + "@typescript-eslint/parser": "^7.13.0", + "eslint-plugin-prettier": "^5.1.3", + "prettier": "^3.3.2" }, "engines": { - "node": ">=4" + "node": ">=16.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.50.0 9<", + "eslint-plugin-prettier": "^5.1.3", + "typescript": ">= 5.2 <5.5" }, "peerDependenciesMeta": { - "eslint": { + "typescript": { "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-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "node_modules/eslint-plugin-prettier": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", "dev": true, "license": "MIT", "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" }, "engines": { - "node": ">=8.10.0" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, - "node_modules/eslint-plugin-html": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-8.1.2.tgz", - "integrity": "sha512-pbRchDV2SmqbCi/Ev/q3aAikzG9BcFe0IjjqjtMn8eTLq71ZUggyJB6CDmuwGAXmYZHrXI12XTfCqvgcnPRqGw==", - "dev": true, - "license": "ISC", - "dependencies": { - "htmlparser2": "^9.1.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "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.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "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/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/eslint-plugin-kuzzle": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-kuzzle/-/eslint-plugin-kuzzle-0.0.6.tgz", - "integrity": "sha512-1tWOBxr0Fpe7yVFh3WLwrN8jgjaA39yKM0ohAkLNAN22P4HvPrN2rk0EhEUA8UFrpuRpX4wp4sF1HYUXJ2786g==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.38.0", - "@typescript-eslint/parser": "^5.38.0", - "eslint": "^8.23.1", - "eslint-plugin-prettier": "^4.2.1", - "prettier": "^2.7.1" - } - }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.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, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" + "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": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { - "eslint-config-prettier": { + "@types/eslint": { "optional": true - } - } - }, - "node_modules/eslint-plugin-promise": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.1.0.tgz", - "integrity": "sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-standard": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz", - "integrity": "sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==", - "deprecated": "standard 16.0.0 and eslint-config-standard 16.0.0 no longer require the eslint-plugin-standard package. You can remove it from your dependencies with 'npm rm eslint-plugin-standard'. More info here: https://github.com/standard/standard/issues/1316", - "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" + "eslint-config-prettier": { + "optional": true } - ], - "license": "MIT", - "peerDependencies": { - "eslint": ">=5.0.0" } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "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", + "peer": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "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" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/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" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "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" }, @@ -6802,11 +5116,31 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/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": "MIT", + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -6817,17 +5151,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "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": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6844,63 +5174,32 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "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.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=7.0.0" } }, - "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==", + "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, - "engines": { - "node": ">=4.0" - } + "license": "MIT", + "peer": true }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "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, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6911,27 +5210,27 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "license": "MIT", + "peer": true }, "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, + "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -6939,27 +5238,17 @@ "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.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "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", + "peer": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6973,6 +5262,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6982,10 +5272,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -6993,20 +5284,12 @@ "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, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -7014,20 +5297,12 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "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, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -7037,93 +5312,97 @@ "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/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": ">=16.17" + "node": "^18.19.0 || >=20.5.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "node_modules/execa/node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "node_modules/execa/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "node_modules/execa/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/execa/node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7134,6 +5413,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "peer": true, "engines": { "node": ">=14" @@ -7142,85 +5422,57 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "node_modules/fast-content-type-parse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", + "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==", "dev": true, - "engines": [ - "node >=0.6.0" - ] + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT", + "peer": true }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "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-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -7231,6 +5483,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -7242,28 +5495,22 @@ "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 + "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 - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, - "engines": { - "node": ">= 4.9.1" - } + "license": "MIT" }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -7273,6 +5520,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -7283,11 +5531,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -7295,24 +5555,12 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==", - "dev": true, - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7325,6 +5573,7 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -7337,27 +5586,12 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-node-modules": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", - "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", - "dev": true, - "dependencies": { - "findup-sync": "^4.0.0", - "merge": "^2.1.1" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "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==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -7369,35 +5603,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-versions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", - "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", + "node_modules/find-up-simple": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.1.tgz", + "integrity": "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==", "dev": true, - "peer": true, - "dependencies": { - "semver-regex": "^4.0.5" - }, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "node_modules/find-versions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz", + "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" + "semver-regex": "^4.0.5", + "super-regex": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { @@ -7405,17 +5639,21 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "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", + "peer": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -7423,32 +5661,40 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } + "license": "ISC" }, "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==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/from2": { @@ -7456,22 +5702,20 @@ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" } }, - "node_modules/from2/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/from2/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", + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7486,13 +5730,17 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/from2/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -7515,35 +5763,23 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } + ], + "license": "MIT" }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -7552,49 +5788,18 @@ "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==", + "node_modules/function-timeout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.2.tgz", + "integrity": "sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==", "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" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "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" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/gensync": { @@ -7602,6 +5807,7 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -7610,33 +5816,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "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" - } + "license": "ISC" }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -7646,6 +5834,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7653,39 +5842,12 @@ "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": { - "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/gherkin": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-5.0.0.tgz", - "integrity": "sha512-Y+93z2Nh+TNIKuKEf+6M0FQrX/z0Yv9C2LFfc5NlcGJWRrrTeI/jOg2374y1FOw6ZYQ3RgJBezRkli7CLDubDA==", - "deprecated": "This package is now published under @cucumber/gherkin", - "dev": true, - "bin": { - "gherkin-javascript": "bin/gherkin" - } - }, "node_modules/git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", + "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "argv-formatter": "~1.0.0", @@ -7693,7 +5855,7 @@ "split2": "~1.0.0", "stream-combiner2": "~1.1.1", "through2": "~2.0.0", - "traverse": "~0.6.6" + "traverse": "0.6.8" } }, "node_modules/git-log-parser/node_modules/split2": { @@ -7701,53 +5863,19 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "through2": "~2.0.0" } }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/git-raw-commits/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/git-raw-commits/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7768,6 +5896,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -7775,90 +5904,47 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, + "license": "MIT", "dependencies": { - "ini": "^1.3.4" + "ini": "2.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "node": ">=10" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, + "license": "ISC", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "node": ">=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": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "type-fest": "^0.20.2" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { @@ -7866,6 +5952,7 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -7881,36 +5968,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true + "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/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -7927,87 +6005,38 @@ "uglify-js": "^3.1.4" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/has-ansi": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-4.0.1.tgz", + "integrity": "sha512-Qr4RtTm30xvEdqUXbSBVWDu+PrTokJOwe/FU+VdfJPk+MXAPoeOzKpRyrDTnZIJwAkQ4oBLTU53nu0HrkF/Z2A==", "dev": true, "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "ansi-regex": "^4.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "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/has-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "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/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, "node_modules/hasha": { @@ -8015,6 +6044,7 @@ "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, + "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -8026,17 +6056,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.4" + "node": ">=8" } }, "node_modules/he": { @@ -8044,20 +6071,20 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, + "license": "BSD-3-Clause", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": "*" } }, "node_modules/hook-std": { @@ -8065,6 +6092,7 @@ "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -8074,10 +6102,12 @@ } }, "node_modules/hosted-git-info": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.0.tgz", - "integrity": "sha512-ICclEpTLhHj+zCuSb2/usoNXSVkxUSIopre+b1w8NDY9Dntp9LO4vLdHYI336TH8sAqwrRgnSfdkBG2/YpisHA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { "lru-cache": "^10.0.1" }, @@ -8086,102 +6116,77 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC", + "peer": true }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true + "license": "MIT" }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, "engines": { - "node": ">=16.17.0" + "node": ">= 14" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "agent-base": "^7.1.2", + "debug": "4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", "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": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=18.18.0" + } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -8193,35 +6198,41 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-from": { + "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "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": ">=12.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/import-from-esm": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.4.tgz", + "integrity": "sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "debug": "^4.3.4", + "import-meta-resolve": "^4.0.0" }, "engines": { - "node": ">=8" - }, + "node": ">=16.20" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "peer": true, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/imurmurhash": { @@ -8229,6 +6240,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -8238,15 +6250,31 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8256,162 +6284,16 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/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/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/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/inquirer/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/inquirer/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/inquirer/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/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/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", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } + "license": "ISC" }, "node_modules/into-stream": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-7.0.0.tgz", "integrity": "sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "from2": "^2.3.0", "p-is-promise": "^3.0.0" @@ -8428,6 +6310,7 @@ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8438,6 +6321,7 @@ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, + "license": "MIT", "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" @@ -8447,70 +6331,13 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "peer": true }, "node_modules/is-buffer": { "version": "2.0.5", @@ -8531,69 +6358,9 @@ "url": "https://feross.org/support" } ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, "node_modules/is-decimal": { @@ -8601,6 +6368,7 @@ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8611,30 +6379,17 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-generator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-generator/-/is-generator-1.0.3.tgz", - "integrity": "sha512-G56jBpbJeg7ds83HW1LuShNs8J73Fv3CPz/bmROHOHlnKkN8sWb9ujiagjmxxMUywftgq48HlBZELKKqFLk0oA==", - "dev": true - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8647,31 +6402,27 @@ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-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/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-number": { @@ -8679,24 +6430,9 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-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": ">=0.12.0" } }, "node_modules/is-obj": { @@ -8704,80 +6440,33 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "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==", "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-stream": { @@ -8785,6 +6474,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -8792,43 +6482,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-text-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "text-extensions": "^2.0.0" }, @@ -8836,33 +6496,19 @@ "node": ">=8" } }, - "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": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "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 + "dev": true, + "license": "MIT" }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8870,60 +6516,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "peer": 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 - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, "node_modules/issue-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", - "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz", + "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "lodash.capitalize": "^4.2.1", @@ -8933,14 +6556,15 @@ "lodash.uniqby": "^4.7.0" }, "engines": { - "node": ">=10.13" + "node": "^18.17 || >=20.6.1" } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } @@ -8950,6 +6574,7 @@ "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, + "license": "BSD-3-Clause", "dependencies": { "append-transform": "^2.0.0" }, @@ -8958,18 +6583,33 @@ } }, "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==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/istanbul-lib-processinfo": { @@ -8977,6 +6617,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, + "license": "ISC", "dependencies": { "archy": "^1.0.0", "cross-spawn": "^7.0.3", @@ -8990,17 +6631,18 @@ } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "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, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/has-flag": { @@ -9008,8 +6650,38 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_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, + "license": "MIT", + "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.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/supports-color": { @@ -9017,6 +6689,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9029,6 +6702,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -9039,10 +6713,11 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9051,131 +6726,110 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.6.0" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "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 + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/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 + "dev": true, + "license": "MIT", + "peer": 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 + "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 + "dev": true, + "license": "ISC", + "peer": true }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -9184,10 +6838,11 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -9202,13 +6857,17 @@ "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT", + "peer": true }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", + "peer": true, "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -9220,19 +6879,14 @@ "node": "*" } }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "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, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, "node_modules/knuth-shuffle-seeded": { @@ -9240,6 +6894,7 @@ "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", "integrity": "sha512-9pFH0SplrfyKyojCLxZfMcvkhf5hH0d+UwR9nTVJ/DDQJGuzcXjTwB7TP7sDfehSudlGGaOLblmEWqv04ERVWg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "seed-random": "~2.2.0" } @@ -9249,6 +6904,7 @@ "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" @@ -9261,13 +6917,16 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -9284,6 +6943,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "error-ex": "^1.3.1", @@ -9298,39 +6958,18 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" } }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -9345,143 +6984,91 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", "dev": true, + "license": "MIT", "peer": 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.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", "dev": true, + "license": "MIT", "peer": 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", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true - }, - "node_modules/lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", - "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 + "dev": true, + "license": "MIT" }, "node_modules/lodash.mergewith": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true - }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -9498,6 +7085,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -9513,6 +7101,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9529,6 +7118,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -9540,13 +7130,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9556,6 +7148,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9569,49 +7162,81 @@ "integrity": "sha512-ad9IBHbfVJ3bPAotDxnCgJgKcNK5/mrRAfbJzXhY5+PEmuBWP7wyHQlA6L8TfSfPlqlDjY4K7IG6mbzsrIBx1A==", "deprecated": "lolex has been renamed to @sinonjs/fake-timers. No API changes made. Please use the new package instead", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, - "node_modules/longest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/longest-streak": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, + "node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-asynchronous": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.0.1.tgz", + "integrity": "sha512-T9BPOmEOhp6SmV25SwLVcHK4E6JyG/coH3C6F1NjNXSziv/fd4GmsqMk8YR6qpPOswfaOCApSNkZv6fxoaYFcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "p-event": "^6.0.0", + "type-fest": "^4.6.0", + "web-worker": "1.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-asynchronous/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "peer": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -9626,25 +7251,15 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "ISC" }, "node_modules/markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", "dev": true, + "license": "MIT", "dependencies": { "repeat-string": "^1.0.0" }, @@ -9654,60 +7269,65 @@ } }, "node_modules/marked": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.2.tgz", - "integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", + "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", "dev": true, + "license": "MIT", "peer": true, "bin": { "marked": "bin/marked.js" }, "engines": { - "node": ">= 16" + "node": ">= 18" } }, "node_modules/marked-terminal": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz", - "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz", + "integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "ansi-escapes": "^6.2.0", - "cardinal": "^2.1.1", - "chalk": "^5.2.0", - "cli-table3": "^0.6.3", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.3.0" + "ansi-escapes": "^7.0.0", + "ansi-regex": "^6.1.0", + "chalk": "^5.4.1", + "cli-highlight": "^2.1.11", + "cli-table3": "^0.6.5", + "node-emoji": "^2.2.0", + "supports-hyperlinks": "^3.1.0" }, "engines": { - "node": ">=14.13.1 || >=16.0.0" + "node": ">=16.0.0" }, "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + "marked": ">=1 <16" } }, "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", - "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "type-fest": "^3.0.0" + "environment": "^1.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -9717,10 +7337,11 @@ } }, "node_modules/marked-terminal/node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "string-width": "^4.2.0" @@ -9737,6 +7358,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -9747,6 +7369,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "emoji-regex": "^8.0.0", @@ -9757,24 +7380,12 @@ "node": ">=8" } }, - "node_modules/marked-terminal/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mdast-util-find-and-replace": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^4.0.0", "unist-util-is": "^4.0.0", @@ -9790,6 +7401,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9802,6 +7414,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^2.0.0", @@ -9819,6 +7432,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-gfm-autolink-literal": "^0.1.0", "mdast-util-gfm-strikethrough": "^0.2.0", @@ -9836,6 +7450,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", "dev": true, + "license": "MIT", "dependencies": { "ccount": "^1.0.0", "mdast-util-find-and-replace": "^1.1.0", @@ -9851,6 +7466,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-to-markdown": "^0.6.0" }, @@ -9864,6 +7480,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", "dev": true, + "license": "MIT", "dependencies": { "markdown-table": "^2.0.0", "mdast-util-to-markdown": "~0.6.0" @@ -9878,6 +7495,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-to-markdown": "~0.6.0" }, @@ -9891,6 +7509,7 @@ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "longest-streak": "^2.0.0", @@ -9909,200 +7528,39 @@ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/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/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/meow/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/meow/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/meow/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/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "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": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=10" + "node": ">=16.10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", - "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==", - "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/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -10122,6 +7580,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "debug": "^4.0.0", "parse-entities": "^2.0.0" @@ -10132,6 +7591,7 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", "dev": true, + "license": "MIT", "dependencies": { "micromark": "~2.11.0", "micromark-extension-gfm-autolink-literal": "~0.5.0", @@ -10150,6 +7610,7 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", "dev": true, + "license": "MIT", "dependencies": { "micromark": "~2.11.3" }, @@ -10163,6 +7624,7 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", "dev": true, + "license": "MIT", "dependencies": { "micromark": "~2.11.0" }, @@ -10176,6 +7638,7 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", "dev": true, + "license": "MIT", "dependencies": { "micromark": "~2.11.0" }, @@ -10189,6 +7652,7 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -10199,6 +7663,7 @@ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", "dev": true, + "license": "MIT", "dependencies": { "micromark": "~2.11.0" }, @@ -10208,12 +7673,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -10221,37 +7687,20 @@ } }, "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz", + "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==", "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", "peer": true, "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" + "mime": "bin/cli.js" }, "engines": { - "node": ">= 0.6" + "node": ">=16" } }, "node_modules/mimic-fn": { @@ -10259,29 +7708,17 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-req-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-req-promise/-/min-req-promise-1.0.1.tgz", - "integrity": "sha512-PD2LObOGZPBPk3EMiuxc4Te0a0T0C6ZZni4m6eNl1zgxqJh+jThM026TmxV6IcJM8MWPHagJm3Q+zm2CNOAiDg==" - }, "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": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -10294,96 +7731,91 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true, + "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minimist-options/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" } }, "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, + "license": "MIT", "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "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": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.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" + "version": "11.7.5", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz", + "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-stdout": "^1.3.1", + "chokidar": "^4.0.1", + "debug": "^4.3.5", + "diff": "^7.0.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^9.0.5", + "ms": "^2.1.3", + "picocolors": "^1.1.1", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^9.2.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } }, "node_modules/mocha/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==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -10393,6 +7825,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -10401,90 +7834,58 @@ } }, "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/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==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/minimatch/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": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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==", - "dev": true - }, "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==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10500,6 +7901,7 @@ "resolved": "https://registry.npmjs.org/mock-require/-/mock-require-3.0.3.tgz", "integrity": "sha512-lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==", "dev": true, + "license": "MIT", "dependencies": { "get-caller-file": "^1.0.2", "normalize-path": "^2.1.1" @@ -10508,50 +7910,19 @@ "node": ">=4.3.0" } }, - "node_modules/mock-require/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==", - "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==", - "dev": true - }, - "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 + "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/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -10559,10 +7930,17 @@ } }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10574,88 +7952,48 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/nerf-dart": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/nise/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0" - } - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "dependencies": { - "lower-case": "^1.1.1" - } - }, "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "lodash": "^4.17.21" + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" } }, "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "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, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -10676,6 +8014,7 @@ "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, + "license": "MIT", "dependencies": { "process-on-spawn": "^1.0.0" }, @@ -10684,58 +8023,35 @@ } }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/normalize-package-data/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==", + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "yallist": "^4.0.0" + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/normalize-package-data/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==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -10743,26 +8059,25 @@ "node": ">=10" } }, - "node_modules/normalize-package-data/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/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.0.tgz", + "integrity": "sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=14.16" @@ -10772,9 +8087,9 @@ } }, "node_modules/npm": { - "version": "9.8.1", - "resolved": "https://registry.npmjs.org/npm/-/npm-9.8.1.tgz", - "integrity": "sha512-AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==", + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.4.tgz", + "integrity": "sha512-OnUG836FwboQIbqtefDNlyR0gTHzIfwRfE3DuiNewBvnMnWEpB0VEXwBlFVgqpNzIgYo/MHh3d2Hel/pszapAA==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -10783,15 +8098,15 @@ "@npmcli/map-workspaces", "@npmcli/package-json", "@npmcli/promise-spawn", + "@npmcli/redact", "@npmcli/run-script", + "@sigstore/tuf", "abbrev", "archy", "cacache", "chalk", "ci-info", "cli-columns", - "cli-table3", - "columnify", "fastest-levenshtein", "fs-minipass", "glob", @@ -10819,6 +8134,7 @@ "ms", "node-gyp", "nopt", + "normalize-package-data", "npm-audit-report", "npm-install-checks", "npm-package-arg", @@ -10826,7 +8142,6 @@ "npm-profile", "npm-registry-fetch", "npm-user-validate", - "npmlog", "p-map", "pacote", "parse-conflict-json", @@ -10834,7 +8149,7 @@ "qrcode-terminal", "read", "semver", - "sigstore", + "spdx-expression-parse", "ssri", "supports-color", "tar", @@ -10846,96 +8161,106 @@ "write-file-atomic" ], "dev": true, + "license": "Artistic-2.0", "peer": true, + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^6.3.0", - "@npmcli/config": "^6.2.1", - "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.4", - "@npmcli/package-json": "^4.0.1", - "@npmcli/promise-spawn": "^6.0.2", - "@npmcli/run-script": "^6.0.2", - "abbrev": "^2.0.0", + "@npmcli/arborist": "^8.0.1", + "@npmcli/config": "^9.0.0", + "@npmcli/fs": "^4.0.0", + "@npmcli/map-workspaces": "^4.0.2", + "@npmcli/package-json": "^6.2.0", + "@npmcli/promise-spawn": "^8.0.2", + "@npmcli/redact": "^3.2.2", + "@npmcli/run-script": "^9.1.0", + "@sigstore/tuf": "^3.1.1", + "abbrev": "^3.0.1", "archy": "~1.0.0", - "cacache": "^17.1.3", - "chalk": "^5.3.0", - "ci-info": "^3.8.0", + "cacache": "^19.0.1", + "chalk": "^5.4.1", + "ci-info": "^4.2.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", - "fs-minipass": "^3.0.2", - "glob": "^10.2.7", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", "graceful-fs": "^4.2.11", - "hosted-git-info": "^6.1.1", - "ini": "^4.1.1", - "init-package-json": "^5.0.0", - "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^7.0.2", - "libnpmdiff": "^5.0.19", - "libnpmexec": "^6.0.3", - "libnpmfund": "^4.0.19", - "libnpmhook": "^9.0.3", - "libnpmorg": "^5.0.4", - "libnpmpack": "^5.0.19", - "libnpmpublish": "^7.5.0", - "libnpmsearch": "^6.0.2", - "libnpmteam": "^5.0.3", - "libnpmversion": "^4.0.2", - "make-fetch-happen": "^11.1.1", - "minimatch": "^9.0.3", - "minipass": "^5.0.0", + "hosted-git-info": "^8.1.0", + "ini": "^5.0.0", + "init-package-json": "^7.0.2", + "is-cidr": "^5.1.1", + "json-parse-even-better-errors": "^4.0.0", + "libnpmaccess": "^9.0.0", + "libnpmdiff": "^7.0.1", + "libnpmexec": "^9.0.1", + "libnpmfund": "^6.0.1", + "libnpmhook": "^11.0.0", + "libnpmorg": "^7.0.0", + "libnpmpack": "^8.0.1", + "libnpmpublish": "^10.0.1", + "libnpmsearch": "^8.0.0", + "libnpmteam": "^7.0.0", + "libnpmversion": "^7.0.0", + "make-fetch-happen": "^14.0.3", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^9.4.0", - "nopt": "^7.2.0", - "npm-audit-report": "^5.0.0", - "npm-install-checks": "^6.1.1", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-profile": "^7.0.1", - "npm-registry-fetch": "^14.0.5", - "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", - "p-map": "^4.0.0", - "pacote": "^15.2.0", - "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", + "node-gyp": "^11.2.0", + "nopt": "^8.1.0", + "normalize-package-data": "^7.0.0", + "npm-audit-report": "^6.0.0", + "npm-install-checks": "^7.1.1", + "npm-package-arg": "^12.0.2", + "npm-pick-manifest": "^10.0.0", + "npm-profile": "^11.0.1", + "npm-registry-fetch": "^18.0.2", + "npm-user-validate": "^3.0.0", + "p-map": "^7.0.3", + "pacote": "^19.0.1", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", - "semver": "^7.5.4", - "sigstore": "^1.7.0", - "ssri": "^10.0.4", + "read": "^4.1.0", + "semver": "^7.7.2", + "spdx-expression-parse": "^4.0.0", + "ssri": "^12.0.0", "supports-color": "^9.4.0", - "tar": "^6.1.15", + "tar": "^6.2.1", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", - "validate-npm-package-name": "^5.0.0", - "which": "^3.0.1", - "write-file-atomic": "^5.0.1" + "validate-npm-package-name": "^6.0.1", + "which": "^5.0.0", + "write-file-atomic": "^6.0.0" }, "bin": { "npm": "bin/npm-cli.js", "npx": "bin/npx-cli.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "path-key": "^4.0.0" + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10946,6 +8271,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -10954,17 +8280,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", "dev": true, @@ -10984,7 +8299,7 @@ } }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", + "version": "6.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -11037,6 +8352,19 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/npm/node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "dev": true, @@ -11044,44 +8372,63 @@ "license": "ISC", "peer": true }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "6.3.0", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^4.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^6.0.0", - "bin-links": "^4.0.1", - "cacache": "^17.0.4", + "@npmcli/fs": "^4.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/metavuln-calculator": "^8.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.1", + "@npmcli/query": "^4.0.0", + "@npmcli/redact": "^3.0.0", + "@npmcli/run-script": "^9.0.1", + "bin-links": "^5.0.0", + "cacache": "^19.0.1", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", - "nopt": "^7.0.0", - "npm-install-checks": "^6.0.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^8.0.0", + "npm-install-checks": "^7.1.0", + "npm-package-arg": "^12.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.1", + "pacote": "^19.0.0", + "parse-conflict-json": "^4.0.0", + "proc-log": "^5.0.0", + "proggy": "^3.0.0", "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", - "read-package-json-fast": "^3.0.2", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^4.0.0", "semver": "^7.3.7", - "ssri": "^10.0.1", + "ssri": "^12.0.0", "treeverse": "^3.0.0", "walk-up-path": "^3.0.1" }, @@ -11089,44 +8436,31 @@ "arborist": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "6.2.1", + "version": "9.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/map-workspaces": "^3.0.2", - "ci-info": "^3.8.0", - "ini": "^4.1.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "read-package-json-fast": "^3.0.2", + "@npmcli/map-workspaces": "^4.0.1", + "@npmcli/package-json": "^6.0.1", + "ci-info": "^4.0.0", + "ini": "^5.0.0", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/fs": { - "version": "3.1.0", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -11135,292 +8469,267 @@ "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "4.1.0", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", + "@npmcli/promise-spawn": "^8.0.0", + "ini": "^5.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^10.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^3.0.0" + "which": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "npm-bundled": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", + "version": "4.0.2", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/name-from-folder": "^3.0.0", + "@npmcli/package-json": "^6.0.0", "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" + "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "5.0.1", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "cacache": "^17.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", + "cacache": "^19.0.0", + "json-parse-even-better-errors": "^4.0.0", + "pacote": "^20.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/name-from-folder": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "4.0.1", + "node_modules/npm/node_modules/@npmcli/metavuln-calculator/node_modules/pacote": { + "version": "20.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/git": "^4.1.0", - "glob": "^10.2.2", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "proc-log": "^3.0.0", - "semver": "^7.5.3" + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", + "tar": "^6.1.11" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "which": "^3.0.0" + "bin": { + "pacote": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@npmcli/query": { + "node_modules/npm/node_modules/@npmcli/name-from-folder": { "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "6.0.2", + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@pkgjs/parseargs": { - "version": "0.11.0", + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "6.2.0", "dev": true, "inBundle": true, - "license": "MIT", - "optional": true, + "license": "ISC", "peer": true, + "dependencies": { + "@npmcli/git": "^6.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^8.0.0", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" + }, "engines": { - "node": ">=14" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.1.0", + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "8.0.2", "dev": true, "inBundle": true, - "license": "Apache-2.0", + "license": "ISC", "peer": true, + "dependencies": { + "which": "^5.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "1.0.2", + "node_modules/npm/node_modules/@npmcli/query": { + "version": "4.0.1", "dev": true, "inBundle": true, - "license": "Apache-2.0", + "license": "ISC", "peer": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "tuf-js": "^1.1.7" + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@tootallnate/once": { - "version": "2.0.0", + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "3.2.2", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "peer": true, "engines": { - "node": ">= 10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@tufjs/canonical-json": { - "version": "1.0.0", + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "9.1.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "peer": true, + "dependencies": { + "@npmcli/node-gyp": "^4.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "node-gyp": "^11.0.0", + "proc-log": "^5.0.0", + "which": "^5.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/@tufjs/models": { - "version": "1.0.4", + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "peer": true, - "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=14" } }, - "node_modules/npm/node_modules/abbrev": { - "version": "2.0.0", + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.4.3", "dev": true, "inBundle": true, - "license": "ISC", + "license": "Apache-2.0", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/abort-controller": { - "version": "3.0.0", + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "3.1.1", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "peer": true, "dependencies": { - "event-target-shim": "^5.0.0" + "@sigstore/protobuf-specs": "^0.4.1", + "tuf-js": "^3.0.1" }, "engines": { - "node": ">=6.5" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/agent-base": { - "version": "6.0.2", + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", "dev": true, "inBundle": true, "license": "MIT", "peer": true, - "dependencies": { - "debug": "4" - }, "engines": { - "node": ">= 6.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.3.0", + "node_modules/npm/node_modules/abbrev": { + "version": "3.0.1", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "peer": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, "engines": { - "node": ">= 8.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.3", "dev": true, "inBundle": true, "license": "MIT", "peer": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 14" } }, "node_modules/npm/node_modules/ansi-regex": { @@ -11434,16 +8743,13 @@ } }, "node_modules/npm/node_modules/ansi-styles": { - "version": "4.3.0", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "MIT", "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -11463,20 +8769,6 @@ "license": "MIT", "peer": true }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", "dev": true, @@ -11484,55 +8776,38 @@ "license": "MIT", "peer": true }, - "node_modules/npm/node_modules/base64-js": { - "version": "1.5.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "peer": true - }, "node_modules/npm/node_modules/bin-links": { - "version": "4.0.2", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" + "cmd-shim": "^7.0.0", + "npm-normalize-package-bin": "^4.0.0", + "proc-log": "^5.0.0", + "read-cmd-shim": "^5.0.0", + "write-file-atomic": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -11541,67 +8816,86 @@ "balanced-match": "^1.0.0" } }, - "node_modules/npm/node_modules/buffer": { - "version": "6.0.3", + "node_modules/npm/node_modules/cacache": { + "version": "19.0.1", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "inBundle": true, - "license": "MIT", + "license": "ISC", "peer": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@npmcli/fs": "^4.0.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^7.0.2", + "ssri": "^12.0.0", + "tar": "^7.4.3", + "unique-filename": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/builtins": { - "version": "5.0.1", + "node_modules/npm/node_modules/cacache/node_modules/chownr": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", "peer": true, - "dependencies": { - "semver": "^7.0.0" + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/cacache": { - "version": "17.1.3", + "node_modules/npm/node_modules/cacache/node_modules/tar": { + "version": "7.4.3", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=18" + } + }, + "node_modules/npm/node_modules/cacache/node_modules/yallist": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "peer": true, + "engines": { + "node": ">=18" } }, "node_modules/npm/node_modules/chalk": { - "version": "5.3.0", + "version": "5.4.1", "dev": true, "inBundle": true, "license": "MIT", @@ -11624,7 +8918,7 @@ } }, "node_modules/npm/node_modules/ci-info": { - "version": "3.8.0", + "version": "4.2.0", "dev": true, "funding": [ { @@ -11640,26 +8934,16 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "3.1.1", + "version": "4.1.3", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { - "ip-regex": "^4.1.0" + "ip-regex": "^5.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" + "node": ">=14" } }, "node_modules/npm/node_modules/cli-columns": { @@ -11676,109 +8960,45 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.1", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/npm/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true - }, - "node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "bin": { - "color-support": "bin.js" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/columnify": { - "version": "1.6.0", + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8.0.0" + "node": ">=7.0.0" } }, - "node_modules/npm/node_modules/common-ancestor-path": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, - "node_modules/npm/node_modules/concat-map": { - "version": "0.0.1", + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", "dev": true, "inBundle": true, "license": "MIT", "peer": true }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true }, "node_modules/npm/node_modules/cross-spawn": { - "version": "7.0.3", + "version": "7.0.6", "dev": true, "inBundle": true, "license": "MIT", @@ -11822,13 +9042,13 @@ } }, "node_modules/npm/node_modules/debug": { - "version": "4.3.4", + "version": "4.4.1", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -11839,45 +9059,8 @@ } } }, - "node_modules/npm/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true - }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true - }, - "node_modules/npm/node_modules/depd": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/npm/node_modules/diff": { - "version": "5.1.0", + "version": "5.2.0", "dev": true, "inBundle": true, "license": "BSD-3-Clause", @@ -11928,28 +9111,8 @@ "license": "MIT", "peer": true }, - "node_modules/npm/node_modules/event-target-shim": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/events": { - "version": "3.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/npm/node_modules/exponential-backoff": { - "version": "3.1.1", + "version": "3.1.2", "dev": true, "inBundle": true, "license": "Apache-2.0", @@ -11966,13 +9129,13 @@ } }, "node_modules/npm/node_modules/foreground-child": { - "version": "3.1.1", + "version": "3.3.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -11983,70 +9146,34 @@ } }, "node_modules/npm/node_modules/fs-minipass": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, - "node_modules/npm/node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true - }, - "node_modules/npm/node_modules/gauge": { - "version": "5.0.1", + "version": "3.0.3", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/glob": { - "version": "10.2.7", + "version": "10.4.5", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12059,83 +9186,52 @@ "license": "ISC", "peer": true }, - "node_modules/npm/node_modules/has": { - "version": "1.0.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "6.1.1", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", + "version": "4.2.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "peer": true }, "node_modules/npm/node_modules/http-proxy-agent": { - "version": "5.0.0", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "5.0.1", + "version": "7.0.6", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "agent-base": "6", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/humanize-ms": { - "version": "1.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.0.0" + "node": ">= 14" } }, "node_modules/npm/node_modules/iconv-lite": { @@ -12152,29 +9248,8 @@ "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/ieee754": { - "version": "1.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause", - "peer": true - }, "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.3", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -12183,7 +9258,7 @@ "minimatch": "^9.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/imurmurhash": { @@ -12196,104 +9271,73 @@ "node": ">=0.8.19" } }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, "node_modules/npm/node_modules/ini": { - "version": "4.1.1", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/init-package-json": { - "version": "5.0.0", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "npm-package-arg": "^10.0.0", - "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^6.0.0", + "@npmcli/package-json": "^6.0.0", + "npm-package-arg": "^12.0.0", + "promzard": "^2.0.0", + "read": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/ip": { - "version": "2.0.0", + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", "dev": true, "inBundle": true, "license": "MIT", - "peer": true + "peer": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, "node_modules/npm/node_modules/ip-regex": { - "version": "4.3.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/is-cidr": { - "version": "4.0.2", + "version": "5.1.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { - "cidr-regex": "^3.1.1" + "cidr-regex": "^4.1.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/npm/node_modules/is-core-module": { - "version": "2.12.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=14" } }, "node_modules/npm/node_modules/is-fullwidth-code-point": { @@ -12306,13 +9350,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/is-lambda": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true - }, "node_modules/npm/node_modules/isexe": { "version": "2.0.0", "dev": true, @@ -12321,7 +9358,7 @@ "peer": true }, "node_modules/npm/node_modules/jackspeak": { - "version": "2.2.1", + "version": "3.4.3", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -12329,9 +9366,6 @@ "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -12339,14 +9373,21 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true + }, "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/json-stringify-nice": { @@ -12384,223 +9425,224 @@ "peer": true }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "7.0.2", + "version": "9.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "5.0.19", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/arborist": "^6.3.0", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", + "@npmcli/arborist": "^8.0.1", + "@npmcli/installed-package-contents": "^3.0.0", + "binary-extensions": "^2.3.0", "diff": "^5.1.0", - "minimatch": "^9.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8", - "tar": "^6.1.13" + "minimatch": "^9.0.4", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", + "tar": "^6.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "6.0.3", + "version": "9.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/arborist": "^6.3.0", - "@npmcli/run-script": "^6.0.0", - "ci-info": "^3.7.1", - "npm-package-arg": "^10.1.0", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "proc-log": "^3.0.0", - "read": "^2.0.0", - "read-package-json-fast": "^3.0.2", + "@npmcli/arborist": "^8.0.1", + "@npmcli/run-script": "^9.0.1", + "ci-info": "^4.0.0", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0", + "proc-log": "^5.0.0", + "read": "^4.0.0", + "read-package-json-fast": "^4.0.0", "semver": "^7.3.7", "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "4.0.19", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/arborist": "^6.3.0" + "@npmcli/arborist": "^8.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "9.0.3", + "version": "11.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "5.0.4", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "5.0.19", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/arborist": "^6.3.0", - "@npmcli/run-script": "^6.0.0", - "npm-package-arg": "^10.1.0", - "pacote": "^15.0.8" + "@npmcli/arborist": "^8.0.1", + "@npmcli/run-script": "^9.0.1", + "npm-package-arg": "^12.0.0", + "pacote": "^19.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "7.5.0", + "version": "10.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "ci-info": "^3.6.1", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", - "proc-log": "^3.0.0", + "ci-info": "^4.0.0", + "normalize-package-data": "^7.0.0", + "npm-package-arg": "^12.0.0", + "npm-registry-fetch": "^18.0.1", + "proc-log": "^5.0.0", "semver": "^7.3.7", - "sigstore": "^1.4.0", - "ssri": "^10.0.1" + "sigstore": "^3.0.0", + "ssri": "^12.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "6.0.2", + "version": "8.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "5.0.3", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^14.0.3" + "npm-registry-fetch": "^18.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "4.0.2", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/git": "^4.0.1", - "@npmcli/run-script": "^6.0.0", - "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", + "@npmcli/git": "^6.0.1", + "@npmcli/run-script": "^9.0.1", + "json-parse-even-better-errors": "^4.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.7" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/lru-cache": { - "version": "7.18.3", + "version": "10.4.3", "dev": true, "inBundle": true, "license": "ISC", - "peer": true, - "engines": { - "node": ">=12" - } + "peer": true }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "11.1.1", + "version": "14.0.3", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", + "@npmcli/agent": "^3.0.0", + "cacache": "^19.0.1", "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", + "negotiator": "^1.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" + "ssri": "^12.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.3", + "version": "9.0.5", "dev": true, "inBundle": true, "license": "ISC", @@ -12616,54 +9658,41 @@ } }, "node_modules/npm/node_modules/minipass": { - "version": "5.0.0", + "version": "7.1.2", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm/node_modules/minipass-collect": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "3.0.3", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "minipass": "^5.0.0", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "minizlib": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" }, "optionalDependencies": { "encoding": "^0.1.13" @@ -12695,30 +9724,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", "dev": true, @@ -12772,30 +9777,16 @@ } }, "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.1.2" }, "engines": { - "node": ">=8" + "node": ">= 18" } }, "node_modules/npm/node_modules/mkdirp": { @@ -12819,27 +9810,17 @@ "peer": true }, "node_modules/npm/node_modules/mute-stream": { - "version": "1.0.0", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/negotiator": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/node-gyp": { - "version": "9.4.0", + "version": "11.2.0", "dev": true, "inBundle": true, "license": "MIT", @@ -12847,236 +9828,132 @@ "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^14.0.3", + "nopt": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "tar": "^7.4.3", + "tinyglobby": "^0.2.12", + "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { - "version": "1.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, - "node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", + "node_modules/npm/node_modules/node-gyp/node_modules/chownr": { + "version": "3.0.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": 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" + "bin": { + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { - "node": "*" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", + "node_modules/npm/node_modules/node-gyp/node_modules/tar": { + "version": "7.4.3", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/readable-stream": { - "version": "3.6.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" }, "engines": { - "node": ">= 6" + "node": ">=18" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, - "node_modules/npm/node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", + "node_modules/npm/node_modules/node-gyp/node_modules/yallist": { + "version": "5.0.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, "engines": { - "node": ">= 8" + "node": ">=18" } }, "node_modules/npm/node_modules/nopt": { - "version": "7.2.0", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "abbrev": "^2.0.0" + "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/normalize-package-data": { - "version": "5.0.0", + "version": "7.0.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "peer": true, "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", + "hosted-git-info": "^8.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-audit-report": { - "version": "5.0.0", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.0", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "npm-normalize-package-bin": "^3.0.0" + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.1.1", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -13085,205 +9962,173 @@ "semver": "^7.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "10.1.0", + "version": "12.0.2", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", + "hosted-git-info": "^8.0.0", + "proc-log": "^5.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "validate-npm-package-name": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-packlist": { - "version": "7.0.4", + "version": "9.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "ignore-walk": "^6.0.0" + "ignore-walk": "^7.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/npm-pick-manifest": { - "version": "8.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-profile": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "14.0.5", + "version": "10.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" + "npm-install-checks": "^7.1.0", + "npm-normalize-package-bin": "^4.0.0", + "npm-package-arg": "^12.0.0", + "semver": "^7.3.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/npm-user-validate": { - "version": "2.0.0", + "node_modules/npm/node_modules/npm-profile": { + "version": "11.0.1", "dev": true, "inBundle": true, - "license": "BSD-2-Clause", + "license": "ISC", "peer": true, + "dependencies": { + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "18.0.2", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" + "@npmcli/redact": "^3.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^14.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^4.0.0", + "minizlib": "^3.0.1", + "npm-package-arg": "^12.0.0", + "proc-log": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/once": { - "version": "1.4.0", + "node_modules/npm/node_modules/npm-user-validate": { + "version": "3.0.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BSD-2-Clause", "peer": true, - "dependencies": { - "wrappy": "1" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", + "version": "7.0.3", "dev": true, "inBundle": true, "license": "MIT", "peer": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BlueOak-1.0.0", + "peer": true + }, "node_modules/npm/node_modules/pacote": { - "version": "15.2.0", + "version": "19.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", + "@npmcli/git": "^6.0.0", + "@npmcli/installed-package-contents": "^3.0.0", + "@npmcli/package-json": "^6.0.0", + "@npmcli/promise-spawn": "^8.0.0", + "@npmcli/run-script": "^9.0.0", + "cacache": "^19.0.0", "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^12.0.0", + "npm-packlist": "^9.0.0", + "npm-pick-manifest": "^10.0.0", + "npm-registry-fetch": "^18.0.0", + "proc-log": "^5.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", - "ssri": "^10.0.0", + "sigstore": "^3.0.0", + "ssri": "^12.0.0", "tar": "^6.1.11" }, "bin": { - "pacote": "lib/bin.js" + "pacote": "bin/index.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/parse-conflict-json": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "json-parse-even-better-errors": "^3.0.0", + "json-parse-even-better-errors": "^4.0.0", "just-diff": "^6.0.0", "just-diff-apply": "^5.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/path-key": { @@ -13297,34 +10142,24 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.9.2", + "version": "1.11.1", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "peer": true, "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.13", + "version": "7.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -13338,23 +10173,23 @@ } }, "node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/process": { - "version": "0.11.10", + "node_modules/npm/node_modules/proggy": { + "version": "3.0.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "peer": true, "engines": { - "node": ">= 0.6.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/promise-all-reject-late": { @@ -13368,7 +10203,7 @@ } }, "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.2", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -13377,13 +10212,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", "dev": true, @@ -13399,16 +10227,16 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "1.0.0", + "version": "2.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "read": "^2.0.0" + "read": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/qrcode-terminal": { @@ -13421,72 +10249,40 @@ } }, "node_modules/npm/node_modules/read": { - "version": "2.1.0", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "mute-stream": "~1.0.0" + "mute-stream": "^2.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/read-cmd-shim": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-package-json": { - "version": "6.0.4", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/read-package-json-fast": { - "version": "3.0.2", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/readable-stream": { - "version": "4.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/retry": { @@ -13499,184 +10295,135 @@ "node": ">= 4" } }, - "node_modules/npm/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", "dev": true, "inBundle": true, "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "optional": true, + "peer": true }, - "node_modules/npm/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", + "node_modules/npm/node_modules/semver": { + "version": "7.7.2", "dev": true, "inBundle": true, "license": "ISC", "peer": 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" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, - "node_modules/npm/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "MIT", "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" + "shebang-regex": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "peer": true - }, - "node_modules/npm/node_modules/safer-buffer": { - "version": "2.1.2", + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", "dev": true, "inBundle": true, "license": "MIT", - "optional": true, - "peer": true + "peer": true, + "engines": { + "node": ">=8" + } }, - "node_modules/npm/node_modules/semver": { - "version": "7.5.4", + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", + "node_modules/npm/node_modules/sigstore": { + "version": "3.1.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "Apache-2.0", "peer": true, "dependencies": { - "yallist": "^4.0.0" + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" }, "engines": { - "node": ">=10" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, - "node_modules/npm/node_modules/shebang-command": { - "version": "2.0.0", + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/bundle": { + "version": "3.1.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "peer": true, "dependencies": { - "shebang-regex": "^3.0.0" + "@sigstore/protobuf-specs": "^0.4.0" }, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/shebang-regex": { - "version": "3.0.0", + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/core": { + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", "peer": true, "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/signal-exit": { - "version": "4.0.2", + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/sign": { + "version": "3.1.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "Apache-2.0", "peer": true, - "engines": { - "node": ">=14" + "dependencies": { + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.0", + "make-fetch-happen": "^14.0.2", + "proc-log": "^5.0.0", + "promise-retry": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/sigstore": { - "version": "1.7.0", + "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/verify": { + "version": "2.1.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.1.0", - "@sigstore/tuf": "^1.0.1", - "make-fetch-happen": "^11.0.1" - }, - "bin": { - "sigstore": "bin/sigstore.js" + "@sigstore/bundle": "^3.1.0", + "@sigstore/core": "^2.0.0", + "@sigstore/protobuf-specs": "^0.4.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/smart-buffer": { @@ -13691,33 +10438,33 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.7.1", + "version": "2.8.5", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "7.0.0", + "version": "8.0.5", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/npm/node_modules/spdx-correct": { @@ -13731,15 +10478,26 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.3.0", + "version": "2.5.0", "dev": true, "inBundle": true, "license": "CC-BY-3.0", "peer": true }, "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "MIT", @@ -13750,33 +10508,30 @@ } }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.13", + "version": "3.0.21", "dev": true, "inBundle": true, "license": "CC0-1.0", "peer": true }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "peer": true + }, "node_modules/npm/node_modules/ssri": { - "version": "10.0.4", + "version": "12.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "minipass": "^5.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/string-width": { @@ -13851,7 +10606,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "6.1.15", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13894,6 +10649,43 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -13908,6 +10700,51 @@ "license": "MIT", "peer": true }, + "node_modules/npm/node_modules/tinyglobby": { + "version": "0.2.14", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", "dev": true, @@ -13919,35 +10756,49 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "1.1.7", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", "peer": true, "dependencies": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" + "@tufjs/models": "3.0.1", + "debug": "^4.3.6", + "make-fetch-happen": "^14.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/tuf-js/node_modules/@tufjs/models": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.5" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/unique-filename": { - "version": "3.0.0", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "unique-slug": "^4.0.0" + "unique-slug": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/unique-slug": { - "version": "4.0.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -13956,7 +10807,7 @@ "imurmurhash": "^0.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/util-deprecate": { @@ -13977,17 +10828,25 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "peer": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "5.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/walk-up-path": { @@ -13997,40 +10856,30 @@ "license": "ISC", "peer": true }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "peer": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/npm/node_modules/which": { - "version": "3.0.1", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", "peer": true, "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", "dev": true, "inBundle": true, "license": "ISC", "peer": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "engines": { + "node": ">=16" } }, "node_modules/npm/node_modules/wrap-ansi": { @@ -14070,21 +10919,24 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "inBundle": true, "license": "MIT", "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -14093,7 +10945,7 @@ "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { @@ -14137,15 +10989,8 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "peer": true - }, "node_modules/npm/node_modules/write-file-atomic": { - "version": "5.0.1", + "version": "6.0.0", "dev": true, "inBundle": true, "license": "ISC", @@ -14155,7 +11000,7 @@ "signal-exit": "^4.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/yallist": { @@ -14166,10 +11011,11 @@ "peer": true }, "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-17.1.0.tgz", + "integrity": "sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -14178,12 +11024,12 @@ "decamelize": "^1.2.0", "find-cache-dir": "^3.2.0", "find-up": "^4.1.0", - "foreground-child": "^2.0.0", + "foreground-child": "^3.3.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-instrument": "^6.0.2", "istanbul-lib-processinfo": "^2.0.2", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", @@ -14203,7 +11049,7 @@ "nyc": "bin/nyc.js" }, "engines": { - "node": ">=8.9" + "node": ">=18" } }, "node_modules/nyc/node_modules/ansi-styles": { @@ -14211,6 +11057,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -14226,6 +11073,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -14237,6 +11085,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -14248,13 +11097,22 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -14268,6 +11126,7 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -14277,6 +11136,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14286,6 +11146,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -14298,6 +11159,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -14313,6 +11175,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -14320,20 +11183,12 @@ "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/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -14348,6 +11203,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -14361,13 +11217,15 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -14385,120 +11243,28 @@ "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/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "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", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "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, - "license": "MIT", + "license": "ISC", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, "node_modules/once": { @@ -14506,6 +11272,7 @@ "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" } @@ -14515,6 +11282,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -14526,129 +11294,29 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.4", + "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", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-each-series": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -14657,92 +11325,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", - "dev": true, - "peer": true, - "dependencies": { - "p-map": "^5.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "node_modules/p-event": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" + "p-timeout": "^6.1.2" }, "engines": { - "node": ">=12" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-filter/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "node_modules/p-filter": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12" + "p-map": "^7.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "peer": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-filter/node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "aggregate-error": "^4.0.0" - }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -14753,6 +11378,8 @@ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -14762,6 +11389,7 @@ "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" }, @@ -14777,6 +11405,7 @@ "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" }, @@ -14792,6 +11421,7 @@ "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, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -14804,6 +11434,7 @@ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-3.0.0.tgz", "integrity": "sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -14812,11 +11443,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -14826,6 +11472,7 @@ "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.15", "hasha": "^5.0.0", @@ -14836,11 +11483,19 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pad-right": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", "integrity": "sha512-4cy8M95ioIGolCoMmm2cMntGR1lPLEbOMzOKu8bzjuJP6JpzEMQcDHmh7hHLYGgob+nKe1YHFMaG4V59HQa89g==", "dev": true, + "license": "MIT", "dependencies": { "repeat-string": "^1.5.2" }, @@ -14853,6 +11508,7 @@ "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" }, @@ -14865,6 +11521,7 @@ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, + "license": "MIT", "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", @@ -14883,6 +11540,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14896,26 +11555,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true, + "license": "MIT", + "peer": 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, + "license": "MIT", + "peer": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT", + "peer": true }, "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" } @@ -14925,6 +11611,7 @@ "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" } @@ -14934,45 +11621,58 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "isarray": "0.0.1" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -14985,16 +11685,28 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" } }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "find-up": "^2.0.0", @@ -15009,6 +11721,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "locate-path": "^2.0.0" @@ -15022,6 +11735,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "p-locate": "^2.0.0", @@ -15036,6 +11750,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "p-try": "^1.0.0" @@ -15049,6 +11764,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "p-limit": "^1.1.0" @@ -15062,6 +11778,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -15072,6 +11789,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -15082,6 +11800,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -15094,6 +11813,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -15107,6 +11827,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -15119,6 +11840,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -15134,6 +11856,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -15141,14 +11864,33 @@ "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", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, "engines": { - "node": ">= 0.4" + "node": "^10 || ^12 || >=14" } }, "node_modules/prelude-ls": { @@ -15156,20 +11898,22 @@ "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" } }, "node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, + "license": "MIT", "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" @@ -15180,6 +11924,7 @@ "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" }, @@ -15187,17 +11932,37 @@ "node": ">=6.0.0" } }, + "node_modules/pretty-ms": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT", + "peer": 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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", + "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", "dev": true, + "license": "MIT", "dependencies": { "fromentries": "^1.2.0" }, @@ -15210,47 +11975,26 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "dev": true, + "license": "MIT" + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true, + "license": "ISC", "peer": true }, - "node_modules/proxyquire": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", - "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", - "dev": true, - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -15269,22 +12013,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -15294,6 +12031,7 @@ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "peer": true, "dependencies": { "deep-extend": "^0.6.0", @@ -15305,44 +12043,51 @@ "rc": "cli.js" } }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "peer": true + }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/read-pkg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", - "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^6.0.0", - "parse-json": "^7.0.0", - "type-fest": "^4.2.0" + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", - "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", + "node_modules/read-package-up/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.1.0", - "type-fest": "^4.2.0" - }, + "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=16" }, @@ -15350,81 +12095,54 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "yocto-queue": "^1.0.0" + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/read-pkg-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-11.0.0.tgz", + "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==", + "deprecated": "Renamed to read-package-up", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "p-limit": "^4.0.0" + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", - "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==", + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, + "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=16" }, @@ -15432,114 +12150,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/read-pkg/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/read-pkg/node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/read-pkg/node_modules/parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, - "engines": { - "node": ">=16" + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/parse-json/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "dev": true, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/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/read-pkg/node_modules/type-fest": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", - "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==", + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, + "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=16" }, @@ -15547,159 +12183,67 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/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/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "dev": true, - "peer": true, - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.2" - }, + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 14.18.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/regexp-match-indices": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regexp-match-indices/-/regexp-match-indices-1.0.2.tgz", + "integrity": "sha512-DwZuAkt8NF5mKwGGER1EGh2PRqyvhRhhLviH+R8y8dIuaQROlUfXjt4s9ZTXstIsSkptf06BSvwcEmmfheJJWQ==", "dev": true, + "license": "Apache-2.0", "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" + "regexp-tree": "^0.1.11" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" } }, "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@pnpm/npm-conf": "^2.1.0" @@ -15708,32 +12252,12 @@ "node": ">=14" } }, - "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/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, + "license": "ISC", "dependencies": { "es6-error": "^4.0.1" }, @@ -15746,6 +12270,7 @@ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-gfm": "^0.1.0", "micromark-extension-gfm": "^0.3.0" @@ -15760,6 +12285,7 @@ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^0.8.0" }, @@ -15773,6 +12299,7 @@ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-to-markdown": "^0.6.0" }, @@ -15785,13 +12312,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } @@ -15801,15 +12330,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15818,90 +12339,15 @@ "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/resolve": { - "version": "1.22.8", - "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", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "ISC" }, - "node_modules/resolve-cwd/node_modules/resolve-from": { + "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, + "license": "MIT", "engines": { "node": ">=8" } @@ -15911,82 +12357,85 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", - "dev": true, - "dependencies": { - "eslint": "^7.32.0" - } - }, - "node_modules/rewire/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-9.0.1.tgz", + "integrity": "sha512-dnbLeTwHpXvWJjswC6CshXUUnnpE5AVhlayVRvDJhJx5ejbO4nbj1IXqN2urErgB7TpHUAMpf6iPDhQIxeSQOQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.10.4" + "eslint": "^9.30", + "pirates": "^4.0.7" } }, "node_modules/rewire/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/rewire/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/rewire/node_modules/@eslint/js": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, + "license": "MIT", "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, - "node_modules/rewire/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/rewire/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, - "bin": { - "acorn": "bin/acorn" + "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" }, - "engines": { - "node": ">=0.4.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/rewire/node_modules/ansi-styles": { @@ -15994,6 +12443,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -16009,6 +12459,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -16025,6 +12476,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -16036,13 +12488,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/rewire/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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -16051,116 +12505,148 @@ } }, "node_modules/rewire/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/rewire/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/rewire/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==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/rewire/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/rewire/node_modules/espree/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/rewire/node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=16.0.0" } }, - "node_modules/rewire/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/rewire/node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": ">= 6" + "node": ">=16" } }, "node_modules/rewire/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16171,51 +12657,24 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/rewire/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rewire/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/rewire/node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "node_modules/rewire/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/rewire/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" }, @@ -16223,29 +12682,13 @@ "node": ">=8" } }, - "node_modules/rewire/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/rewire/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/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -16256,13 +12699,46 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/rollup": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, "engines": { - "node": ">=0.12.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", + "fsevents": "~2.3.2" } }, "node_modules/run-parallel": { @@ -16284,51 +12760,11 @@ "url": "https://feross.org/support" } ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/rxjs/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/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -16347,86 +12783,48 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } + ], + "license": "MIT" }, "node_modules/seed-random": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semantic-release": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-21.1.1.tgz", - "integrity": "sha512-OCIazQnaCHdq1F6zfmKS0P7jZakYq0weiqW2mxUWo4H2CDnxelUoa/0Bs/dQatoHc6JFh6lG2HWpusdl93bFcw==", + "version": "23.1.1", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-23.1.1.tgz", + "integrity": "sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@semantic-release/commit-analyzer": "^10.0.0", + "@semantic-release/commit-analyzer": "^12.0.0", "@semantic-release/error": "^4.0.0", - "@semantic-release/github": "^9.0.0", - "@semantic-release/npm": "^10.0.2", - "@semantic-release/release-notes-generator": "^11.0.0", - "aggregate-error": "^4.0.1", - "cosmiconfig": "^8.0.0", + "@semantic-release/github": "^10.0.0", + "@semantic-release/npm": "^12.0.0", + "@semantic-release/release-notes-generator": "^13.0.0", + "aggregate-error": "^5.0.0", + "cosmiconfig": "^9.0.0", "debug": "^4.0.0", - "env-ci": "^9.0.0", - "execa": "^8.0.0", - "figures": "^5.0.0", - "find-versions": "^5.1.0", + "env-ci": "^11.0.0", + "execa": "^9.0.0", + "figures": "^6.0.0", + "find-versions": "^6.0.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", "hosted-git-info": "^7.0.0", + "import-from-esm": "^1.3.1", "lodash-es": "^4.17.21", - "marked": "^5.0.0", - "marked-terminal": "^5.1.1", + "marked": "^12.0.0", + "marked-terminal": "^7.0.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", - "read-pkg-up": "^10.0.0", + "read-package-up": "^11.0.0", "resolve-from": "^5.0.0", "semver": "^7.3.2", "semver-diff": "^4.0.0", @@ -16437,20 +12835,31 @@ "semantic-release": "bin/semantic-release.js" }, "engines": { - "node": ">=18" + "node": ">=20.8.1" } }, "node_modules/semantic-release-config-kuzzle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semantic-release-config-kuzzle/-/semantic-release-config-kuzzle-1.0.0.tgz", - "integrity": "sha512-/Hnai4G0ax4rJP7YuJ3+X48HUNLo0v3wDK1pcTFiYMA+8sa+wU9w5lVWWQStykufndB6XLnyd8rden79jAaTww==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semantic-release-config-kuzzle/-/semantic-release-config-kuzzle-1.1.2.tgz", + "integrity": "sha512-lX672E6448wWWkpvlItp7jZcOEwla79k/COcLKMDS1eI7vbOkz/dEYmTgFvVBs8hjfPaSyZLr01Z1XKn4KhqUg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/git": "^10.0.1", + "conventional-changelog-conventionalcommits": "^7.0.2", + "semantic-release-slack-bot": "^4.0.2" + }, + "peerDependencies": { + "semantic-release": "^23.1.1" + } }, "node_modules/semantic-release-slack-bot": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/semantic-release-slack-bot/-/semantic-release-slack-bot-4.0.2.tgz", "integrity": "sha512-EgpUGmxDq5l9qSfAJNkGMOjxi6p5a7lAMnV5sNG53QxpIOsgMUF9X3J+NeaFWXsGyRP5CEkVtDdDkfvvNNo2ag==", "dev": true, + "license": "MIT", "dependencies": { "@semantic-release/error": "^2.2.0", "micromatch": "4.0.2", @@ -16468,13 +12877,15 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semantic-release-slack-bot/node_modules/micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.1", "picomatch": "^2.0.5" @@ -16484,58 +12895,46 @@ } }, "node_modules/semantic-release/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "clean-stack": "^4.0.0", + "clean-stack": "^5.2.0", "indent-string": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semantic-release/node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.3.0.tgz", + "integrity": "sha512-9ngPTOhYGQqNVSfeJkYXHmF7AGWp4/nN5D/QqNQs3Dvxd1Kk/WpjHfNujKHYUQ/5CoGyOyFNoWSPk5afzP0QVg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "escape-string-regexp": "5.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/semantic-release/node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -16545,37 +12944,28 @@ } }, "node_modules/semantic-release/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "is-unicode-supported": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "peer": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/semantic-release/node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -16584,61 +12974,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/semantic-release/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/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, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semantic-release/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, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/semantic-release/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==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, + "license": "ISC", "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -16646,57 +13002,6 @@ "node": ">=10" } }, - "node_modules/semantic-release/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semantic-release/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, - "peer": true - }, - "node_modules/semantic-release/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "peer": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/semantic-release/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12" - } - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -16712,6 +13017,7 @@ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "semver": "^7.3.5" @@ -16723,28 +13029,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver-diff/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, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/semver-diff/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==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, + "license": "ISC", "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -16752,52 +13043,26 @@ "node": ">=10" } }, - "node_modules/semver-diff/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, - "peer": true - }, - "node_modules/semver-regex": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", - "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serialize-error": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-4.1.0.tgz", - "integrity": "sha512-5j9GgyGsP9vV9Uj1S0lDCvlsd+gc2LEPVK7HHHte7IyPwOD4lVQFeaX143gx3U5AnoCi+wbcb3mvaxVysjpxEw==", - "dev": true, - "dependencies": { - "type-fest": "^0.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/serialize-error/node_modules/type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "node_modules/semver-regex": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", + "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -16806,59 +13071,15 @@ "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 - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } + "license": "ISC" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -16871,6 +13092,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -16880,6 +13102,7 @@ "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", "dev": true, + "license": "MIT", "dependencies": { "should-equal": "^2.0.0", "should-format": "^3.0.3", @@ -16893,6 +13116,7 @@ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", "dev": true, + "license": "MIT", "dependencies": { "should-type": "^1.4.0" } @@ -16902,6 +13126,7 @@ "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", "dev": true, + "license": "MIT", "dependencies": { "should-type": "^1.3.0", "should-type-adaptors": "^1.0.1" @@ -16912,6 +13137,7 @@ "resolved": "https://registry.npmjs.org/should-sinon/-/should-sinon-0.0.6.tgz", "integrity": "sha512-ScBOH5uW5QVFaONmUnIXANSR6z5B8IKzEmBP3HE5sPOCDuZ88oTMdUdnKoCVQdLcCIrRrhRLPS5YT+7H40a04g==", "dev": true, + "license": "MIT", "peerDependencies": { "should": ">= 8.x" } @@ -16920,13 +13146,15 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "should-type": "^1.3.0", "should-util": "^1.0.0" @@ -16936,38 +13164,22 @@ "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", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, "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 + "dev": true, + "license": "ISC" }, "node_modules/signale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "chalk": "^2.3.2", @@ -16978,11 +13190,23 @@ "node": ">=6" } }, + "node_modules/signale/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/signale/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "escape-string-regexp": "^1.0.5" @@ -16992,16 +13216,16 @@ } }, "node_modules/sinon": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", - "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-21.0.0.tgz", + "integrity": "sha512-TOgRcwFPbfGtpqvZw+hyqJDvqfapr1qUlOizROIk4bBLjlsjlB00Pg6wMFXNtJRpu+eCZuVOaLatG7M8105kAw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^9.1.2", - "@sinonjs/samsam": "^7.0.1", - "diff": "^5.0.0", - "nise": "^5.1.2", + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.5", + "@sinonjs/samsam": "^8.0.1", + "diff": "^7.0.0", "supports-color": "^7.2.0" }, "funding": { @@ -17010,19 +13234,21 @@ } }, "node_modules/sinon/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/sinon/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -17032,6 +13258,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -17041,6 +13268,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -17048,11 +13276,26 @@ "node": ">=8" } }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/slackify-markdown": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/slackify-markdown/-/slackify-markdown-4.4.0.tgz", - "integrity": "sha512-a2b0Rh4aPi3PYt23N0vxPn7emkQtShewhLX8uIiXOMlPBAXRki+/9kEXJztZr1Oo9rDb1YxScGuZ0D2ubLPhvQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/slackify-markdown/-/slackify-markdown-4.5.0.tgz", + "integrity": "sha512-qr/BvNVzC6Gok1agvGP2CRou60+M8eFON/bJERZ64YsvKStHtcG3qK3IL58ZvBSEnWJTYZmrTi2zat+1vJd1yA==", "dev": true, + "license": "MIT", "dependencies": { "mdast-util-to-markdown": "^0.6.2", "remark-gfm": "^1.0.0", @@ -17068,65 +13311,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -17136,6 +13321,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -17145,6 +13341,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -17155,6 +13352,7 @@ "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/spawn-wrap": { @@ -17162,6 +13360,7 @@ "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^2.0.0", "is-windows": "^1.0.2", @@ -17174,55 +13373,63 @@ "node": ">=8" } }, + "node_modules/spawn-wrap/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, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } + "license": "CC0-1.0" }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, + "license": "ISC", + "peer": true, "engines": { "node": ">= 10.x" } @@ -17231,82 +13438,34 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-chain": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-2.0.0.tgz", - "integrity": "sha512-GGrHXePi305aW7XQweYZZwiRwR7Js3MWoK/EHzzB9ROdc75nCnjSJVi21rdAGxFl+yCx2L2qdfl5y7NO4lTyqg==", - "dev": true - }, - "node_modules/stack-generator": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", - "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", "dev": true, - "dependencies": { - "stackframe": "^1.3.4" - } + "license": "BSD-3-Clause" }, "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true - }, - "node_modules/stacktrace-gps": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", - "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", "dev": true, - "dependencies": { - "source-map": "0.5.6", - "stackframe": "^1.3.4" - } - }, - "node_modules/stacktrace-gps/node_modules/source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stacktrace-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", - "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", - "dev": true, - "dependencies": { - "error-stack-parser": "^2.0.6", - "stack-generator": "^2.0.5", - "stacktrace-gps": "^3.0.4" - } + "license": "MIT" }, "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" } }, - "node_modules/stream-combiner2/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, - "peer": true - }, "node_modules/stream-combiner2/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", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -17323,6 +13482,7 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/stream-combiner2/node_modules/string_decoder": { @@ -17330,132 +13490,58 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "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-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -17463,45 +13549,56 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -17509,11 +13606,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/super-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.1.0.tgz", + "integrity": "sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "function-timeout": "^1.0.1", + "make-asynchronous": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -17522,17 +13640,21 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, "node_modules/supports-hyperlinks/node_modules/has-flag": { @@ -17540,6 +13662,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -17550,6 +13673,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -17558,86 +13682,33 @@ "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "@pkgr/core": "^0.2.9" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/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" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" + "url": "https://opencollective.com/synckit" } }, - "node_modules/table/node_modules/json-schema-traverse": { + "node_modules/tagged-tag": { "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/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/temp-dir": { @@ -17645,6 +13716,7 @@ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=14.16" @@ -17655,6 +13727,7 @@ "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "is-stream": "^3.0.0", @@ -17674,6 +13747,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -17687,6 +13761,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=12.20" @@ -17695,96 +13770,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/terser": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.9.tgz", - "integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", - "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.5" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -17799,6 +13790,8 @@ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -17810,13 +13803,16 @@ "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 + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -17826,6 +13822,7 @@ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -17837,31 +13834,28 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, - "node_modules/through2/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, - "peer": true - }, "node_modules/through2/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", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -17878,6 +13872,7 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/through2/node_modules/string_decoder": { @@ -17885,40 +13880,82 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==", + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, + "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { - "node": ">=0.6.0" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/to-regex-range": { @@ -17926,6 +13963,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -17933,56 +13971,74 @@ "node": ">=8.0" } }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "dev": true, + "license": "MIT" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", "dev": true, + "license": "MIT", "peer": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/trough": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ts-morph": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-15.1.0.tgz", - "integrity": "sha512-RBsGE2sDzUXFTnv8Ba22QfeuKbgvAGJFuTN7HfmIRUkgT/NaVLfDM/8OFm2NlFkGlWEXdpW5OaFIp1jvqdDuOg==", + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, - "dependencies": { - "@ts-morph/common": "~0.16.0", - "code-block-writer": "^11.0.0" + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.10" } }, "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -18021,74 +14077,19 @@ } } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "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", - "minimist": "^1.2.6", - "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, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "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, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -18101,94 +14102,23 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { - "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": ">=8" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, + "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedarray-to-buffer": { @@ -18196,29 +14126,33 @@ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "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==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, + "license": "BSD-2-Clause", "optional": true, + "peer": true, "bin": { "uglifyjs": "bin/uglifyjs" }, @@ -18226,60 +14160,35 @@ "node": ">=0.8.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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==", + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "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==", + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", "dev": true, + "license": "MIT", + "peer": 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==", + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/unified": { @@ -18287,6 +14196,7 @@ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "dev": true, + "license": "MIT", "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -18300,11 +14210,22 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unified/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/unique-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "crypto-random-string": "^4.0.0" @@ -18321,6 +14242,7 @@ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -18331,6 +14253,7 @@ "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", "dev": true, + "license": "MIT", "dependencies": { "unist-util-is": "^4.0.0" }, @@ -18344,6 +14267,7 @@ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.2" }, @@ -18357,6 +14281,7 @@ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", @@ -18372,6 +14297,7 @@ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" @@ -18382,25 +14308,27 @@ } }, "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz", + "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", "dev": true, "funding": [ { @@ -18410,42 +14338,52 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" } }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "node_modules/uri-js/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, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/url-join": { @@ -18453,79 +14391,61 @@ "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - }, "node_modules/util-arity": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/util-arity/-/util-arity-1.1.0.tgz", "integrity": "sha512-kkyIsXKwemfSy8ZEoaIz06ApApnWsk5hQO0vLjZS6UkBiGiW++Jsyb8vSBoc0WKlffGoGs5yYy/j5pp8zckrFA==", - "dev": true + "dev": true, + "license": "MIT" }, "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 + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "node_modules/verror": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", - "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -18542,6 +14462,7 @@ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" @@ -18551,182 +14472,133 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/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 - }, - "node_modules/webpack": { - "version": "5.79.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.79.0.tgz", - "integrity": "sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "node_modules/vite": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", + "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", "dev": true, + "license": "MIT", "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { - "webpack-cli": "bin/cli.js" + "vite": "bin/vite.js" }, "engines": { - "node": ">=10.13.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { - "@webpack-cli/generators": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { "optional": true }, - "@webpack-cli/migrate": { + "terser": { "optional": true }, - "webpack-bundle-analyzer": { + "tsx": { "optional": true }, - "webpack-dev-server": { + "yaml": { "optional": true } } }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "node_modules/web-worker": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz", + "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==", "dev": true, - "engines": { - "node": ">=10.13.0" - } + "license": "Apache-2.0", + "peer": true }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "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, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } + "license": "BSD-2-Clause" }, "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, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -18737,6 +14609,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -18747,60 +14620,19 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "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", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true + "license": "ISC" }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "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" } @@ -18809,19 +14641,42 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz", + "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -18834,11 +14689,73 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -18854,6 +14771,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -18865,13 +14783,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -18881,6 +14801,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -18894,13 +14815,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "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, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -18909,9 +14832,9 @@ } }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -18929,13 +14852,14 @@ } } }, - "node_modules/xregexp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.4.1.tgz", - "integrity": "sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag==", + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", "dev": true, - "dependencies": { - "@babel/runtime-corejs3": "^7.12.1" + "license": "MIT", + "engines": { + "node": ">=8.0" } }, "node_modules/xtend": { @@ -18943,6 +14867,8 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=0.4" } @@ -18952,6 +14878,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -18960,33 +14887,52 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "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==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-unparser": { @@ -18994,6 +14940,7 @@ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -19009,6 +14956,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -19021,6 +14969,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -19028,11 +14977,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yargs-unparser/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -19042,6 +15002,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -19051,6 +15012,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -19065,6 +15027,7 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -19074,6 +15037,7 @@ "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" }, @@ -19081,11 +15045,52 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.7.1.tgz", + "integrity": "sha512-GKHFX2nXul2/4Dtfxhozv701jLQHdf6J34YDh2cEkpqoo8le5Mg6/LrdseVLrFarmFygZTlfIhHx/QKfb/QWXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/yup/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", "dev": true, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/package.json b/package.json index cf9c9d46a..12214243b 100644 --- a/package.json +++ b/package.json @@ -21,72 +21,54 @@ "prepublishOnly": "npm run build", "test": "npm run test:lint && npm run test:unit && npm run test:functional", "test:unit": "nyc --reporter=text-summary --reporter=lcov mocha", - "test:functional": "cucumber-js --exit --fail-fast", - "test:lint": "npm run test:lint:js && npm run test:lint:ts", - "test:lint:js": "eslint --max-warnings=0 ./src ./test ./features", - "test:lint:js:fix": "eslint --max-warnings=0 ./src ./test ./features --fix", - "test:lint:ts": "eslint ./src --ext .ts --config .eslintrc-ts.json", - "test:lint:ts:fix": "eslint ./src --ext .ts --config .eslintrc-ts.json --fix", - "build": "npm run build-ts && node build.js", - "build-ts": "tsc --build tsconfig.json", - "clean": "touch index.ts && npm run build-ts | grep TSFILE | cut -d' ' -f 2 | xargs rm", + "test:functional": "cucumber-js --exit --fail-fast -c cucumber.config.cjs", + "test:lint": "eslint . --fix", + "build": "tsc --build tsconfig.json && vite build", "dev": "node -r ts-node/register ", "doc-testing": "bash .ci/test-docs.sh" }, - "browser": "dist/kuzzle.js", - "main": "index.js", + "browser": "./dist/kuzzle.js", + "main": "./out/index.js", + "types": "index.d.ts", + "exports": { + ".": { + "browser": "./dist/kuzzle.js", + "import": "./out/index.js", + "require": "./out/index.js", + "default": "./out/index.js", + "types": "./index.d.ts" + }, + "./package.json": "./package.json" + }, "license": "Apache-2.0", "dependencies": { - "min-req-promise": "^1.0.1", - "ws": "^8.17.1" + "ws": "8.18.3" }, "devDependencies": { - "@babel/core": "^7.21.4", - "@babel/preset-env": "^7.21.4", - "@commitlint/cli": "^17.6.7", - "@commitlint/config-conventional": "^17.6.7", - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/commit-analyzer": "^10.0.1", - "@semantic-release/git": "^10.0.1", - "@semantic-release/release-notes-generator": "^11.0.4", - "@types/node": "^18.15.11", - "babel-loader": "^8.3.0", - "buffer": "^6.0.3", - "cucumber": "^6.0.5", - "cz-conventional-changelog": "^3.3.0", - "eslint-plugin-html": "^8.1.2", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-kuzzle": "^0.0.6", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^7.1.0", - "eslint-plugin-standard": "^5.0.0", - "https-browserify": "^1.0.0", - "lodash": "^4.17.21", - "lolex": "^6.0.0", - "mocha": "10.2.0", - "mock-require": "^3.0.3", - "nyc": "^15.1.0", - "proxyquire": "^2.1.3", - "retry": "^0.13.1", - "rewire": "^6.0.0", - "semantic-release-config-kuzzle": "^1.0.0", - "semantic-release-slack-bot": "^4.0.2", + "@cucumber/cucumber": "12.3.0", + "@types/node": "24.10.1", + "eslint-plugin-kuzzle": "0.0.15", + "lodash": "4.17.21", + "lolex": "6.0.0", + "mocha": "11.7.5", + "mock-require": "3.0.3", + "nyc": "17.1.0", + "retry": "0.13.1", + "rewire": "9.0.1", + "semantic-release-config-kuzzle": "1.1.2", "should": "13.2.3", "should-sinon": "0.0.6", - "sinon": "^14.0.2", - "stream-http": "^3.2.0", - "ts-morph": "^15.1.0", - "ts-node": "^10.9.1", - "typescript": "^4.9.5", - "url": "^0.11.0", - "webpack": "^5.79.0", - "webpack-cli": "^4.10.0" + "sinon": "21.0.0", + "ts-node": "10.9.2", + "typescript": "5.4.*", + "vite": "7.2.6" }, "engines": { "node": ">= 10.13.0" }, "files": [ "dist/**/*", + "out/**/*", "index.js", "index.d.ts", "src/**/*.js", diff --git a/src/Kuzzle.ts b/src/Kuzzle.ts index be16f0785..bbef4844a 100644 --- a/src/Kuzzle.ts +++ b/src/Kuzzle.ts @@ -222,7 +222,7 @@ export class Kuzzle extends KuzzleEventEmitter { * Default: `true` */ deprecationWarning?: boolean; - } = {} + } = {}, ) { super(); @@ -234,7 +234,7 @@ export class Kuzzle extends KuzzleEventEmitter { for (const method of ["addListener", "isReady", "query"]) { if (typeof protocol[method] !== "function") { throw new Error( - `Protocol instance must implement a "${method}" method` + `Protocol instance must implement a "${method}" method`, ); } } @@ -298,12 +298,12 @@ export class Kuzzle extends KuzzleEventEmitter { this.deprecationHandler = new Deprecation( typeof options.deprecationWarning === "boolean" ? options.deprecationWarning - : true + : true, ); if (this._cookieAuthentication && typeof XMLHttpRequest === "undefined") { throw new Error( - "Support for cookie authentication with cookieAuth option is not supported outside a browser" + "Support for cookie authentication with cookieAuth option is not supported outside a browser", ); } @@ -406,7 +406,7 @@ export class Kuzzle extends KuzzleEventEmitter { */ get authenticated() { return Boolean( - this.auth.authenticationToken && !this.auth.authenticationToken.expired + this.auth.authenticationToken && !this.auth.authenticationToken.expired, ); } @@ -579,43 +579,46 @@ export class Kuzzle extends KuzzleEventEmitter { on( eventName: "connected" | "reconnected" | "reAuthenticated" | "tokenExpired", - listener: () => void + listener: () => void, ): this; on(eventName: "beforeLogout", listener: () => void): this; on( eventName: "logoutAttempt" | "afterLogout", - listener: (status: { success: true }) => void + listener: (status: { success: true }) => void, ): this; on(eventName: "beforeLogin", listener: () => void): this; on( eventName: "loginAttempt" | "afterLogin", - listener: (data: { success: boolean; error: string }) => void + listener: (data: { success: boolean; error: string }) => void, ): this; on(eventName: "discarded", listener: (request: RequestPayload) => void): this; on( eventName: "disconnected", - listener: (context: { origin: DisconnectionOrigin }) => void + listener: (context: { origin: DisconnectionOrigin }) => void, ): this; on( eventName: "networkError" | "reconnectionError", - listener: (error: Error) => void + listener: (error: Error) => void, ): this; on( eventName: "offlineQueuePop", - listener: (request: RequestPayload) => void + listener: (request: RequestPayload) => void, ): this; on( eventName: "offlineQueuePush", - listener: (data: { request: RequestPayload }) => void + listener: (data: { request: RequestPayload }) => void, ): this; on( eventName: "queryError", - listener: (data: { error: KuzzleError; request: RequestPayload }) => void + listener: (data: { error: KuzzleError; request: RequestPayload }) => void, ): this; on( eventName: "callbackError", - listener: (data: { error: KuzzleError; notification: Notification }) => void + listener: (data: { + error: KuzzleError; + notification: Notification; + }) => void, ): this; on(eventName: PublicKuzzleEvents, listener: (args: any) => void): this { return super.on(eventName, listener); @@ -665,7 +668,7 @@ export class Kuzzle extends KuzzleEventEmitter { this.protocol.addListener("reconnect", this._reconnect.bind(this)); this.protocol.addListener("discarded", (data) => - this.emit("discarded", data) + this.emit("discarded", data), ); this.protocol.addListener("websocketRenewalStart", () => { @@ -742,7 +745,7 @@ export class Kuzzle extends KuzzleEventEmitter { if (!this.authenticator) { this.emit("reconnectionError", { error: new Error( - 'Could not re-authenticate: "authenticator" property is not set.' + 'Could not re-authenticate: "authenticator" property is not set.', ), }); return false; @@ -754,7 +757,7 @@ export class Kuzzle extends KuzzleEventEmitter { } catch (err) { this.emit("reconnectionError", { error: new Error( - `Failed to authenticate the SDK after reconnection: ${err}` + `Failed to authenticate the SDK after reconnection: ${err}`, ), }); @@ -782,7 +785,7 @@ export class Kuzzle extends KuzzleEventEmitter { if (!valid) { throw new Error( - 'The "authenticator" function failed to authenticate the SDK.' + 'The "authenticator" function failed to authenticate the SDK.', ); } } @@ -809,8 +812,8 @@ export class Kuzzle extends KuzzleEventEmitter { if (this.events.indexOf(event) === -1) { throw new Error( `[${event}] is not a known event. Known events: ${this.events.join( - ", " - )}` + ", ", + )}`, ); } @@ -853,7 +856,7 @@ export class Kuzzle extends KuzzleEventEmitter { */ query( req: TRequest, - opts: JSONObject = {} + opts: JSONObject = {}, ): Promise> { if (typeof req !== "object" || Array.isArray(req)) { throw new Error(`Kuzzle.query: Invalid request: ${JSON.stringify(req)}`); @@ -861,7 +864,7 @@ export class Kuzzle extends KuzzleEventEmitter { if (typeof opts !== "object" || Array.isArray(opts)) { throw new Error( - `Kuzzle.query: Invalid "options" argument: ${JSON.stringify(opts)}` + `Kuzzle.query: Invalid "options" argument: ${JSON.stringify(opts)}`, ); } @@ -913,8 +916,8 @@ export class Kuzzle extends KuzzleEventEmitter { ) { throw new Error( `Kuzzle.query: Invalid volatile argument received: ${JSON.stringify( - request.volatile - )}` + request.volatile, + )}`, ); } @@ -949,7 +952,7 @@ export class Kuzzle extends KuzzleEventEmitter { this.emit("discarded", { request }); return Promise.reject( new Error(`Unable to execute request: not connected to a Kuzzle server. -Discarded request: ${JSON.stringify(request)}`) +Discarded request: ${JSON.stringify(request)}`), ); } @@ -958,7 +961,7 @@ Discarded request: ${JSON.stringify(request)}`) debug("RESPONSE", response); return this.deprecationHandler.logDeprecation(response); - } + }, ); } @@ -1030,7 +1033,7 @@ Discarded request: ${JSON.stringify(request)}`) if (this.__proxy__ ? this.__proxy__.hasProp(accessor) : this[accessor]) { throw new Error( - `There is already a controller with the accessor '${accessor}'. Please use another one.` + `There is already a controller with the accessor '${accessor}'. Please use another one.`, ); } @@ -1042,7 +1045,7 @@ Discarded request: ${JSON.stringify(request)}`) if (controller.kuzzle !== this) { throw new Error( - "You must pass the Kuzzle SDK instance to the parent constructor." + "You must pass the Kuzzle SDK instance to the parent constructor.", ); } @@ -1060,7 +1063,7 @@ Discarded request: ${JSON.stringify(request)}`) if (wrongType) { throw new Error( - `Expected ${prop} to be a ${typestr}, ${typeof value} received` + `Expected ${prop} to be a ${typestr}, ${typeof value} received`, ); } } @@ -1086,8 +1089,8 @@ Discarded request: ${JSON.stringify(request)}`) this.emit("offlineQueuePop", droppedRequest.request); droppedRequest.reject( new Error( - "Query aborted: queued time exceeded the queueTTL option value" - ) + "Query aborted: queued time exceeded the queueTTL option value", + ), ); }); } @@ -1100,8 +1103,8 @@ Discarded request: ${JSON.stringify(request)}`) this.emit("offlineQueuePop", droppedRequest.request); droppedRequest.reject( new Error( - "Query aborted: too many queued requests (see the queueMaxSize option)" - ) + "Query aborted: too many queued requests (see the queueMaxSize option)", + ), ); }); } @@ -1119,16 +1122,19 @@ Discarded request: ${JSON.stringify(request)}`) this._timeoutRequest( this.offlineQueue[0].timeout, - this.offlineQueue[0].request + this.offlineQueue[0].request, ) .then(this.offlineQueue[0].resolve) .catch(this.offlineQueue[0].reject); this.emit("offlineQueuePop", this.offlineQueue.shift().request); - setTimeout(() => { - dequeuingProcess(); - }, Math.max(0, this.replayInterval)); + setTimeout( + () => { + dequeuingProcess(); + }, + Math.max(0, this.replayInterval), + ); } }; @@ -1136,7 +1142,7 @@ Discarded request: ${JSON.stringify(request)}`) if (typeof this.offlineQueueLoader !== "function") { throw new Error( "Invalid value for offlineQueueLoader property. Expected: function. Got: " + - typeof this.offlineQueueLoader + typeof this.offlineQueueLoader, ); } @@ -1155,13 +1161,13 @@ Discarded request: ${JSON.stringify(request)}`) !query.request.controller ) { throw new Error( - "Invalid offline queue request. One or more missing properties: requestId, action, controller." + "Invalid offline queue request. One or more missing properties: requestId, action, controller.", ); } return Object.prototype.hasOwnProperty.call( uniqueQueue, - query.request.requestId + query.request.requestId, ) ? false : (uniqueQueue[query.request.requestId] = true); @@ -1171,7 +1177,7 @@ Discarded request: ${JSON.stringify(request)}`) } else { throw new Error( "Invalid value returned by the offlineQueueLoader function. Expected: array. Got: " + - typeof additionalQueue + typeof additionalQueue, ); } }); @@ -1191,7 +1197,7 @@ Discarded request: ${JSON.stringify(request)}`) private _timeoutRequest( delay: number, request: RequestPayload, - options: JSONObject = {} + options: JSONObject = {}, ) { debug("REQUEST", request); diff --git a/src/KuzzleError.ts b/src/KuzzleError.ts index ea52bbd54..ea91209a3 100644 --- a/src/KuzzleError.ts +++ b/src/KuzzleError.ts @@ -1,5 +1,3 @@ -"use strict"; - import { hilightUserCode } from "./utils/stackTrace"; import { RequestPayload } from "./types/RequestPayload"; import { JSONObject } from "./types"; @@ -115,7 +113,7 @@ export class KuzzleError extends Error { }, sdkStack?: string, protocol?: string, - request?: RequestPayload + request?: RequestPayload, ) { super(apiError.message); diff --git a/src/RequestTimeoutError.ts b/src/RequestTimeoutError.ts index db901c348..2bbfa1b62 100644 --- a/src/RequestTimeoutError.ts +++ b/src/RequestTimeoutError.ts @@ -1,5 +1,3 @@ -"use strict"; - import { RequestPayload } from "./types/RequestPayload"; /** diff --git a/src/controllers/Auth.ts b/src/controllers/Auth.ts index 47581faf4..601775f90 100644 --- a/src/controllers/Auth.ts +++ b/src/controllers/Auth.ts @@ -79,7 +79,7 @@ export class AuthController extends BaseController { */ createApiKey( description: string, - options: ArgsAuthControllerCreateApiKey = {} + options: ArgsAuthControllerCreateApiKey = {}, ): Promise { const request = { _id: options._id, @@ -105,7 +105,7 @@ export class AuthController extends BaseController { */ checkRights( requestPayload: RequestPayload, - options: ArgsAuthControllerCheckRights = {} + options: ArgsAuthControllerCheckRights = {}, ): Promise { const request = { action: "checkRights", @@ -113,7 +113,7 @@ export class AuthController extends BaseController { }; return this.query(request, options).then( - (response) => response.result.allowed + (response) => response.result.allowed, ); } @@ -129,7 +129,7 @@ export class AuthController extends BaseController { */ deleteApiKey( id: string, - options: ArgsAuthControllerDeleteApiKey = {} + options: ArgsAuthControllerDeleteApiKey = {}, ): Promise { const request = { _id: id, @@ -155,7 +155,7 @@ export class AuthController extends BaseController { */ searchApiKeys( query: JSONObject = {}, - options: ArgsAuthControllerSearchApiKeys = {} + options: ArgsAuthControllerSearchApiKeys = {}, ): Promise<{ /** * Array of found ApiKeys @@ -190,7 +190,7 @@ export class AuthController extends BaseController { */ checkToken( token?: string, - options: ArgsAuthControllerCheckToken = {} + options: ArgsAuthControllerCheckToken = {}, ): Promise<{ /** * Tell if the token is valid or not @@ -224,7 +224,7 @@ export class AuthController extends BaseController { body: { token }, cookieAuth, }, - { queuable: false, ...options } + { queuable: false, ...options }, ).then((response) => response.result); } @@ -245,7 +245,7 @@ export class AuthController extends BaseController { createMyCredentials( strategy: string, credentials: JSONObject, - options: ArgsAuthControllerCreateMyCredentials = {} + options: ArgsAuthControllerCreateMyCredentials = {}, ): Promise { return this.query( { @@ -253,7 +253,7 @@ export class AuthController extends BaseController { body: credentials, strategy, }, - options + options, ).then((response) => response.result); } @@ -271,14 +271,14 @@ export class AuthController extends BaseController { */ credentialsExist( strategy: string, - options: ArgsAuthControllerCredentialsExist = {} + options: ArgsAuthControllerCredentialsExist = {}, ): Promise { return this.query( { action: "credentialsExist", strategy, }, - options + options, ).then((response) => response.result); } @@ -294,14 +294,14 @@ export class AuthController extends BaseController { */ deleteMyCredentials( strategy: string, - options: ArgsAuthControllerDeleteMyCredentials = {} + options: ArgsAuthControllerDeleteMyCredentials = {}, ): Promise { return this.query( { action: "deleteMyCredentials", strategy, }, - options + options, ).then((response) => response.result.acknowledged); } @@ -317,16 +317,16 @@ export class AuthController extends BaseController { * @returns Currently logged User */ getCurrentUser( - options: ArgsAuthControllerGetCurrentUser = {} + options: ArgsAuthControllerGetCurrentUser = {}, ): Promise { return this.query( { action: "getCurrentUser", }, - options + options, ).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } @@ -345,14 +345,14 @@ export class AuthController extends BaseController { */ getMyCredentials( strategy: string, - options: ArgsAuthControllerGetMyCredentials = {} + options: ArgsAuthControllerGetMyCredentials = {}, ): Promise { return this.query( { action: "getMyCredentials", strategy, }, - options + options, ).then((response) => response.result); } @@ -395,7 +395,7 @@ export class AuthController extends BaseController { { action: "getMyRights", }, - options + options, ).then((response) => response.result.hits); } @@ -411,13 +411,13 @@ export class AuthController extends BaseController { * @returns An array of available strategies names */ getStrategies( - options: ArgsAuthControllerGetStrategies = {} + options: ArgsAuthControllerGetStrategies = {}, ): Promise> { return this.query( { action: "getStrategies", }, - options + options, ).then((response) => response.result); } @@ -438,7 +438,7 @@ export class AuthController extends BaseController { strategy: string, credentials: JSONObject, expiresIn?: string | number, - options: ArgsAuthControllerLogin = {} + options: ArgsAuthControllerLogin = {}, ): Promise { const request = { action: "login", @@ -459,7 +459,7 @@ export class AuthController extends BaseController { if (this.kuzzle.cookieAuthentication) { if (response.result.jwt) { const err = new Error( - "Kuzzle support for cookie authentication is disabled or not supported" + "Kuzzle support for cookie authentication is disabled or not supported", ); this.kuzzle.emit("loginAttempt", { error: err.message, @@ -511,7 +511,7 @@ export class AuthController extends BaseController { action: "logout", cookieAuth: this.kuzzle.cookieAuthentication, }, - { queuable: false, timeout: -1, ...options } + { queuable: false, timeout: -1, ...options }, ); this._authenticationToken = null; /** @@ -553,7 +553,7 @@ export class AuthController extends BaseController { updateMyCredentials( strategy: string, credentials: JSONObject, - options: ArgsAuthControllerUpdateMyCredentials = {} + options: ArgsAuthControllerUpdateMyCredentials = {}, ): Promise { return this.query( { @@ -561,7 +561,7 @@ export class AuthController extends BaseController { body: credentials, strategy, }, - options + options, ).then((response) => response.result); } @@ -580,17 +580,17 @@ export class AuthController extends BaseController { */ updateSelf( content: JSONObject, - options: ArgsAuthControllerUpdateSelf = {} + options: ArgsAuthControllerUpdateSelf = {}, ): Promise { return this.query( { action: "updateSelf", body: content, }, - options + options, ).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } @@ -608,7 +608,7 @@ export class AuthController extends BaseController { validateMyCredentials( strategy: string, credentials: JSONObject, - options: ArgsAuthControllerValidateMyCredentials = {} + options: ArgsAuthControllerValidateMyCredentials = {}, ): Promise { return this.query( { @@ -616,7 +616,7 @@ export class AuthController extends BaseController { body: credentials, strategy, }, - options + options, ).then((response) => response.result); } diff --git a/src/controllers/Base.ts b/src/controllers/Base.ts index b2dd82788..4f1c54557 100644 --- a/src/controllers/Base.ts +++ b/src/controllers/Base.ts @@ -17,7 +17,7 @@ export class BaseController { this._name = name; } - protected get kuzzle() { + get kuzzle() { return this._kuzzle; } diff --git a/src/controllers/Bulk.ts b/src/controllers/Bulk.ts index 5202a7c38..678d83367 100644 --- a/src/controllers/Bulk.ts +++ b/src/controllers/Bulk.ts @@ -28,7 +28,7 @@ export class BulkController extends BaseController { index: string, collection: string, query: JSONObject = {}, - options: ArgsBulkControllerDeleteByQuery = {} + options: ArgsBulkControllerDeleteByQuery = {}, ): Promise { const request = { action: "deleteByQuery", @@ -38,7 +38,7 @@ export class BulkController extends BaseController { }; return this.query(request, options).then( - (response) => response.result.deleted + (response) => response.result.deleted, ); } @@ -60,7 +60,7 @@ export class BulkController extends BaseController { index: string, collection: string, bulkData: Array, - options: ArgsBulkControllerImport = {} + options: ArgsBulkControllerImport = {}, ): Promise<{ /** * Array of successfully executed actions @@ -116,7 +116,7 @@ export class BulkController extends BaseController { collection, index, }, - options + options, ).then((response) => response.result); } @@ -140,7 +140,7 @@ export class BulkController extends BaseController { collection: string, query: JSONObject, changes: JSONObject, - options: ArgsBulkControllerUpdateByQuery = {} + options: ArgsBulkControllerUpdateByQuery = {}, ): Promise { const request = { action: "updateByQuery", @@ -150,7 +150,7 @@ export class BulkController extends BaseController { }; return this.query(request, options).then( - (response) => response.result.updated + (response) => response.result.updated, ); } @@ -176,7 +176,7 @@ export class BulkController extends BaseController { collection: string, document: JSONObject, id?: string, - options: ArgsBulkControllerWrite = {} + options: ArgsBulkControllerWrite = {}, ): Promise { return this.query( { @@ -187,7 +187,7 @@ export class BulkController extends BaseController { index, notify: options.notify, }, - options + options, ).then((response) => response.result); } @@ -220,7 +220,7 @@ export class BulkController extends BaseController { */ _source: JSONObject; }>, - options: ArgsBulkControllerMWrite = {} + options: ArgsBulkControllerMWrite = {}, ): Promise<{ /** * Array of successfully created/replaced documents @@ -252,7 +252,7 @@ export class BulkController extends BaseController { index, notify: options.notify, }, - options + options, ).then((response) => response.result); } } diff --git a/src/controllers/Collection.ts b/src/controllers/Collection.ts index 31d5e6137..d87d893da 100644 --- a/src/controllers/Collection.ts +++ b/src/controllers/Collection.ts @@ -37,7 +37,7 @@ export class CollectionController extends BaseController { settings?: JSONObject; } | CollectionMappings, - options: ArgsCollectionControllerCreate = {} + options: ArgsCollectionControllerCreate = {}, ): Promise { const request = { action: "create", @@ -63,7 +63,7 @@ export class CollectionController extends BaseController { deleteSpecifications( index: string, collection: string, - options: ArgsCollectionControllerDeleteSpecifications = {} + options: ArgsCollectionControllerDeleteSpecifications = {}, ): Promise { const request = { action: "deleteSpecifications", @@ -87,7 +87,7 @@ export class CollectionController extends BaseController { exists( index: string, collection: string, - options: ArgsCollectionControllerExists = {} + options: ArgsCollectionControllerExists = {}, ): Promise { return this.query( { @@ -95,7 +95,7 @@ export class CollectionController extends BaseController { collection, index, }, - options + options, ).then((response) => response.result); } @@ -114,7 +114,7 @@ export class CollectionController extends BaseController { refresh( index: string, collection: string, - options: ArgsCollectionControllerRefresh = {} + options: ArgsCollectionControllerRefresh = {}, ): Promise { return this.query( { @@ -122,7 +122,7 @@ export class CollectionController extends BaseController { collection, index, }, - options + options, ).then(() => undefined); } @@ -141,7 +141,7 @@ export class CollectionController extends BaseController { getMapping( index: string, collection: string, - options: ArgsCollectionControllerGetMapping = {} + options: ArgsCollectionControllerGetMapping = {}, ): Promise { const request = { action: "getMapping", @@ -169,7 +169,7 @@ export class CollectionController extends BaseController { getSpecifications( index: string, collection: string, - options: ArgsCollectionControllerGetSpecifications = {} + options: ArgsCollectionControllerGetSpecifications = {}, ): Promise { return this.query( { @@ -177,7 +177,7 @@ export class CollectionController extends BaseController { collection, index, }, - options + options, ).then((response) => response.result); } @@ -195,7 +195,7 @@ export class CollectionController extends BaseController { */ list( index: string, - options: ArgsCollectionControllerList = {} + options: ArgsCollectionControllerList = {}, ): Promise<{ /** * Types of returned collections. @@ -240,7 +240,7 @@ export class CollectionController extends BaseController { */ searchSpecifications( query: JSONObject = {}, - options: ArgsCollectionControllerSearchSpecifications = {} + options: ArgsCollectionControllerSearchSpecifications = {}, ): Promise { const request = { action: "searchSpecifications", @@ -257,8 +257,8 @@ export class CollectionController extends BaseController { this.kuzzle, request, options, - response.result - ) + response.result, + ), ); } @@ -276,7 +276,7 @@ export class CollectionController extends BaseController { truncate( index: string, collection: string, - options: ArgsCollectionControllerTruncate = {} + options: ArgsCollectionControllerTruncate = {}, ): Promise { const request = { action: "truncate", @@ -320,7 +320,7 @@ export class CollectionController extends BaseController { settings?: JSONObject; } | CollectionMappings, - options: ArgsCollectionControllerUpdate = {} + options: ArgsCollectionControllerUpdate = {}, ): Promise { return this.query( { @@ -329,7 +329,7 @@ export class CollectionController extends BaseController { collection, index, }, - options + options, ).then(() => undefined); } @@ -340,7 +340,7 @@ export class CollectionController extends BaseController { index: string, collection: string, mappings: CollectionMappings, - options: ArgsCollectionControllerUpdateMapping = {} + options: ArgsCollectionControllerUpdateMapping = {}, ): Promise { return this.query( { @@ -349,7 +349,7 @@ export class CollectionController extends BaseController { collection, index, }, - options + options, ).then((response) => response.result); } @@ -371,7 +371,7 @@ export class CollectionController extends BaseController { index: string, collection: string, specifications: JSONObject, - options: ArgsCollectionControllerUpdateSpecifications = {} + options: ArgsCollectionControllerUpdateSpecifications = {}, ): Promise { return this.query( { @@ -380,7 +380,7 @@ export class CollectionController extends BaseController { collection, index, }, - options + options, ).then((response) => response.result); } @@ -403,7 +403,7 @@ export class CollectionController extends BaseController { index: string, collection: string, specifications: JSONObject, - options: ArgsCollectionControllerValidateSpecifications = {} + options: ArgsCollectionControllerValidateSpecifications = {}, ): Promise<{ valid: boolean; details: Array; @@ -416,7 +416,7 @@ export class CollectionController extends BaseController { collection, index, }, - options + options, ).then((response) => response.result); } @@ -433,7 +433,7 @@ export class CollectionController extends BaseController { delete( index: string, collection: string, - options: ArgsCollectionControllerDelete = {} + options: ArgsCollectionControllerDelete = {}, ): Promise { const request = { action: "delete", @@ -464,8 +464,7 @@ export interface ArgsCollectionControllerList extends ArgsDefault { size?: number; } -export interface ArgsCollectionControllerSearchSpecifications - extends ArgsDefault { +export interface ArgsCollectionControllerSearchSpecifications extends ArgsDefault { from?: number; size?: number; scroll?: string; diff --git a/src/controllers/Document.ts b/src/controllers/Document.ts index cb8dbf364..aff8a923d 100644 --- a/src/controllers/Document.ts +++ b/src/controllers/Document.ts @@ -46,7 +46,7 @@ export class DocumentController extends BaseController { index: string, collection: string, body?: JSONObject, - options: ArgsDocumentControllerCount = {} + options: ArgsDocumentControllerCount = {}, ): Promise { const request = { action: "count", @@ -56,7 +56,7 @@ export class DocumentController extends BaseController { }; return this.query(request, options).then( - (response) => response.result.count + (response) => response.result.count, ); } @@ -81,7 +81,7 @@ export class DocumentController extends BaseController { collection: string, content: Partial, _id: string = null, - options: ArgsDocumentControllerCreate = {} + options: ArgsDocumentControllerCreate = {}, ): Promise> { const request = { _id, @@ -117,7 +117,7 @@ export class DocumentController extends BaseController { collection: string, _id: string, content: Partial, - options: ArgsDocumentControllerCreateOrReplace = {} + options: ArgsDocumentControllerCreateOrReplace = {}, ): Promise> { const request = { _id, @@ -151,7 +151,7 @@ export class DocumentController extends BaseController { index: string, collection: string, _id: string, - options: ArgsDocumentControllerDelete = {} + options: ArgsDocumentControllerDelete = {}, ): Promise { const request = { _id, @@ -185,7 +185,7 @@ export class DocumentController extends BaseController { index: string, collection: string, query: JSONObject = {}, - options: ArgsDocumentControllerDeleteByQuery = {} + options: ArgsDocumentControllerDeleteByQuery = {}, ): Promise { const request = { action: "deleteByQuery", @@ -221,7 +221,7 @@ export class DocumentController extends BaseController { collection: string, _id: string, fields: string[], - options: ArgsDocumentControllerDeleteFields = {} + options: ArgsDocumentControllerDeleteFields = {}, ): Promise> { const request = { _id, @@ -256,7 +256,7 @@ export class DocumentController extends BaseController { index: string, collection: string, _id: string, - options: ArgsDocumentControllerExists = {} + options: ArgsDocumentControllerExists = {}, ): Promise { const request = { _id, @@ -288,7 +288,7 @@ export class DocumentController extends BaseController { index: string, collection: string, _id: string, - options: ArgsDocumentControllerGet = {} + options: ArgsDocumentControllerGet = {}, ): Promise> { const request = { _id, @@ -321,7 +321,7 @@ export class DocumentController extends BaseController { index: string, collection: string, documents: mCreateRequest, - options: ArgsDocumentControllerMCreate = {} + options: ArgsDocumentControllerMCreate = {}, ): Promise { const request = { action: "mCreate", @@ -356,7 +356,7 @@ export class DocumentController extends BaseController { index: string, collection: string, documents: mCreateOrReplaceRequest, - options: ArgsDocumentControllerMCreateOrReplace = {} + options: ArgsDocumentControllerMCreateOrReplace = {}, ): Promise { const request = { action: "mCreateOrReplace", @@ -391,7 +391,7 @@ export class DocumentController extends BaseController { index: string, collection: string, ids: mDeleteRequest, - options: ArgsDocumentControllerMDelete = {} + options: ArgsDocumentControllerMDelete = {}, ): Promise { const request = { action: "mDelete", @@ -424,7 +424,7 @@ export class DocumentController extends BaseController { index: string, collection: string, ids: string[], - options: ArgsDocumentControllerMGet = {} + options: ArgsDocumentControllerMGet = {}, ): Promise<{ /** * Array of successfully retrieved documents @@ -466,7 +466,7 @@ export class DocumentController extends BaseController { index: string, collection: string, documents: mReplaceRequest, - options: ArgsDocumentControllerMReplace = {} + options: ArgsDocumentControllerMReplace = {}, ): Promise { const request = { action: "mReplace", @@ -505,7 +505,7 @@ export class DocumentController extends BaseController { index: string, collection: string, documents: mUpdateRequest, - options: ArgsDocumentControllerMUpdate = {} + options: ArgsDocumentControllerMUpdate = {}, ): Promise { const request = { action: "mUpdate", @@ -541,7 +541,7 @@ export class DocumentController extends BaseController { index: string, collection: string, documents: mUpsertRequest, - options: ArgsDocumentControllerMUpsert = {} + options: ArgsDocumentControllerMUpsert = {}, ): Promise { const request = { action: "mUpsert", @@ -576,7 +576,7 @@ export class DocumentController extends BaseController { collection: string, _id: string, content: Partial, - options: ArgsDocumentControllerReplace = {} + options: ArgsDocumentControllerReplace = {}, ): Promise> { const request = { _id, @@ -612,11 +612,11 @@ export class DocumentController extends BaseController { index: string, collection: string, searchBody: JSONObject = {}, - options: ArgsDocumentControllerSearch = {} + options: ArgsDocumentControllerSearch = {}, ): Promise>> { return this._search(index, collection, searchBody, options).then( ({ response, request, opts }) => - new DocumentSearchResult(this.kuzzle, request, opts, response.result) + new DocumentSearchResult(this.kuzzle, request, opts, response.result), ); } @@ -624,7 +624,7 @@ export class DocumentController extends BaseController { index: string, collection: string, body: JSONObject = {}, - options: JSONObject = {} + options: JSONObject = {}, ) { const request: any = { action: "search", @@ -676,7 +676,7 @@ export class DocumentController extends BaseController { collection: string, _id: string, content: Partial, - options: ArgsDocumentControllerUpdate = {} + options: ArgsDocumentControllerUpdate = {}, ): Promise> { const request = { _id, @@ -715,7 +715,7 @@ export class DocumentController extends BaseController { collection: string, query: JSONObject, changes: Partial, - options: ArgsDocumentControllerUpdateByQuery = {} + options: ArgsDocumentControllerUpdateByQuery = {}, ): Promise> { const request = { action: "updateByQuery", @@ -753,7 +753,7 @@ export class DocumentController extends BaseController { collection: string, _id: string, changes: Partial, - options: ArgsDocumentControllerUpsert = {} + options: ArgsDocumentControllerUpsert = {}, ): Promise> { const request = { _id, @@ -786,7 +786,7 @@ export class DocumentController extends BaseController { index: string, collection: string, content: TKDocumentContent, - options: ArgsDocumentControllerValidate = {} + options: ArgsDocumentControllerValidate = {}, ): Promise { return this.query( { @@ -795,7 +795,7 @@ export class DocumentController extends BaseController { collection, index, }, - options + options, ).then((response) => response.result); } } @@ -908,8 +908,9 @@ export interface ArgsDocumentControllerUpdateByQuery extends ArgsDefault { lang?: string; } -export interface ArgsDocumentControllerUpsert - extends ArgsDefault { +export interface ArgsDocumentControllerUpsert< + TKDocumentContent, +> extends ArgsDefault { default?: Partial; refresh?: "wait_for" | "false"; silent?: boolean; diff --git a/src/controllers/Index.ts b/src/controllers/Index.ts index b22d075b6..861fc2a31 100644 --- a/src/controllers/Index.ts +++ b/src/controllers/Index.ts @@ -18,7 +18,7 @@ export class IndexController extends BaseController { */ create( index: string, - options: ArgsIndexControllerCreate = {} + options: ArgsIndexControllerCreate = {}, ): Promise { const request = { action: "create", @@ -39,7 +39,7 @@ export class IndexController extends BaseController { */ delete( index: string, - options: ArgsIndexControllerDelete = {} + options: ArgsIndexControllerDelete = {}, ): Promise { const request = { action: "delete", @@ -60,14 +60,14 @@ export class IndexController extends BaseController { */ exists( index: string, - options: ArgsIndexControllerExists = {} + options: ArgsIndexControllerExists = {}, ): Promise { return this.query( { action: "exists", index, }, - options + options, ).then((response) => response.result); } @@ -85,7 +85,7 @@ export class IndexController extends BaseController { { action: "list", }, - options + options, ).then((response) => response.result.indexes); } @@ -103,7 +103,7 @@ export class IndexController extends BaseController { */ mDelete( indexes: Array, - options: ArgsIndexControllerMDelete = {} + options: ArgsIndexControllerMDelete = {}, ): Promise> { const request = { action: "mDelete", @@ -113,7 +113,7 @@ export class IndexController extends BaseController { }; return this.query(request, options).then( - (response) => response.result.deleted + (response) => response.result.deleted, ); } @@ -131,7 +131,7 @@ export class IndexController extends BaseController { { action: "stats", }, - options + options, ).then((response) => response.result); } } diff --git a/src/controllers/MemoryStorage.js b/src/controllers/MemoryStorage.ts similarity index 92% rename from src/controllers/MemoryStorage.js rename to src/controllers/MemoryStorage.ts index 4c5b2387e..ac0ef029d 100644 --- a/src/controllers/MemoryStorage.js +++ b/src/controllers/MemoryStorage.ts @@ -1,35 +1,48 @@ -const { BaseController } = require("./Base"); +import { BaseController } from "./Base"; -/* eslint sort-keys: 0 */ +type CommandOptionsMapper = (data: any, options: any) => void; + +type CommandDefinition = { + getter?: boolean; + required?: string[]; + opts?: string[] | CommandOptionsMapper; + mapResults?: (results: any) => any; +}; // Parameter mutualization -const getId = { getter: true, required: ["_id"] }; -const getIdField = { getter: true, required: ["_id", "field"] }; -const getKeys = { getter: true, required: ["keys"] }; -const getMember = { getter: true, required: ["_id", "member"] }; -const getxScan = { +const getId: CommandDefinition = { getter: true, required: ["_id"] }; +const getIdField: CommandDefinition = { + getter: true, + required: ["_id", "field"], +}; +const getKeys: CommandDefinition = { getter: true, required: ["keys"] }; +const getMember: CommandDefinition = { + getter: true, + required: ["_id", "member"], +}; +const getxScan: CommandDefinition = { getter: true, required: ["_id", "cursor"], opts: ["match", "count"], mapResults: mapScanResults, }; -const getZrange = { +const getZrange: CommandDefinition = { getter: true, required: ["_id", "start", "stop"], opts: assignZrangeOptions, mapResults: mapZrangeResults, }; -const getZrangeBy = { +const getZrangeBy: CommandDefinition = { getter: true, required: ["_id", "min", "max"], opts: assignZrangeOptions, mapResults: mapZrangeResults, }; -const setId = { required: ["_id"] }; -const setIdValue = { required: ["_id", "value"] }; +const setId: CommandDefinition = { required: ["_id"] }; +const setIdValue: CommandDefinition = { required: ["_id", "value"] }; // Redis commands -const commands = { +const commands: Record = { append: setIdValue, bitcount: { getter: true, required: ["_id"], opts: ["start", "end"] }, bitop: { required: ["_id", "operation", "keys"] }, @@ -219,11 +232,9 @@ const commands = { * - script based functions * - transaction functions * - * @param {object} kuzzle - Kuzzle instance to inherit from - * @constructor */ -class MemoryStorageController extends BaseController { - constructor(kuzzle) { +export class MemoryStorageController extends BaseController { + constructor(kuzzle: any) { super(kuzzle, "ms"); } } @@ -231,12 +242,14 @@ class MemoryStorageController extends BaseController { // Dynamically builds this class' prototypes using the "commands" global variable for (const action of Object.keys(commands)) { // eslint-disable-next-line no-loop-func - MemoryStorageController.prototype[action] = function (...args) { + (MemoryStorageController.prototype as any)[action] = function ( + ...args: any[] + ) { const command = commands[action]; - const request = { + const request: any = { action, }; - const options = {}; + const options: any = {}; if (!command.getter) { request.body = {}; @@ -259,7 +272,7 @@ for (const action of Object.keys(commands)) { if (args.length) { if (typeof args[0] !== "object" || Array.isArray(args[0])) { throw new Error( - `ms.${action}: invalid optional paramater (expected an object` + `ms.${action}: invalid optional paramater (expected an object`, ); } @@ -390,7 +403,7 @@ function mapGeoRadiusResults(results) { return results.map(function (point) { // The point id is always the first item - const p = { + const p: any = { name: point.shift(), }; @@ -497,5 +510,3 @@ function mapScanResults(results) { values: results[1], }; } - -module.exports = { MemoryStorageController }; diff --git a/src/controllers/Realtime.ts b/src/controllers/Realtime.ts index 608379fb0..eb98c48f7 100644 --- a/src/controllers/Realtime.ts +++ b/src/controllers/Realtime.ts @@ -80,14 +80,14 @@ export class RealtimeController extends BaseController { */ count( roomId: string, - options: ArgsRealtimeControllerCount = {} + options: ArgsRealtimeControllerCount = {}, ): Promise { return this.query( { action: "count", body: { roomId }, }, - options + options, ).then((response) => response.result.count); } @@ -111,7 +111,7 @@ export class RealtimeController extends BaseController { index: string, collection: string, message: JSONObject, - options: ArgsRealtimeControllerPublish = {} + options: ArgsRealtimeControllerPublish = {}, ): Promise { const request = { _id: options._id, @@ -122,7 +122,7 @@ export class RealtimeController extends BaseController { }; return this.query(request, options).then( - (response) => response.result.published + (response) => response.result.published, ); } @@ -152,7 +152,7 @@ export class RealtimeController extends BaseController { collection: string, filters: JSONObject, callback: (notification: Notification) => void | Promise, - options: ArgsRealtimeControllerSubscribe = {} + options: ArgsRealtimeControllerSubscribe = {}, ): Promise { const room = new Room(this, index, collection, filters, callback, options); @@ -175,7 +175,7 @@ export class RealtimeController extends BaseController { */ unsubscribe( roomId: string, - options: ArgsRealtimeControllerUnsubscribe = {} + options: ArgsRealtimeControllerUnsubscribe = {}, ): Promise { const request = { action: "unsubscribe", @@ -237,7 +237,7 @@ export class RealtimeController extends BaseController { room .subscribe() .catch(() => - this.kuzzle.emit("discarded", { request: room.request }) + this.kuzzle.emit("discarded", { request: room.request }), ); } diff --git a/src/controllers/Security.ts b/src/controllers/Security.ts index b16aae984..49049d59b 100644 --- a/src/controllers/Security.ts +++ b/src/controllers/Security.ts @@ -27,7 +27,7 @@ export class SecurityController extends BaseController { createApiKey( userId, description, - options: ArgsSecurityControllerCreateApiKey = {} + options: ArgsSecurityControllerCreateApiKey = {}, ) { const request = { _id: options._id, @@ -52,7 +52,7 @@ export class SecurityController extends BaseController { checkRights( kuid, requestPayload, - options: ArgsSecurityControllerCheckRights = {} + options: ArgsSecurityControllerCheckRights = {}, ) { const request = { action: "checkRights", @@ -61,7 +61,7 @@ export class SecurityController extends BaseController { }; return this.query(request, options).then( - (response) => response.result.allowed + (response) => response.result.allowed, ); } @@ -97,7 +97,7 @@ export class SecurityController extends BaseController { searchApiKeys( userId, query = {}, - options: ArgsSecurityControllerSearchApiKeys = {} + options: ArgsSecurityControllerSearchApiKeys = {}, ) { const request = { action: "searchApiKeys", @@ -115,7 +115,7 @@ export class SecurityController extends BaseController { strategy, _id, body, - options: ArgsSecurityControllerCreateCredentials = {} + options: ArgsSecurityControllerCreateCredentials = {}, ) { return this.query( { @@ -124,14 +124,14 @@ export class SecurityController extends BaseController { body, strategy, }, - options + options, ).then((response) => response.result); } createFirstAdmin( _id, body, - options: ArgsSecurityControllerCreateFirstAdmin = {} + options: ArgsSecurityControllerCreateFirstAdmin = {}, ) { const request = { _id, @@ -142,14 +142,14 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } createOrReplaceProfile( _id, body, - options: ArgsSecurityControllerCreateOrReplaceProfile = {} + options: ArgsSecurityControllerCreateOrReplaceProfile = {}, ) { const request = { _id, @@ -159,14 +159,14 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new Profile(this.kuzzle, response.result._id, response.result._source) + new Profile(this.kuzzle, response.result._id, response.result._source), ); } createOrReplaceRole( _id, body, - options: ArgsSecurityControllerCreateOrReplaceRole = {} + options: ArgsSecurityControllerCreateOrReplaceRole = {}, ) { const request = { _id, @@ -179,8 +179,8 @@ export class SecurityController extends BaseController { new Role( this.kuzzle, response.result._id, - response.result._source.controllers - ) + response.result._source.controllers, + ), ); } @@ -193,14 +193,14 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new Profile(this.kuzzle, response.result._id, response.result._source) + new Profile(this.kuzzle, response.result._id, response.result._source), ); } createRestrictedUser( body, _id = null, - options: ArgsSecurityControllerCreateRestrictedUser = {} + options: ArgsSecurityControllerCreateRestrictedUser = {}, ) { if (!body.content) { body.content = {}; @@ -214,7 +214,7 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } @@ -230,8 +230,8 @@ export class SecurityController extends BaseController { new Role( this.kuzzle, response.result._id, - response.result._source.controllers - ) + response.result._source.controllers, + ), ); } @@ -244,14 +244,14 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } deleteCredentials( strategy, _id, - options: ArgsSecurityControllerDeleteCredentials = {} + options: ArgsSecurityControllerDeleteCredentials = {}, ) { const request = { _id, @@ -287,33 +287,33 @@ export class SecurityController extends BaseController { } getAllCredentialFields( - options: ArgsSecurityControllerGetAllCredentialFields = {} + options: ArgsSecurityControllerGetAllCredentialFields = {}, ) { return this.query( { action: "getAllCredentialFields", }, - options + options, ).then((response) => response.result); } getCredentialFields( strategy, - options: ArgsSecurityControllerGetCredentialFields = {} + options: ArgsSecurityControllerGetCredentialFields = {}, ) { return this.query( { action: "getCredentialFields", strategy, }, - options + options, ).then((response) => response.result); } getCredentials( strategy, _id, - options: ArgsSecurityControllerGetCredentials = {} + options: ArgsSecurityControllerGetCredentials = {}, ) { return this.query( { @@ -321,14 +321,14 @@ export class SecurityController extends BaseController { action: "getCredentials", strategy, }, - options + options, ).then((response) => response.result); } getCredentialsById( strategy, _id, - options: ArgsSecurityControllerGetCredentialsById = {} + options: ArgsSecurityControllerGetCredentialsById = {}, ) { return this.query( { @@ -336,14 +336,14 @@ export class SecurityController extends BaseController { action: "getCredentialsById", strategy, }, - options + options, ).then((response) => response.result); } getProfile(_id, options: ArgsSecurityControllerGetProfile = {}) { return this.query({ _id, action: "getProfile" }, options).then( (response) => - new Profile(this.kuzzle, response.result._id, response.result._source) + new Profile(this.kuzzle, response.result._id, response.result._source), ); } @@ -352,7 +352,7 @@ export class SecurityController extends BaseController { { action: "getProfileMapping", }, - options + options, ).then((response) => response.result); } @@ -362,7 +362,7 @@ export class SecurityController extends BaseController { _id, action: "getProfileRights", }, - options + options, ).then((response) => response.result.hits); } @@ -372,14 +372,14 @@ export class SecurityController extends BaseController { _id, action: "getRole", }, - options + options, ).then( (response) => new Role( this.kuzzle, response.result._id, - response.result._source.controllers - ) + response.result._source.controllers, + ), ); } @@ -388,7 +388,7 @@ export class SecurityController extends BaseController { { action: "getRoleMapping", }, - options + options, ).then((response) => response.result); } @@ -398,10 +398,10 @@ export class SecurityController extends BaseController { _id, action: "getUser", }, - options + options, ).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } @@ -410,7 +410,7 @@ export class SecurityController extends BaseController { { action: "getUserMapping", }, - options + options, ).then((response) => response.result); } @@ -420,27 +420,27 @@ export class SecurityController extends BaseController { _id, action: "getUserRights", }, - options + options, ).then((response) => response.result.hits); } getUserStrategies( _id, - options: ArgsSecurityControllerGetUserStrategies = {} + options: ArgsSecurityControllerGetUserStrategies = {}, ) { return this.query( { _id, action: "getUserStrategies", }, - options + options, ).then((response) => response.result.strategies); } hasCredentials( strategy, _id, - options: ArgsSecurityControllerHasCredentials = {} + options: ArgsSecurityControllerHasCredentials = {}, ) { return this.query( { @@ -448,7 +448,7 @@ export class SecurityController extends BaseController { action: "hasCredentials", strategy, }, - options + options, ).then((response) => response.result); } @@ -483,8 +483,8 @@ export class SecurityController extends BaseController { return this.query({ action: "mGetProfiles", body: { ids } }, options).then( (response) => response.result.hits.map( - (hit) => new Profile(this.kuzzle, hit._id, hit._source) - ) + (hit) => new Profile(this.kuzzle, hit._id, hit._source), + ), ); } @@ -496,8 +496,8 @@ export class SecurityController extends BaseController { return this.query(request, options).then((response) => response.result.hits.map( - (hit) => new User(this.kuzzle, hit._id, hit._source) - ) + (hit) => new User(this.kuzzle, hit._id, hit._source), + ), ); } @@ -507,11 +507,11 @@ export class SecurityController extends BaseController { action: "mGetRoles", body: { ids }, }, - options + options, ).then((response) => response.result.hits.map( - (hit) => new Role(this.kuzzle, hit._id, hit._source.controllers) - ) + (hit) => new Role(this.kuzzle, hit._id, hit._source.controllers), + ), ); } @@ -521,7 +521,7 @@ export class SecurityController extends BaseController { action: "refresh", collection, }, - options + options, ); } @@ -533,7 +533,7 @@ export class SecurityController extends BaseController { }; return this.query(request, options).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } @@ -548,7 +548,7 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new ProfileSearchResult(this.kuzzle, request, options, response.result) + new ProfileSearchResult(this.kuzzle, request, options, response.result), ); } @@ -563,7 +563,7 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new RoleSearchResult(this.kuzzle, request, options, response.result) + new RoleSearchResult(this.kuzzle, request, options, response.result), ); } @@ -578,7 +578,7 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new UserSearchResult(this.kuzzle, request, options, response.result) + new UserSearchResult(this.kuzzle, request, options, response.result), ); } @@ -586,7 +586,7 @@ export class SecurityController extends BaseController { strategy, _id, body, - options: ArgsSecurityControllerUpdateCredentials = {} + options: ArgsSecurityControllerUpdateCredentials = {}, ) { return this.query( { @@ -595,7 +595,7 @@ export class SecurityController extends BaseController { body, strategy, }, - options + options, ).then((response) => response.result); } @@ -608,20 +608,20 @@ export class SecurityController extends BaseController { return this.query(request, options).then( (response) => - new Profile(this.kuzzle, response.result._id, response.result._source) + new Profile(this.kuzzle, response.result._id, response.result._source), ); } updateProfileMapping( body, - options: ArgsSecurityControllerUpdateProfileMapping = {} + options: ArgsSecurityControllerUpdateProfileMapping = {}, ) { return this.query( { action: "updateProfileMapping", body, }, - options + options, ).then((response) => response.result); } @@ -638,21 +638,21 @@ export class SecurityController extends BaseController { new Role( this.kuzzle, response.result._id, - response.result._source.controllers - ) + response.result._source.controllers, + ), ); } updateRoleMapping( body, - options: ArgsSecurityControllerUpdateRoleMapping = {} + options: ArgsSecurityControllerUpdateRoleMapping = {}, ) { return this.query( { action: "updateRoleMapping", body, }, - options + options, ).then((response) => response.result); } @@ -664,20 +664,20 @@ export class SecurityController extends BaseController { }; return this.query(request, options).then( (response) => - new User(this.kuzzle, response.result._id, response.result._source) + new User(this.kuzzle, response.result._id, response.result._source), ); } updateUserMapping( body, - options: ArgsSecurityControllerUpdateUserMapping = {} + options: ArgsSecurityControllerUpdateUserMapping = {}, ) { return this.query( { action: "updateUserMapping", body, }, - options + options, ).then((response) => response.result); } @@ -685,7 +685,7 @@ export class SecurityController extends BaseController { strategy, _id, body, - options: ArgsSecurityControllerValidateCredentials = {} + options: ArgsSecurityControllerValidateCredentials = {}, ) { return this.query( { @@ -694,7 +694,7 @@ export class SecurityController extends BaseController { body, strategy, }, - options + options, ).then((response) => response.result); } } diff --git a/src/controllers/Server.ts b/src/controllers/Server.ts index d080785b7..cb1374e94 100644 --- a/src/controllers/Server.ts +++ b/src/controllers/Server.ts @@ -24,7 +24,7 @@ export class ServerController extends BaseController { { action: "adminExists", }, - options + options, ).then((response) => response.result.exists); } @@ -39,7 +39,7 @@ export class ServerController extends BaseController { { action: "capabilities", }, - options + options, ).then((response) => response.result); } @@ -54,7 +54,7 @@ export class ServerController extends BaseController { { action: "getAllStats", }, - options + options, ).then((response) => response.result); } @@ -69,7 +69,7 @@ export class ServerController extends BaseController { { action: "getConfig", }, - options + options, ).then((response) => response.result); } @@ -84,7 +84,7 @@ export class ServerController extends BaseController { { action: "getLastStats", }, - options + options, ).then((response) => response.result); } @@ -99,7 +99,7 @@ export class ServerController extends BaseController { getStats( startTime: number | string, stopTime: number | string, - options: ArgsServerControllerGetStats + options: ArgsServerControllerGetStats, ) { return this.query( { @@ -107,7 +107,7 @@ export class ServerController extends BaseController { startTime, stopTime, }, - options + options, ).then((response) => response.result); } @@ -122,7 +122,7 @@ export class ServerController extends BaseController { { action: "info", }, - options + options, ).then((response) => response.result); } @@ -137,7 +137,7 @@ export class ServerController extends BaseController { { action: "now", }, - options + options, ).then((response) => response.result.now); } } diff --git a/src/core/Jwt.js b/src/core/Jwt.ts similarity index 65% rename from src/core/Jwt.js rename to src/core/Jwt.ts index f0d3219ae..75d1011ac 100644 --- a/src/core/Jwt.js +++ b/src/core/Jwt.ts @@ -1,12 +1,10 @@ -"use strict"; - // atob is not available in React Native // https://stackoverflow.com/questions/42829838/react-native-atob-btoa-not-working-without-remote-js-debugging const base64Charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; -const decodeBase64 = (input) => { +const decodeBase64 = (input: string): string => { const str = input.replace(/=+$/, ""); let output = ""; @@ -27,8 +25,17 @@ const decodeBase64 = (input) => { return output; }; -class Jwt { - constructor(encodedJwt) { +interface JwtPayload { + _id?: string; + exp?: number; +} + +export class Jwt { + private _encodedJwt: string; + private _userId: string | null; + private _expiresAt: number | null; + + constructor(encodedJwt: string) { this._encodedJwt = encodedJwt; this._userId = null; @@ -37,39 +44,41 @@ class Jwt { this._decode(); } - get encodedJwt() { + get encodedJwt(): string { return this._encodedJwt; } - get userId() { + get userId(): string | null { return this._userId; } - get expiresAt() { + get expiresAt(): number | null { return this._expiresAt; } - get expired() { - return Math.round(Date.now() / 1000) > this.expiresAt; + get expired(): boolean { + const expiresAt = this._expiresAt; + + return expiresAt === null + ? true + : Math.round(Date.now() / 1000) > expiresAt; } - _decode() { + private _decode(): void { const payloadRaw = this._encodedJwt.split(".")[1]; if (!payloadRaw) { throw new Error("Invalid JWT format"); } - let payload; + let payload: JwtPayload; try { payload = JSON.parse(decodeBase64(payloadRaw)); } catch (error) { throw new Error("Invalid JSON payload for JWT"); } - this._userId = payload._id; - this._expiresAt = payload.exp; + this._userId = payload._id ?? null; + this._expiresAt = payload.exp ?? null; } } - -module.exports = { Jwt }; diff --git a/src/core/KuzzleEventEmitter.ts b/src/core/KuzzleEventEmitter.ts index 27608a853..6b7fd8c1c 100644 --- a/src/core/KuzzleEventEmitter.ts +++ b/src/core/KuzzleEventEmitter.ts @@ -70,7 +70,7 @@ export class KuzzleEventEmitter { addListener( eventName: PrivateAndPublicSDKEvents, listener: ListenerFunction, - once = false + once = false, ) { if (!eventName || !listener) { return this; @@ -81,7 +81,7 @@ export class KuzzleEventEmitter { if (listenerType !== "function") { throw new Error( - `Invalid listener type: expected a function, got a ${listenerType}` + `Invalid listener type: expected a function, got a ${listenerType}`, ); } @@ -98,7 +98,7 @@ export class KuzzleEventEmitter { on( eventName: PrivateAndPublicSDKEvents, - listener: (args: any) => void + listener: (args: any) => void, ): this { return this.addListener(eventName, listener); } @@ -114,7 +114,7 @@ export class KuzzleEventEmitter { if (!this._exists(this._events.get(eventName), listener)) { const listeners = [new Listener(listener, once)].concat( - this._events.get(eventName) + this._events.get(eventName), ); this._events.set(eventName, listeners); @@ -137,7 +137,7 @@ export class KuzzleEventEmitter { removeListener( eventName: PrivateAndPublicSDKEvents, - listener: () => void + listener: () => void, ): this; removeListener(eventName: string, listener: () => void): this; removeListener(eventName: string, listener: (...args: unknown[]) => void) { @@ -209,5 +209,3 @@ export class KuzzleEventEmitter { ); } } - -module.exports = { KuzzleEventEmitter }; diff --git a/src/core/Observer.ts b/src/core/Observer.ts index a2f85a708..04cbf9647 100644 --- a/src/core/Observer.ts +++ b/src/core/Observer.ts @@ -68,7 +68,7 @@ type CollectionUrn = string; function documentUrn( index: string, collection: string, - id: string + id: string, ): DocumentUrn { return `${index}:${collection}:${id}`; } @@ -197,7 +197,7 @@ export class Observer { stop( index?: string, collection?: string, - documents?: Array<{ _id: string }> + documents?: Array<{ _id: string }>, ): Promise { if (index && collection && documents) { return this.disposeDocuments(index, collection, documents); @@ -217,10 +217,10 @@ export class Observer { private disposeDocuments( index: string, collection: string, - documents: Array<{ _id: string }> + documents: Array<{ _id: string }>, ): Promise { const observedDocuments = this.documentsByCollection.get( - collectionUrn(index, collection) + collectionUrn(index, collection), ); for (const document of documents) { @@ -238,7 +238,7 @@ export class Observer { private disposeCollection(index: string, collection: string): Promise { const observedDocuments = this.documentsByCollection.get( - collectionUrn(index, collection) + collectionUrn(index, collection), ); for (const id of observedDocuments.ids) { @@ -295,12 +295,12 @@ export class Observer { index: string, collection: string, id: string, - options: ArgsDocumentControllerGet = {} + options: ArgsDocumentControllerGet = {}, ): Promise> { return this.sdk.document .get(index, collection, id, options) .then((document) => - this.observe(index, collection, document) + this.observe(index, collection, document), ); } @@ -319,7 +319,7 @@ export class Observer { index: string, collection: string, ids: string[], - options: ArgsDocumentControllerMGet = {} + options: ArgsDocumentControllerMGet = {}, ): Promise<{ /** * Array of successfully retrieved documents @@ -362,21 +362,21 @@ export class Observer { index: string, collection: string, searchBody: JSONObject = {}, - options: ArgsDocumentControllerSearch = {} + options: ArgsDocumentControllerSearch = {}, ): Promise> { // eslint-disable-next-line dot-notation return this.sdk.document["_search"]( index, collection, searchBody, - options + options, ).then(({ response, request, opts }) => { const result = new RealtimeDocumentSearchResult( this.sdk, request, opts, response.result, - this + this, ); return result.start(); @@ -395,7 +395,7 @@ export class Observer { observe( index: string, collection: string, - document: KDocument + document: KDocument, ): Promise> { const rtDocument = this.addDocument(index, collection, document); @@ -412,7 +412,7 @@ export class Observer { addDocument( index: string, collection: string, - document: KDocument + document: KDocument, ): RealtimeDocument { const rtDocument = new RealtimeDocument(document); @@ -421,7 +421,7 @@ export class Observer { if (!this.documentsByCollection.has(urn)) { this.documentsByCollection.set( urn, - new ObservedDocuments(index, collection) + new ObservedDocuments(index, collection), ); } @@ -431,7 +431,7 @@ export class Observer { this.documents.set( documentUrn(index, collection, document._id), - rtDocument + rtDocument, ); return rtDocument; @@ -458,7 +458,7 @@ export class Observer { if (this.documentsByCollection.size !== 0) { this.pullingTimer = setInterval( this.pullingHandler.bind(this), - this.options.pullingDelay + this.options.pullingDelay, ); } } @@ -477,14 +477,14 @@ export class Observer { .mGet( observedDocuments.index, observedDocuments.collection, - observedDocuments.ids + observedDocuments.ids, ) .then(({ successes, errors }) => { for (const document of successes) { const urn = documentUrn( observedDocuments.index, observedDocuments.collection, - document._id + document._id, ); const rtDocument = this.documents.get(urn); @@ -495,7 +495,7 @@ export class Observer { const urn = documentUrn( observedDocuments.index, observedDocuments.collection, - deletedDocumentId + deletedDocumentId, ); const rtDocument = this.documents.get(urn); @@ -510,8 +510,8 @@ export class Observer { this.documentsByCollection.delete( collectionUrn( observedDocuments.index, - observedDocuments.collection - ) + observedDocuments.collection, + ), ); } } @@ -542,7 +542,7 @@ export class Observer { */ private resubscribe(index: string, collection: string): Promise { const observedDocuments = this.documentsByCollection.get( - collectionUrn(index, collection) + collectionUrn(index, collection), ); if (!observedDocuments) { @@ -561,7 +561,7 @@ export class Observer { index, collection, observedDocuments.filters, - this.notificationHandler.bind(this) + this.notificationHandler.bind(this), ) .then((roomId) => { const oldRoomId = observedDocuments.roomId; @@ -580,7 +580,7 @@ export class Observer { * @internal */ private notificationHandler( - notification: DocumentNotification + notification: DocumentNotification, ): Promise { const { index, collection, result } = notification; @@ -602,7 +602,7 @@ export class Observer { this.documents.delete(documentUrn(index, collection, rtDocument._id)); const observedDocuments = this.documentsByCollection.get( - collectionUrn(index, collection) + collectionUrn(index, collection), ); observedDocuments.delete(result._id); diff --git a/src/core/RealtimeDocument.ts b/src/core/RealtimeDocument.ts index 5a725e34b..aeb84e914 100644 --- a/src/core/RealtimeDocument.ts +++ b/src/core/RealtimeDocument.ts @@ -7,7 +7,7 @@ import { KDocumentContentGeneric } from "../types"; * Use the `Observer` class to manipulate such documents. */ export class RealtimeDocument< - TKDocumentContent extends KDocumentContentGeneric + TKDocumentContent extends KDocumentContentGeneric, > { /** * Document ID diff --git a/src/core/Room.js b/src/core/Room.ts similarity index 51% rename from src/core/Room.js rename to src/core/Room.ts index 1e9bc86d9..bc1e60f88 100644 --- a/src/core/Room.js +++ b/src/core/Room.ts @@ -1,15 +1,64 @@ -"use strict"; +import type { + ArgsRealtimeControllerSubscribe, + RealtimeController, +} from "../controllers/Realtime"; +import type { JSONObject, Notification } from "../types"; + +type SubscribeResponse = { + result: { + channel: string; + roomId: string; + }; +}; + +type RoomOptions = ArgsRealtimeControllerSubscribe & { + autoResubscribe?: boolean; + state?: string; +}; + +type SubscribeRequest = { + action: "subscribe"; + body: JSONObject; + collection: string; + controller: "realtime"; + index: string; + scope?: RoomOptions["scope"]; + state?: RoomOptions["state"]; + users?: RoomOptions["users"]; + volatile?: RoomOptions["volatile"]; +}; + +type RoomCallback = (notification: Notification) => void | Promise; class Room { + public controller: RealtimeController; + public index: string; + public collection: string; + public callback: RoomCallback; + public options: RoomOptions; + public id: string = null; + public channel: string = null; + public request: SubscribeRequest; + public autoResubscribe: boolean; + public subscribeToSelf: boolean; + private _kuzzle: any; + /** - * @param {RealtimeController} controller - * @param {string} index - * @param {string} collection - * @param {object} body - * @param {function} callback - * @param {object} options + * @param controller + * @param index + * @param collection + * @param body + * @param callback + * @param options */ - constructor(controller, index, collection, body, callback, options = {}) { + constructor( + controller: RealtimeController, + index: string, + collection: string, + body: JSONObject, + callback: RoomCallback, + options: RoomOptions = {}, + ) { Reflect.defineProperty(this, "_kuzzle", { value: controller.kuzzle, }); @@ -22,7 +71,6 @@ class Room { this.id = null; this.channel = null; - // format complete request from body & options this.request = { action: "subscribe", body, @@ -44,7 +92,6 @@ class Room { ? options.subscribeToSelf : true; - // force bind for further event listener calls this._channelListener = this._channelListener.bind(this); } @@ -52,26 +99,26 @@ class Room { return this._kuzzle; } - subscribe() { - return this.kuzzle.query(this.request, this.options).then((response) => { - this.id = response.result.roomId; - this.channel = response.result.channel; + subscribe(): Promise { + return this.kuzzle + .query(this.request, this.options) + .then((response: SubscribeResponse) => { + this.id = response.result.roomId; + this.channel = response.result.channel; - // we rely on kuzzle event emitter to not duplicate the listeners here - this.kuzzle.protocol.on(this.channel, this._channelListener); + this.kuzzle.protocol.on(this.channel, this._channelListener); - return response; - }); + return response; + }); } - removeListeners() { + removeListeners(): void { if (this.channel) { this.kuzzle.protocol.removeListener(this.channel, this._channelListener); } } - _channelListener(data) { - // intercept token expiration messages and relay them to kuzzle + private _channelListener(data: any): void { if (data.type === "TokenExpired") { return this.kuzzle.tokenExpired(); } @@ -100,4 +147,4 @@ class Room { } } -module.exports = Room; +export default Room; diff --git a/src/core/batchWriter/BatchBuffer.ts b/src/core/batchWriter/BatchBuffer.ts index 92eaa29ae..dd91dd686 100644 --- a/src/core/batchWriter/BatchBuffer.ts +++ b/src/core/batchWriter/BatchBuffer.ts @@ -41,7 +41,7 @@ export class BatchBuffer { collection: string, body: JSONObject, _id?: string, - options?: JSONObject + options?: JSONObject, ): { idx: number; promise: InstrumentablePromise } { if (!this.indexes.has(index)) { this.indexes.set(index, new Map()); diff --git a/src/core/batchWriter/BatchController.ts b/src/core/batchWriter/BatchController.ts index bb6171978..b3a5a7912 100644 --- a/src/core/batchWriter/BatchController.ts +++ b/src/core/batchWriter/BatchController.ts @@ -44,7 +44,7 @@ export class BatchController extends DocumentController { */ constructor( sdk: Kuzzle, - { interval = 10, maxWriteBufferSize = 200, maxReadBufferSize = 200 } = {} + { interval = 10, maxWriteBufferSize = 200, maxReadBufferSize = 200 } = {}, ) { super(sdk); @@ -85,14 +85,14 @@ export class BatchController extends DocumentController { collection: string, content: Partial, _id?: string, - options?: ArgsDocumentControllerCreate + options?: ArgsDocumentControllerCreate, ): Promise> { const { idx, promise } = this.writer.addCreate( index, collection, content, _id, - options + options, ); const { successes, errors } = await promise.promise; @@ -107,7 +107,7 @@ export class BatchController extends DocumentController { if (error) { throw new Error( - `Cannot create document in "${index}":"${collection}" : ${error.reason}` + `Cannot create document in "${index}":"${collection}" : ${error.reason}`, ); } } @@ -134,14 +134,14 @@ export class BatchController extends DocumentController { collection: string, _id: string, content: Partial, - options?: ArgsDocumentControllerReplace + options?: ArgsDocumentControllerReplace, ): Promise> { const { idx, promise } = this.writer.addReplace( index, collection, content, _id, - options + options, ); const { successes, errors } = await promise.promise; @@ -150,7 +150,7 @@ export class BatchController extends DocumentController { if (error) { throw new Error( - `Cannot replace document "${index}":"${collection}":"${_id}": ${error.reason}` + `Cannot replace document "${index}":"${collection}":"${_id}": ${error.reason}`, ); } @@ -175,14 +175,14 @@ export class BatchController extends DocumentController { collection: string, _id: string, content: Partial, - options?: ArgsDocumentControllerCreateOrReplace + options?: ArgsDocumentControllerCreateOrReplace, ): Promise> { const { idx, promise } = this.writer.addCreateOrReplace( index, collection, content, _id, - options + options, ); const { successes, errors } = await promise.promise; @@ -191,7 +191,7 @@ export class BatchController extends DocumentController { if (error) { throw new Error( - `Cannot create or replace document "${index}":"${collection}":"${_id}": ${error.reason}` + `Cannot create or replace document "${index}":"${collection}":"${_id}": ${error.reason}`, ); } @@ -219,14 +219,14 @@ export class BatchController extends DocumentController { collection: string, _id: string, content: Partial, - options?: ArgsDocumentControllerUpdate + options?: ArgsDocumentControllerUpdate, ): Promise> { const { idx, promise } = this.writer.addUpdate( index, collection, content, _id, - options + options, ); const { successes, errors } = await promise.promise; @@ -235,7 +235,7 @@ export class BatchController extends DocumentController { if (error) { throw new Error( - `Cannot update document "${index}":"${collection}":"${_id}": ${error.reason}` + `Cannot update document "${index}":"${collection}":"${_id}": ${error.reason}`, ); } @@ -259,7 +259,7 @@ export class BatchController extends DocumentController { async get( index: string, collection: string, - id: string + id: string, ): Promise> { const { promise } = this.writer.addGet(index, collection, undefined, id); @@ -294,13 +294,13 @@ export class BatchController extends DocumentController { async exists( index: string, collection: string, - id: string + id: string, ): Promise { const { idx, promise } = this.writer.addExists( index, collection, undefined, - id + id, ); const existences = await promise.promise; @@ -327,7 +327,7 @@ export class BatchController extends DocumentController { index, collection, undefined, - id + id, ); const { successes, errors } = await promise.promise; @@ -336,7 +336,7 @@ export class BatchController extends DocumentController { if (error) { throw new Error( - `Cannot delete document "${index}":"${collection}":"${id}" : ${error.reason}` + `Cannot delete document "${index}":"${collection}":"${id}" : ${error.reason}`, ); } diff --git a/src/core/batchWriter/BatchWriter.ts b/src/core/batchWriter/BatchWriter.ts index 14d3796f2..3c3c8108c 100644 --- a/src/core/batchWriter/BatchWriter.ts +++ b/src/core/batchWriter/BatchWriter.ts @@ -76,7 +76,7 @@ export class BatchWriter { constructor( sdk: Kuzzle, - { interval = 10, maxWriteBufferSize = 200, maxReadBufferSize = 200 } = {} + { interval = 10, maxWriteBufferSize = 200, maxReadBufferSize = 200 } = {}, ) { this.sdk = sdk; this.interval = interval; @@ -142,7 +142,7 @@ export class BatchWriter { private async sendWriteBuffer( mAction: any, buffer: BatchBuffer, - options: JSONObject = {} + options: JSONObject = {}, ) { const promises = []; @@ -161,7 +161,7 @@ export class BatchWriter { ...options, }) .then(promise.resolve) - .catch(promise.reject) + .catch(promise.reject), ); } } @@ -171,28 +171,28 @@ export class BatchWriter { private sendCreateBuffer( buffer: BatchBuffer, - options?: { refresh?: "wait_for" | "false" } + options?: { refresh?: "wait_for" | "false" }, ) { return this.sendWriteBuffer("mCreate", buffer, options); } private sendUpdateBuffer( buffer: BatchBuffer, - options?: { refresh?: "wait_for" | "false" } + options?: { refresh?: "wait_for" | "false" }, ) { return this.sendWriteBuffer("mUpdate", buffer, options); } private sendReplaceBuffer( buffer: BatchBuffer, - options?: { refresh?: "wait_for" | "false" } + options?: { refresh?: "wait_for" | "false" }, ) { return this.sendWriteBuffer("mReplace", buffer, options); } private sendCreateOrReplaceBuffer( buffer: BatchBuffer, - options?: { refresh?: "wait_for" | "false" } + options?: { refresh?: "wait_for" | "false" }, ) { return this.sendWriteBuffer("mCreateOrReplace", buffer, options); } @@ -216,7 +216,7 @@ export class BatchWriter { this.sdk.document .mGet(index, collection, ids) .then(promise.resolve) - .catch(promise.reject) + .catch(promise.reject), ); } } @@ -251,7 +251,7 @@ export class BatchWriter { promise.resolve(existences); }) - .catch(promise.reject) + .catch(promise.reject), ); } } @@ -278,7 +278,7 @@ export class BatchWriter { this.sdk.document .mDelete(index, collection, ids) .then(promise.resolve) - .catch(promise.reject) + .catch(promise.reject), ); } } diff --git a/src/core/searchResult/Document.ts b/src/core/searchResult/Document.ts index 544a07149..f277cf3b2 100644 --- a/src/core/searchResult/Document.ts +++ b/src/core/searchResult/Document.ts @@ -2,7 +2,7 @@ import { SearchResultBase } from "./SearchResultBase"; import { KDocumentContentGeneric, KHit } from "../../types"; export class DocumentSearchResult< - TKDocumentContent extends KDocumentContentGeneric + TKDocumentContent extends KDocumentContentGeneric, > extends SearchResultBase> { /** * @param {Kuzzle} kuzzle @@ -17,5 +17,3 @@ export class DocumentSearchResult< this._scrollAction = "scroll"; } } - -module.exports = { DocumentSearchResult }; diff --git a/src/core/searchResult/Profile.ts b/src/core/searchResult/Profile.ts index 87bc87adb..47c2347b6 100644 --- a/src/core/searchResult/Profile.ts +++ b/src/core/searchResult/Profile.ts @@ -8,7 +8,7 @@ export class ProfileSearchResult extends SearchResultBase { this._searchAction = "searchProfiles"; this._scrollAction = "scrollProfiles"; this.hits = result.hits.map( - (hit) => new Profile(this._kuzzle, hit._id, hit._source) + (hit) => new Profile(this._kuzzle, hit._id, hit._source), ); } @@ -19,7 +19,7 @@ export class ProfileSearchResult extends SearchResultBase { } nextSearchResult.hits = nextSearchResult._result.hits.map( - (hit) => new Profile(nextSearchResult._kuzzle, hit._id, hit._source) + (hit) => new Profile(nextSearchResult._kuzzle, hit._id, hit._source), ); return nextSearchResult; diff --git a/src/core/searchResult/RealtimeDocument.ts b/src/core/searchResult/RealtimeDocument.ts index 4ed36705c..2b9a72a0e 100644 --- a/src/core/searchResult/RealtimeDocument.ts +++ b/src/core/searchResult/RealtimeDocument.ts @@ -8,7 +8,7 @@ import { SearchResultBase } from "./SearchResultBase"; * Represents a SearchResult containing realtime documents. */ export class RealtimeDocumentSearchResult< - TKDocumentContent extends KDocumentContentGeneric + TKDocumentContent extends KDocumentContentGeneric, > extends SearchResultBase> { private observer: Observer; @@ -17,7 +17,7 @@ export class RealtimeDocumentSearchResult< request: RequestPayload, options: JSONObject, result: JSONObject, - observer: Observer + observer: Observer, ) { super(kuzzle, request, options, result); @@ -61,7 +61,7 @@ export class RealtimeDocumentSearchResult< this._request, this._options, result, - this.observer + this.observer, ); nextSearchResult.fetched += this.fetched; diff --git a/src/core/searchResult/Role.ts b/src/core/searchResult/Role.ts index 75426bdc3..2d3699ba7 100644 --- a/src/core/searchResult/Role.ts +++ b/src/core/searchResult/Role.ts @@ -9,7 +9,7 @@ export class RoleSearchResult extends SearchResultBase { this._scrollAction = null; // scrollRoles action does not exists in Kuzzle API. this.hits = this._result.hits.map( - (hit) => new Role(this._kuzzle, hit._id, hit._source.controllers) + (hit) => new Role(this._kuzzle, hit._id, hit._source.controllers), ); } @@ -18,7 +18,7 @@ export class RoleSearchResult extends SearchResultBase { // => we deny "scroll" and "sort" parameters. if (this._request.scroll || this._request.sort) { return Promise.reject( - new Error("only from/size params are allowed for role search") + new Error("only from/size params are allowed for role search"), ); } @@ -29,7 +29,7 @@ export class RoleSearchResult extends SearchResultBase { nextSearchResult.hits = nextSearchResult._result.hits.map( (hit) => - new Role(nextSearchResult._kuzzle, hit._id, hit._source.controllers) + new Role(nextSearchResult._kuzzle, hit._id, hit._source.controllers), ); return nextSearchResult; diff --git a/src/core/searchResult/SearchResultBase.ts b/src/core/searchResult/SearchResultBase.ts index 053a6b27f..4bc5899b8 100644 --- a/src/core/searchResult/SearchResultBase.ts +++ b/src/core/searchResult/SearchResultBase.ts @@ -62,7 +62,7 @@ export class SearchResultBase implements SearchResult { kuzzle: Kuzzle, request: BaseRequest, options: JSONObject = {}, - result: any = {} + result: any = {}, ) { Reflect.defineProperty(this, "_kuzzle", { value: kuzzle, @@ -122,8 +122,8 @@ export class SearchResultBase implements SearchResult { if (!hit) { return Promise.reject( new Error( - 'Unable to retrieve all results from search: the sort combination must identify one item only. Add document "_id" to the sort.' - ) + 'Unable to retrieve all results from search: the sort combination must identify one item only. Add document "_id" to the sort.', + ), ); } @@ -141,8 +141,8 @@ export class SearchResultBase implements SearchResult { if (sorts.length === 0) { return Promise.reject( new Error( - "Unable to retrieve next results from search: sort param is empty" - ) + "Unable to retrieve next results from search: sort param is empty", + ), ); } @@ -174,8 +174,8 @@ export class SearchResultBase implements SearchResult { return Promise.reject( new Error( - "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params" - ) + "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params", + ), ); } @@ -199,7 +199,7 @@ export class SearchResultBase implements SearchResult { this._kuzzle, this._request, this._options, - result + result, ); nextSearchResult.fetched += this.fetched; diff --git a/src/core/searchResult/User.ts b/src/core/searchResult/User.ts index eb1d5e298..db46d67cf 100644 --- a/src/core/searchResult/User.ts +++ b/src/core/searchResult/User.ts @@ -8,7 +8,7 @@ export class UserSearchResult extends SearchResultBase { this._searchAction = "searchUsers"; this._scrollAction = "scrollUsers"; this.hits = this._result.hits.map( - (hit) => new User(this._kuzzle, hit._id, hit._source) + (hit) => new User(this._kuzzle, hit._id, hit._source), ); } @@ -19,7 +19,7 @@ export class UserSearchResult extends SearchResultBase { } nextSearchResult.hits = nextSearchResult._result.hits.map( - (hit) => new User(nextSearchResult._kuzzle, hit._id, hit._source) + (hit) => new User(nextSearchResult._kuzzle, hit._id, hit._source), ); return nextSearchResult; diff --git a/src/core/security/Profile.ts b/src/core/security/Profile.ts index adc55e401..23a9e4495 100644 --- a/src/core/security/Profile.ts +++ b/src/core/security/Profile.ts @@ -60,7 +60,7 @@ export class Profile { return this.kuzzle.security.mGetRoles( this.policies.map((policy) => policy.roleId), - options + options, ); } diff --git a/src/core/security/Role.ts b/src/core/security/Role.ts index c439716f8..3b39fef7e 100644 --- a/src/core/security/Role.ts +++ b/src/core/security/Role.ts @@ -40,5 +40,3 @@ export class Role { }; } } - -module.exports = { Role }; diff --git a/src/core/security/User.ts b/src/core/security/User.ts index ce55e3864..a9e3eaa9e 100644 --- a/src/core/security/User.ts +++ b/src/core/security/User.ts @@ -74,5 +74,3 @@ export class User { }; } } - -module.exports = { User }; diff --git a/src/protocols/Http.ts b/src/protocols/Http.ts index fcdeadaf4..2025797f5 100644 --- a/src/protocols/Http.ts +++ b/src/protocols/Http.ts @@ -1,5 +1,3 @@ -"use strict"; - import { HttpRoutes, JSONObject } from "../types"; import { RequestPayload } from "../types/RequestPayload"; import { KuzzleAbstractProtocol } from "./abstract/Base"; @@ -37,7 +35,7 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { customRoutes?: HttpRoutes; timeout?: number; headers?: JSONObject; - } = {} + } = {}, ) { super(host, options, "http"); @@ -61,12 +59,12 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { if (!(typeof route.url === "string" && route.url.length > 0)) { throw new Error( - `Incorrect URL for custom route ${controller}:${action}.` + `Incorrect URL for custom route ${controller}:${action}.`, ); } if (!(typeof route.verb === "string" && route.verb.length > 0)) { throw new Error( - `Incorrect VERB for custom route ${controller}:${action}.` + `Incorrect VERB for custom route ${controller}:${action}.`, ); } } @@ -137,13 +135,13 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { if (error.status === 401 || error.status === 403) { this._warn( - '"server:publicApi" route is restricted for anonymous user.' + '"server:publicApi" route is restricted for anonymous user.', ); this._warn( - "This route is used by the HTTP protocol to build API URLs." + "This route is used by the HTTP protocol to build API URLs.", ); this._warn( - "Fallback to static routes, some API routes may be unavailable as well as plugin custom routes" + "Fallback to static routes, some API routes may be unavailable as well as plugin custom routes", ); // fallback to static http routes @@ -164,7 +162,7 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { ({ result: res, error: err }) => { if (!err) { this._routes = this._constructRoutes( - res.serverInfo.kuzzle.api.routes + res.serverInfo.kuzzle.api.routes, ); return; @@ -175,21 +173,21 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { } this._warn( - '"server:info" route is restricted for anonymous user.' + '"server:info" route is restricted for anonymous user.', ); this._warn( - "This route is used by the HTTP protocol to build API URLs." + "This route is used by the HTTP protocol to build API URLs.", ); this._warn( - 'If you want to expose your API routes without disclosing server information you can use "server:publicApi" (available in Kuzzle 1.9.0).' + 'If you want to expose your API routes without disclosing server information you can use "server:publicApi" (available in Kuzzle 1.9.0).', ); this._warn( - "Fallback to static routes, some API routes may be unavailable as well as plugin custom routes" + "Fallback to static routes, some API routes may be unavailable as well as plugin custom routes", ); // fallback to static http routes this._routes = staticHttpRoutes; - } + }, ); } @@ -203,7 +201,7 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { }) .catch((err) => { const connectionError: any = new Error( - `Unable to connect to kuzzle server at ${this.host}:${this.port}` + `Unable to connect to kuzzle server at ${this.host}:${this.port}`, ); connectionError.internal = err; @@ -218,7 +216,7 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { enableCookieSupport() { if (typeof XMLHttpRequest === "undefined") { throw new Error( - "Support for cookie cannot be enabled outside of a browser" + "Support for cookie cannot be enabled outside of a browser", ); } @@ -238,7 +236,7 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { if (!route) { const error = new Error( - `No URL found for "${request.controller}:${request.action}".` + `No URL found for "${request.controller}:${request.action}".`, ); this.emit(request.requestId, { error, status: 400 }); return; @@ -300,7 +298,7 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { // check if an url param is missing (eg: "/:index/_create) if (!urlParam) { const error = new Error( - `Missing URL param "${matches[1]}" in "${matches.input}"` + `Missing URL param "${matches[1]}" in "${matches.input}"`, ); this.emit(payload.requestId, { error, status: 400 }); @@ -360,10 +358,10 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { if (formattedRequest) { this._sendHttpRequest(formattedRequest) .then((response) => - this.emit(formattedRequest.payload.requestId, response) + this.emit(formattedRequest.payload.requestId, response), ) .catch((error) => - this.emit(formattedRequest.payload.requestId, { error }) + this.emit(formattedRequest.payload.requestId, { error }), ); } } @@ -375,43 +373,39 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { }: { method: string; path: string; - payload: JSONObject; + payload?: JSONObject; }) { if (typeof XMLHttpRequest === "undefined") { // NodeJS implementation, using http.request: - // eslint-disable-next-line @typescript-eslint/no-var-requires - const httpClient = require("min-req-promise"); - if (path[0] !== "/") { path = `/${path}`; } const url = `${this.protocol}://${this.host}:${this.port}${path}`; - const headers = (payload && payload.headers) || {}; - headers["Content-Length"] = Buffer.byteLength( - (payload && payload.body) || "" - ); + const body = payload && (payload as any).body; + const headers = { + ...((payload && payload.headers) || {}), + "Content-Length": Buffer.byteLength(body || ""), + }; - return httpClient - .request(url, method, { - body: payload && payload.body, - headers: headers, - timeout: this._timeout, - }) - .then((response) => { - if (response.statusCode === 431) { - throw new Error( - "Request query string is too large. Try to use the method with the POST verb instead." - ); - } + return this._nodeRequest(url, method, { + body, + headers, + timeout: this._timeout, + }).then((response) => { + if (response.statusCode === 431) { + throw new Error( + "Request query string is too large. Try to use the method with the POST verb instead.", + ); + } - const contentType = response.headers["content-type"]; - if (!contentType || !contentType.includes("application/json")) { - return response.body; - } + const contentType = response.headers["content-type"]; + if (!contentType || !contentType.includes("application/json")) { + return response.body; + } - return JSON.parse(response.body); - }); + return JSON.parse(response.body); + }); } // Browser implementation, using XMLHttpRequest: @@ -433,7 +427,7 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { xhr.withCredentials = this.cookieSupport; for (const [header, value] of Object.entries( - (payload && payload.headers) || {} + (payload && payload.headers) || {}, )) { xhr.setRequestHeader(header, value as string); } @@ -456,6 +450,60 @@ export default class HttpProtocol extends KuzzleAbstractProtocol { }); } + private _nodeRequest( + url: string, + method: string, + options: { body?: string; headers?: JSONObject; timeout?: number }, + ): Promise<{ + statusCode?: number; + headers: JSONObject; + body: string; + }> { + const httpModulePromise: Promise< + typeof import("node:http") | typeof import("node:https") + > = this.ssl ? import("node:https") : import("node:http"); + + return httpModulePromise.then( + (httpModule) => + new Promise((resolve, reject) => { + const req = httpModule.request( + url, + { + method, + headers: options.headers, + }, + (res) => { + const chunks: Buffer[] = []; + + res.on("data", (chunk) => chunks.push(chunk)); + res.on("end", () => { + resolve({ + statusCode: res.statusCode, + headers: res.headers as JSONObject, + body: Buffer.concat(chunks).toString(), + }); + }); + }, + ); + + req.on("error", reject); + + const timeout = options.timeout || 0; + if (timeout > 0) { + req.setTimeout(timeout, () => { + req.destroy(new Error("Request timed out")); + }); + } + + if (options.body) { + req.write(options.body); + } + + req.end(); + }), + ); + } + _constructRoutes(publicApi) { const apiRoutes = Object.keys(publicApi) .map((key) => [key, publicApi[key]]) diff --git a/src/protocols/WebSocket.ts b/src/protocols/WebSocket.ts index 8e52fcbe6..fc6f2c515 100644 --- a/src/protocols/WebSocket.ts +++ b/src/protocols/WebSocket.ts @@ -1,5 +1,3 @@ -"use strict"; - import { KuzzleError } from "../KuzzleError"; import { BaseProtocolRealtime } from "./abstract/Realtime"; import { JSONObject } from "../types"; @@ -44,7 +42,7 @@ export default class WebSocketProtocol extends BaseProtocolRealtime { */ sslConnection?: boolean; ssl?: boolean; - } = {} + } = {}, ) { super(host, options, "ws"); @@ -163,7 +161,7 @@ export default class WebSocketProtocol extends BaseProtocolRealtime { if ( [this.client.CLOSING, this.client.CLOSED].indexOf( - this.client.readyState + this.client.readyState, ) > -1 ) { return reject(err); @@ -194,7 +192,7 @@ export default class WebSocketProtocol extends BaseProtocolRealtime { const error = new KuzzleError( data.error, new Error().stack, - this.constructor.name + this.constructor.name, ); this.emit("queryError", { error, request: data }); @@ -220,7 +218,7 @@ export default class WebSocketProtocol extends BaseProtocolRealtime { enableCookieSupport() { if (typeof XMLHttpRequest === "undefined") { throw new Error( - "Support for cookie cannot be enabled outside of a browser" + "Support for cookie cannot be enabled outside of a browser", ); } @@ -342,7 +340,7 @@ export default class WebSocketProtocol extends BaseProtocolRealtime { // If we were waiting for a pong that never occured before the next ping cycle we throw an error if (this.waitForPong) { const error: any = new Error( - "Kuzzle does'nt respond to ping. Connection lost." + "Kuzzle does'nt respond to ping. Connection lost.", ); error.status = 503; diff --git a/src/protocols/abstract/Base.ts b/src/protocols/abstract/Base.ts index f66f2ead0..3b8e51832 100644 --- a/src/protocols/abstract/Base.ts +++ b/src/protocols/abstract/Base.ts @@ -1,5 +1,3 @@ -"use strict"; - import { KuzzleError } from "../../KuzzleError"; import { uuidv4 } from "../../utils/uuidv4"; import { KuzzleEventEmitter } from "../../core/KuzzleEventEmitter"; @@ -26,7 +24,7 @@ export abstract class KuzzleAbstractProtocol extends KuzzleEventEmitter { constructor( host: string, options: JSONObject = {}, - name: string = undefined + name: string = undefined, ) { super(); @@ -38,7 +36,7 @@ export abstract class KuzzleAbstractProtocol extends KuzzleEventEmitter { if (options.ssl !== undefined && options.sslConnection !== undefined) { throw new Error( - 'Both "ssl" and "sslConnection" options are set. Use only "ssl".' + 'Both "ssl" and "sslConnection" options are set. Use only "ssl".', ); } @@ -144,7 +142,7 @@ export abstract class KuzzleAbstractProtocol extends KuzzleEventEmitter { this.emit("discarded", request); return Promise.reject( new Error(`Unable to execute request: not connected to a Kuzzle server. -Discarded request: ${JSON.stringify(request)}`) +Discarded request: ${JSON.stringify(request)}`), ); } @@ -165,7 +163,7 @@ Discarded request: ${JSON.stringify(request)}`) response.error, stack, this.constructor.name, - request + request, ); } else { // Keep both stacktrace because the one we captured in "stack" will give @@ -206,7 +204,7 @@ Discarded request: ${JSON.stringify(request)}`) */ clear() { const rejectedError = new Error( - "Network error: request was sent but no response has been received" + "Network error: request was sent but no response has been received", ); for (const pending of this._pendingRequests.values()) { pending.reject(rejectedError); diff --git a/src/protocols/abstract/Realtime.ts b/src/protocols/abstract/Realtime.ts index 00721f1c3..0e03bee39 100644 --- a/src/protocols/abstract/Realtime.ts +++ b/src/protocols/abstract/Realtime.ts @@ -1,5 +1,3 @@ -"use strict"; - import { KuzzleAbstractProtocol } from "./Base"; import { getBrowserWindow, isBrowser } from "../../utils/browser"; import { DisconnectionOrigin } from "../DisconnectionOrigin"; @@ -76,7 +74,7 @@ export abstract class BaseProtocolRealtime extends KuzzleAbstractProtocol { this.clear(); const connectionError = new Error( - `Unable to connect to kuzzle server at ${this.host}:${this.port}: ${error.message} (ws status=${error.status})` + `Unable to connect to kuzzle server at ${this.host}:${this.port}: ${error.message} (ws status=${error.status})`, ); this.emit("networkError", connectionError); @@ -96,7 +94,7 @@ export abstract class BaseProtocolRealtime extends KuzzleAbstractProtocol { this.retrying = false; this.connect().catch((err) => this.clientNetworkError(err)); }, - { once: true } + { once: true }, ); return; } diff --git a/src/types/KDocument.ts b/src/types/KDocument.ts index 1132f67d2..862360945 100644 --- a/src/types/KDocument.ts +++ b/src/types/KDocument.ts @@ -61,8 +61,9 @@ export interface KDocument { /** * Represents a Kuzzle document retrieved from search */ -export interface KHit - extends KDocument { +export interface KHit< + TKDocumentContent extends KDocumentContent, +> extends KDocument { /** * Elasticsearch relevance score */ diff --git a/src/types/Notification.ts b/src/types/Notification.ts index e926a926d..c45c6139d 100644 --- a/src/types/Notification.ts +++ b/src/types/Notification.ts @@ -57,7 +57,7 @@ export interface BaseNotification { * (create, update, delete) */ export interface DocumentNotification< - TDocContent extends KDocumentContentGeneric = KDocumentContentGeneric + TDocContent extends KDocumentContentGeneric = KDocumentContentGeneric, > extends BaseNotification { /** * Updated document that triggered the notification diff --git a/src/types/ProfilePolicy.ts b/src/types/ProfilePolicy.ts index 45986ff1e..876cd6430 100644 --- a/src/types/ProfilePolicy.ts +++ b/src/types/ProfilePolicy.ts @@ -37,6 +37,6 @@ export type ProfilePolicy = { * Rights will only be applied on those collections. */ collections?: Array; - } + }, ]; }; diff --git a/src/types/mRequests.ts b/src/types/mRequests.ts index 40b1f12d1..ed21f3d9e 100644 --- a/src/types/mRequests.ts +++ b/src/types/mRequests.ts @@ -14,7 +14,7 @@ export type mCreateRequest = }>; export type mCreateOrReplaceRequest< - TKDocumentContent extends KDocumentContentGeneric + TKDocumentContent extends KDocumentContentGeneric, > = Array<{ /** * Document unique identifier diff --git a/src/utils/debug.js b/src/utils/debug.ts similarity index 56% rename from src/utils/debug.js rename to src/utils/debug.ts index 7e1116634..fafe275ce 100644 --- a/src/utils/debug.js +++ b/src/utils/debug.ts @@ -1,10 +1,8 @@ -let NODE_DEBUG; +import { getBrowserWindow, isBrowser } from "./browser"; -const { isBrowser, getBrowserWindow } = require("./browser"); +let NODE_DEBUG: boolean | undefined; -/* eslint no-undef: 0 */ - -function shouldDebug() { +function shouldDebug(): boolean { /** * Some framework like react-native or other might emulate the window object * but when on plateforms like iOS / Android, the window.location is undefined. @@ -17,19 +15,39 @@ function shouldDebug() { try { if (!isBrowser()) { // Avoid multiple calls to process.env - if (!NODE_DEBUG) { - NODE_DEBUG = (process.env.DEBUG || "").includes("kuzzle-sdk"); + if (NODE_DEBUG === undefined) { + NODE_DEBUG = (process.env.DEBUG ?? "").includes("kuzzle-sdk"); } return NODE_DEBUG; } - const window = getBrowserWindow(); - return ( - window.debugKuzzleSdk || - (window.location && - new URL(window.location).searchParams.get("debugKuzzleSdk") !== null) - ); + const window = getBrowserWindow() as + | (Window & { + debugKuzzleSdk?: boolean; + }) + | null; + + if (!window) { + return false; + } + + if (window.debugKuzzleSdk) { + return true; + } + + const location = window.location; + + if (!location) { + return false; + } + + const href = + typeof location === "string" + ? location + : ((location as Location).href ?? String(location)); + + return new URL(href).searchParams.get("debugKuzzleSdk") !== null; } catch (e) { return false; } @@ -42,7 +60,7 @@ function shouldDebug() { * In a browser, you can add the `?debugKuzzleSdk` in the URL * or set `window.debugKuzzleSdk` = true */ -function debug(message, obj) { +export function debug(message: string, obj?: unknown): void { if (!shouldDebug()) { return; } @@ -58,5 +76,3 @@ function debug(message, obj) { console.log(toPrint); } } - -module.exports = { debug }; diff --git a/src/utils/proxify.js b/src/utils/proxify.ts similarity index 95% rename from src/utils/proxify.js rename to src/utils/proxify.ts index 3b56401ef..b484d484b 100644 --- a/src/utils/proxify.js +++ b/src/utils/proxify.ts @@ -49,8 +49,6 @@ console.log(obj.bar); // throw error ``` */ -/* eslint sort-keys: 0 */ - const getOptions = (options) => Object.assign( {}, @@ -63,7 +61,7 @@ const getOptions = (options) => sealGet: false, warnDeprecationOnce: true, }, - options + options, ); const getPropertyNames = (obj) => { @@ -77,7 +75,7 @@ const getPropertyNames = (obj) => { const deleteDuplicates = (arr) => [...new Set(arr)]; -const proxify = (obj, opts = {}) => { +export const proxify = (obj, opts = {}) => { if (!obj || (typeof obj !== "object" && typeof obj !== "function")) { throw Error("proxify only applies on non-null object"); } @@ -107,7 +105,7 @@ const proxify = (obj, opts = {}) => { } [...Object.getOwnPropertyNames(obj), ...getPropertyNames(obj)].forEach( - (prop) => properties.add(prop) + (prop) => properties.add(prop), ); const handler = { @@ -123,7 +121,7 @@ const proxify = (obj, opts = {}) => { set: (target, name, value) => { if (options.seal && !properties.has(name)) { throw new Error( - `Cannot set a value to the undefined '${name}' property in '${options.name}'` + `Cannot set a value to the undefined '${name}' property in '${options.name}'`, ); } if (deprecated.has(name)) { @@ -136,5 +134,3 @@ const proxify = (obj, opts = {}) => { return new Proxy(obj, handler); }; - -module.exports = { proxify }; diff --git a/src/utils/stackTrace.js b/src/utils/stackTrace.ts similarity index 89% rename from src/utils/stackTrace.js rename to src/utils/stackTrace.ts index a7f1f4184..42e3dee54 100644 --- a/src/utils/stackTrace.js +++ b/src/utils/stackTrace.ts @@ -1,5 +1,3 @@ -"use strict"; - /** * Hilight user code * @@ -9,7 +7,7 @@ * > at /home/aschen/projets/kuzzleio/sdk-javascript/test.js:8:18 * at processTicksAndRejections (internal/process/task_queues.js:97:5)] */ -function hilightUserCode(line) { +export function hilightUserCode(line) { // ignore first line (error message) if (!line.includes(" at ")) { return line; @@ -27,7 +25,3 @@ function hilightUserCode(line) { // hilight user code return ">" + line; } - -module.exports = { - hilightUserCode, -}; diff --git a/src/utils/uuidv4.js b/src/utils/uuidv4.js deleted file mode 100644 index 8164bf0f0..000000000 --- a/src/utils/uuidv4.js +++ /dev/null @@ -1,11 +0,0 @@ -// golfed version of uuid-v4 -// uuid node module relies on crypto, which is a bit fat to embed -// -// cf amazing https://gist.github.com/jed/982883 - -const uuidv4 = (a) => - a - ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) - : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuidv4); - -module.exports = { uuidv4 }; diff --git a/src/utils/uuidv4.ts b/src/utils/uuidv4.ts new file mode 100644 index 000000000..9cd69c0d9 --- /dev/null +++ b/src/utils/uuidv4.ts @@ -0,0 +1,54 @@ +const byteToHex = new Array(256); +for (let i = 0; i < 256; i++) { + byteToHex[i] = (i + 0x100).toString(16).substring(1); +} + +const randomBytes = new Uint8Array(16); +const cryptoObj = + typeof globalThis !== "undefined" ? (globalThis as any).crypto : undefined; + +const fillRandomBytes = (bytes: Uint8Array) => { + if (cryptoObj && typeof cryptoObj.getRandomValues === "function") { + cryptoObj.getRandomValues(bytes); + return; + } + + // Fallback when crypto is unavailable + for (let i = 0; i < bytes.length; i++) { + bytes[i] = (Math.random() * 256) | 0; + } +}; + +export const uuidv4 = (): string => { + if (cryptoObj && typeof cryptoObj.randomUUID === "function") { + return cryptoObj.randomUUID(); + } + + fillRandomBytes(randomBytes); + + randomBytes[6] = (randomBytes[6] & 0x0f) | 0x40; + randomBytes[8] = (randomBytes[8] & 0x3f) | 0x80; + + return ( + byteToHex[randomBytes[0]] + + byteToHex[randomBytes[1]] + + byteToHex[randomBytes[2]] + + byteToHex[randomBytes[3]] + + "-" + + byteToHex[randomBytes[4]] + + byteToHex[randomBytes[5]] + + "-" + + byteToHex[randomBytes[6]] + + byteToHex[randomBytes[7]] + + "-" + + byteToHex[randomBytes[8]] + + byteToHex[randomBytes[9]] + + "-" + + byteToHex[randomBytes[10]] + + byteToHex[randomBytes[11]] + + byteToHex[randomBytes[12]] + + byteToHex[randomBytes[13]] + + byteToHex[randomBytes[14]] + + byteToHex[randomBytes[15]] + ); +}; diff --git a/test/.eslintrc.json b/test/.eslintrc.json deleted file mode 100644 index bb86bc75d..000000000 --- a/test/.eslintrc.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "rules": { - "func-names": 0, - "no-invalid-this": 0, - "no-new": 0, - "new-cap": 0, - "no-console": 0 - }, - "parserOptions": { - "ecmaVersion": 2017 - }, - "env": { - "browser": true, - "mocha": true - } -} diff --git a/test/controllers/auth.test.js b/test/controllers/auth.test.js index 2909801d0..7c278dc87 100644 --- a/test/controllers/auth.test.js +++ b/test/controllers/auth.test.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"); const should = require("should"); @@ -47,30 +49,30 @@ describe("Auth Controller", () => { const apiResult = { _id: "api-key-id", _source: { - userId: "kuid", description: "description", expiresAt: Date.now() + 10000, - ttl: 10000, token: "secret-token", + ttl: 10000, + userId: "kuid", }, }; kuzzle.query.resolves({ result: apiResult }); const result = await kuzzle.auth.createApiKey("description", { - expiresIn: 10000, _id: "api-key-id", + expiresIn: 10000, refresh: "wait_for", }); should(kuzzle.query).be.calledWith({ - controller: "auth", - action: "createApiKey", _id: "api-key-id", - expiresIn: 10000, - refresh: "wait_for", + action: "createApiKey", body: { description: "description", }, + controller: "auth", + expiresIn: 10000, + refresh: "wait_for", }); should(result).be.eql(apiResult); @@ -84,9 +86,9 @@ describe("Auth Controller", () => { await kuzzle.auth.deleteApiKey("api-key-id", { refresh: "wait_for" }); should(kuzzle.query).be.calledWith({ - controller: "auth", - action: "deleteApiKey", _id: "api-key-id", + action: "deleteApiKey", + controller: "auth", refresh: "wait_for", }); }); @@ -98,16 +100,16 @@ describe("Auth Controller", () => { const result = await kuzzle.auth.searchApiKeys( { match: {} }, - { from: 1, size: 2 } + { from: 1, size: 2 }, ); should(kuzzle.query).be.calledWith({ - controller: "auth", action: "searchApiKeys", body: { match: {} }, + controller: "auth", from: 1, - size: 2, lang: undefined, + size: 2, }); should(result).be.eql({ hits: [1, 2] }); @@ -118,9 +120,9 @@ describe("Auth Controller", () => { it("should call auth/checkToken query with the token and return a Promise which resolves the token validity", () => { kuzzle.query.resolves({ result: { - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }, }); @@ -129,19 +131,19 @@ describe("Auth Controller", () => { .be.calledOnce() .be.calledWithMatch( { - controller: "auth", action: "checkToken", body: { token: "token", }, + controller: "auth", cookieAuth: false, }, - { queuable: false } + { queuable: false }, ); should(res).match({ - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }); }); }); @@ -149,9 +151,9 @@ describe("Auth Controller", () => { it("should call auth/checkToken query with cookieAuth false, the token and return a Promise which resolves the token validity", () => { kuzzle.query.resolves({ result: { - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }, }); @@ -162,19 +164,19 @@ describe("Auth Controller", () => { .be.calledOnce() .be.calledWithMatch( { - controller: "auth", action: "checkToken", body: { token: "token", }, + controller: "auth", cookieAuth: false, }, - { queuable: false } + { queuable: false }, ); should(res).match({ - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }); }); }); @@ -182,9 +184,9 @@ describe("Auth Controller", () => { it("should call auth/checkToken query with cookieAuth false, the stored token if no token is given and return a Promise which resolves the token validity", () => { kuzzle.query.resolves({ result: { - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }, }); @@ -196,19 +198,19 @@ describe("Auth Controller", () => { return kuzzle.auth.checkToken(undefined, options).then((res) => { should(kuzzle.query).be.calledOnce().be.calledWithMatch( { - controller: "auth", action: "checkToken", body: { token, }, + controller: "auth", cookieAuth: false, }, - { queuable: false } + { queuable: false }, ); should(res).match({ - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }); }); }); @@ -216,9 +218,9 @@ describe("Auth Controller", () => { it("should call auth/checkToken query with cookieAuth true, token should be undefined and return a Promise which resolves the token validity", () => { kuzzle.query.resolves({ result: { - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }, }); @@ -232,19 +234,19 @@ describe("Auth Controller", () => { .be.calledOnce() .be.calledWithMatch( { - controller: "auth", action: "checkToken", body: { token: undefined, }, + controller: "auth", cookieAuth: true, }, - { queuable: false } + { queuable: false }, ); should(res).match({ - valid: true, - state: "Error message", expiresAt: 42424242, + state: "Error message", + valid: true, }); }); }); @@ -256,8 +258,8 @@ describe("Auth Controller", () => { kuzzle.query.resolves({ result: { - username: "foo", kuid: "bar", + username: "foo", }, }); @@ -266,15 +268,15 @@ describe("Auth Controller", () => { .then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - strategy: "strategy", + action: "createMyCredentials", body: credentials, controller: "auth", - action: "createMyCredentials", + strategy: "strategy", }, - options + options, ); - should(res).match({ username: "foo", kuid: "bar" }); + should(res).match({ kuid: "bar", username: "foo" }); }); }); }); @@ -286,11 +288,11 @@ describe("Auth Controller", () => { return kuzzle.auth.credentialsExist("strategy", options).then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - strategy: "strategy", - controller: "auth", action: "credentialsExist", + controller: "auth", + strategy: "strategy", }, - options + options, ); should(res).be.exactly(true); @@ -307,11 +309,11 @@ describe("Auth Controller", () => { .then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - strategy: "strategy", - controller: "auth", action: "deleteMyCredentials", + controller: "auth", + strategy: "strategy", }, - options + options, ); should(res).be.exactly(true); @@ -331,10 +333,10 @@ describe("Auth Controller", () => { return kuzzle.auth.getCurrentUser(options).then((user) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "getCurrentUser", + controller: "auth", }, - options + options, ); should(user).be.an.instanceOf(User); @@ -348,22 +350,22 @@ describe("Auth Controller", () => { it("should call auth/getMyCredentials query with the strategy name and return a Promise which resolves the user credentials", () => { kuzzle.query.resolves({ result: { - username: "foo", kuid: "bar", + username: "foo", }, }); return kuzzle.auth.getMyCredentials("strategy", options).then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - strategy: "strategy", - controller: "auth", action: "getMyCredentials", + controller: "auth", + strategy: "strategy", }, - options + options, ); - should(res).match({ username: "foo", kuid: "bar" }); + should(res).match({ kuid: "bar", username: "foo" }); }); }); }); @@ -374,10 +376,10 @@ describe("Auth Controller", () => { result: { hits: [ { - controller: "foo", action: "bar", - index: "foobar", collection: "*", + controller: "foo", + index: "foobar", value: "allowed", }, ], @@ -387,18 +389,18 @@ describe("Auth Controller", () => { return kuzzle.auth.getMyRights(options).then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "getMyRights", + controller: "auth", }, - options + options, ); should(res).be.an.Array(); should(res[0]).match({ - controller: "foo", action: "bar", - index: "foobar", collection: "*", + controller: "foo", + index: "foobar", value: "allowed", }); }); @@ -412,10 +414,10 @@ describe("Auth Controller", () => { return kuzzle.auth.getStrategies(options).then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "getStrategies", + controller: "auth", }, - options + options, ); should(res).be.an.Array(); @@ -435,8 +437,8 @@ describe("Auth Controller", () => { kuzzle.query.resolves({ result: { - jwt, _id: "kuid", + jwt, }, }); }); @@ -447,14 +449,14 @@ describe("Auth Controller", () => { .then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "login", - strategy: "strategy", - expiresIn: "expiresIn", body: credentials, + controller: "auth", cookieAuth: false, + expiresIn: "expiresIn", + strategy: "strategy", }, - { queuable: false, verb: "POST", timeout: -1 } + { queuable: false, timeout: -1, verb: "POST" }, ); should(res).be.equal(jwt); @@ -468,14 +470,14 @@ describe("Auth Controller", () => { .then(() => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "login", - strategy: "strategy", - expiresIn: "expiresIn", body: credentials, + controller: "auth", cookieAuth: true, + expiresIn: "expiresIn", + strategy: "strategy", }, - { queuable: false, verb: "POST", timeout: -1 } + { queuable: false, timeout: -1, verb: "POST" }, ); }); }); @@ -492,14 +494,14 @@ describe("Auth Controller", () => { .then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "login", - strategy: "strategy", - expiresIn: "expiresIn", body: credentials, + controller: "auth", cookieAuth: true, + expiresIn: "expiresIn", + strategy: "strategy", }, - { queuable: false, verb: "POST", timeout: -1 } + { queuable: false, timeout: -1, verb: "POST" }, ); should(res).be.undefined(); @@ -522,12 +524,12 @@ describe("Auth Controller", () => { .catch(() => { should(kuzzle.emit).be.calledWith("beforeLogin"); should(kuzzle.emit).be.calledWith("afterLogin", { - success: false, error: "Error", + success: false, }); should(kuzzle.emit).be.calledWith("loginAttempt", { - success: false, error: "Error", + success: false, }); }); }); @@ -554,12 +556,12 @@ describe("Auth Controller", () => { .catch(() => { should(kuzzle.emit).be.calledWith("beforeLogin"); should(kuzzle.emit).be.calledWith("afterLogin", { - success: false, error: "Error", + success: false, }); should(kuzzle.emit).be.calledWith("loginAttempt", { - success: false, error: "Error", + success: false, }); }); }); @@ -599,8 +601,8 @@ describe("Auth Controller", () => { it("should call auth/logout query and return an empty Promise", () => { return kuzzle.auth.logout().then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith({ - controller: "auth", action: "logout", + controller: "auth", cookieAuth: false, }); @@ -626,8 +628,8 @@ describe("Auth Controller", () => { kuzzle.query.rejects(); await kuzzle.auth.logout().catch(() => { should(kuzzle.emit).be.calledWith("logoutAttempt", { - success: false, error: "Error", + success: false, }); }); }); @@ -644,8 +646,8 @@ describe("Auth Controller", () => { kuzzle.query.rejects(); await kuzzle.auth.logout().catch(() => { should(kuzzle.emit).be.calledWith("afterLogout", { - success: false, error: "Error", + success: false, }); }); }); @@ -657,8 +659,8 @@ describe("Auth Controller", () => { kuzzle.query.resolves({ result: { - username: "foo", kuid: "bar", + username: "foo", }, }); @@ -667,15 +669,15 @@ describe("Auth Controller", () => { .then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "updateMyCredentials", - strategy: "strategy", body: credentials, + controller: "auth", + strategy: "strategy", }, - options + options, ); - should(res).match({ username: "foo", kuid: "bar" }); + should(res).match({ kuid: "bar", username: "foo" }); }); }); }); @@ -694,11 +696,11 @@ describe("Auth Controller", () => { return kuzzle.auth.updateSelf(body, options).then((user) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - controller: "auth", action: "updateSelf", body, + controller: "auth", }, - options + options, ); should(user).be.an.instanceOf(User); @@ -719,12 +721,12 @@ describe("Auth Controller", () => { .then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - strategy: "strategy", + action: "validateMyCredentials", body, controller: "auth", - action: "validateMyCredentials", + strategy: "strategy", }, - options + options, ); should(res).be.exactly(true); @@ -743,10 +745,10 @@ describe("Auth Controller", () => { it("should call auth/refreshToken query", () => { return kuzzle.auth.refreshToken().then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith({ - controller: "auth", action: "refreshToken", - expiresIn: undefined, + controller: "auth", cookieAuth: false, + expiresIn: undefined, }); should(res).be.eql(tokenResponse); @@ -759,10 +761,10 @@ describe("Auth Controller", () => { kuzzle.cookieAuthentication = true; return kuzzle.auth.refreshToken().then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith({ - controller: "auth", action: "refreshToken", - expiresIn: undefined, + controller: "auth", cookieAuth: true, + expiresIn: undefined, }); should(res).be.eql(tokenResponse); @@ -773,8 +775,8 @@ describe("Auth Controller", () => { it("should set the expiresIn option if one is provided", () => { return kuzzle.auth.refreshToken({ expiresIn: "foobar" }).then((res) => { should(kuzzle.query).be.calledOnce().be.calledWithMatch({ - controller: "auth", action: "refreshToken", + controller: "auth", expiresIn: "foobar", }); @@ -805,7 +807,7 @@ describe("Auth Controller", () => { }); it("should throw if parameter is not a string", () => { - should(function () { + should(function auth() { kuzzle.auth.authenticationToken = 1234; }).throw(); }); diff --git a/test/controllers/bulk.test.js b/test/controllers/bulk.test.js index fbac21efc..1dabd2b4c 100644 --- a/test/controllers/bulk.test.js +++ b/test/controllers/bulk.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { BulkController } = require("../../src/controllers/Bulk"), sinon = require("sinon"), should = require("should"); @@ -26,20 +28,20 @@ describe("Bulk Controller", () => { "index", "collection", { query: { match: { foo: "bar" } } }, - options + options, ) .then((res) => { should(kuzzle.query) .be.calledOnce() .be.calledWith( { - controller: "bulk", action: "deleteByQuery", - index: "index", - collection: "collection", body: { query: { match: { foo: "bar" } } }, + collection: "collection", + controller: "bulk", + index: "index", }, - options + options, ); should(res).be.an.Number(); @@ -52,11 +54,11 @@ describe("Bulk Controller", () => { it("should call bulk/import query with the bulk data and return a Promise which resolves json object", () => { kuzzle.query.resolves({ result: { + errors: false, items: [ { create: { _id: "foo" }, status: 200 }, - { update: { _id: "bar" }, status: 200 }, + { status: 200, update: { _id: "bar" } }, ], - errors: false, }, }); @@ -68,18 +70,18 @@ describe("Bulk Controller", () => { .then((res) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - index, - collection, + action: "import", body: { bulkData }, + collection, controller: "bulk", - action: "import", + index, }, - options + options, ); should(res.items).match([ { create: { _id: "foo" }, status: 200 }, - { update: { _id: "bar" }, status: 200 }, + { status: 200, update: { _id: "bar" } }, ]); should(res.errors).be.eql(false); }); @@ -105,15 +107,15 @@ describe("Bulk Controller", () => { .then((result) => { should(kuzzle.query).be.calledOnce().be.calledWith( { - body: document, _id: "liia", - index: "vietnam", + action: "write", + body: document, collection: "hochiminh", controller: "bulk", - action: "write", + index: "vietnam", notify: true, }, - options + options, ); should(result).match({ @@ -151,14 +153,14 @@ describe("Bulk Controller", () => { .then((result) => { should(kuzzle.query).be.calledOnce().be.calledWith( { + action: "mWrite", body: { documents }, - index: "vietnam", collection: "hochiminh", controller: "bulk", - action: "mWrite", + index: "vietnam", notify: true, }, - options + options, ); should(result.hits[0]).match({ diff --git a/test/controllers/collection.test.js b/test/controllers/collection.test.js index c1c60b215..454b510ef 100644 --- a/test/controllers/collection.test.js +++ b/test/controllers/collection.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { CollectionController } = require("../../src/controllers/Collection"), { SpecificationsSearchResult, @@ -31,7 +33,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).be.undefined(); @@ -54,7 +56,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).be.undefined(); @@ -76,7 +78,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).be.undefined(); @@ -98,7 +100,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).be.a.Boolean().and.be.true(); @@ -120,7 +122,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).be.undefined(); @@ -157,7 +159,7 @@ describe("Collection Controller", () => { collection: "collection", includeKuzzleMeta: true, }, - options + options, ); should(res).match({ @@ -201,7 +203,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).match({ @@ -240,7 +242,7 @@ describe("Collection Controller", () => { size: 0, from: undefined, }, - options + options, ); should(res).match({ @@ -282,7 +284,7 @@ describe("Collection Controller", () => { size: 42, scroll: "scroll", }, - { foo: "bar", from: 3, scroll: "scroll", size: 42 } + { foo: "bar", from: 3, scroll: "scroll", size: 42 }, ); should(res).be.an.instanceOf(SpecificationsSearchResult); @@ -317,7 +319,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).be.undefined(); @@ -341,7 +343,7 @@ describe("Collection Controller", () => { index: "index", collection: "collection", }, - options + options, ); should(res).match({ foo: "bar" }); @@ -386,7 +388,7 @@ describe("Collection Controller", () => { controller: "collection", action: "updateSpecifications", }, - options + options, ); should(res).match({ foo: "bar" }); @@ -416,7 +418,7 @@ describe("Collection Controller", () => { controller: "collection", action: "validateSpecifications", }, - options + options, ); should(res).match({ diff --git a/test/controllers/document.test.js b/test/controllers/document.test.js index fae5cdf7b..9b9a61062 100644 --- a/test/controllers/document.test.js +++ b/test/controllers/document.test.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"); const should = require("should"); @@ -35,7 +37,7 @@ describe("Document Controller", () => { collection: "collection", body: { foo: "bar" }, }, - options + options, ); should(res).be.a.Number().and.be.equal(1234); @@ -68,7 +70,7 @@ describe("Document Controller", () => { silent: true, body: { foo: "bar" }, }, - options + options, ); should(res).be.equal(result); @@ -93,7 +95,7 @@ describe("Document Controller", () => { "collection", "document-id", { foo: "bar" }, - options + options, ) .then((res) => { should(kuzzle.query) @@ -108,7 +110,7 @@ describe("Document Controller", () => { silent: true, body: { foo: "bar" }, }, - options + options, ); should(res).be.equal(result); @@ -133,7 +135,7 @@ describe("Document Controller", () => { silent: true, _id: "document-id", }, - options + options, ); should(res).equal("document-id"); @@ -157,7 +159,7 @@ describe("Document Controller", () => { "collection", "document-id", ["bar"], - optionsCopy + optionsCopy, ) .then((res) => { should(kuzzle.query) @@ -173,7 +175,7 @@ describe("Document Controller", () => { silent: true, source: true, }, - optionsCopy + optionsCopy, ); should(res._id).be.equal("document-id"); @@ -202,7 +204,7 @@ describe("Document Controller", () => { lang: undefined, silent: true, }, - options + options, ); should(res).be.an.Array(); @@ -236,7 +238,7 @@ describe("Document Controller", () => { collection: "collection", _id: "document-id", }, - options + options, ); should(res._id).be.equal("document-id"); @@ -268,7 +270,7 @@ describe("Document Controller", () => { "index", "collection", [{ _id: "document-id", body: { foo: "bar" } }], - options + options, ) .then((res) => { should(kuzzle.query) @@ -285,7 +287,7 @@ describe("Document Controller", () => { documents: [{ _id: "document-id", body: { foo: "bar" } }], }, }, - options + options, ); should(res).be.equal(result); @@ -314,7 +316,7 @@ describe("Document Controller", () => { "index", "collection", [{ _id: "document-id", body: { foo: "bar" } }], - options + options, ) .then((res) => { should(kuzzle.query) @@ -331,7 +333,7 @@ describe("Document Controller", () => { documents: [{ _id: "document-id", body: { foo: "bar" } }], }, }, - options + options, ); should(res).be.equal(result); @@ -357,7 +359,7 @@ describe("Document Controller", () => { "collection", "some-id", { changes: "changes" }, - options + options, ) .then((res) => { should(kuzzle.query) @@ -376,7 +378,7 @@ describe("Document Controller", () => { default: { def: "default" }, }, }, - options + options, ); should(res).be.equal(result); @@ -406,7 +408,7 @@ describe("Document Controller", () => { strict: true, body: { ids: ["document1", "document2"] }, }, - options + options, ); should(res).be.equal(result); @@ -438,7 +440,7 @@ describe("Document Controller", () => { collection: "collection", body: { ids: ["document1", "document2"] }, }, - options + options, ); should(res).be.equal(result); @@ -467,7 +469,7 @@ describe("Document Controller", () => { "index", "collection", [{ _id: "document-id", body: { foo: "bar" } }], - options + options, ) .then((res) => { should(kuzzle.query) @@ -484,7 +486,7 @@ describe("Document Controller", () => { documents: [{ _id: "document-id", body: { foo: "bar" } }], }, }, - options + options, ); should(res).be.equal(result); @@ -513,7 +515,7 @@ describe("Document Controller", () => { "index", "collection", [{ _id: "document-id", body: { foo: "bar" } }], - options + options, ) .then((res) => { should(kuzzle.query) @@ -530,7 +532,7 @@ describe("Document Controller", () => { documents: [{ _id: "document-id", body: { foo: "bar" } }], }, }, - options + options, ); should(res).be.equal(result); @@ -564,7 +566,7 @@ describe("Document Controller", () => { silent: true, body: { foo: "bar" }, }, - options + options, ); should(res).be.equal(result); @@ -602,7 +604,7 @@ describe("Document Controller", () => { size: undefined, scroll: undefined, }, - options + options, ); should(res).be.an.instanceOf(DocumentSearchResult); @@ -645,7 +647,7 @@ describe("Document Controller", () => { size: undefined, scroll: undefined, }, - options + options, ); should(res).be.an.instanceOf(DocumentSearchResult); @@ -674,7 +676,7 @@ describe("Document Controller", () => { "index", "collection", { foo: "bar" }, - { from: 1, size: 2, scroll: "10s" } + { from: 1, size: 2, scroll: "10s" }, ) .then((res) => { should(kuzzle.query) @@ -690,7 +692,7 @@ describe("Document Controller", () => { size: 2, scroll: "10s", }, - {} + {}, ); should(res).be.an.instanceOf(DocumentSearchResult); @@ -776,7 +778,7 @@ describe("Document Controller", () => { silent: true, source: undefined, }, - options + options, ); should(res).be.equal(result); @@ -798,7 +800,7 @@ describe("Document Controller", () => { "collection", "document-id", { foo: "bar" }, - { retryOnConflict: true } + { retryOnConflict: true }, ) .then((res) => { should(kuzzle.query) @@ -815,7 +817,7 @@ describe("Document Controller", () => { source: undefined, silent: undefined, }, - { retryOnConflict: true } + { retryOnConflict: true }, ); should(res).be.equal(result); @@ -837,7 +839,7 @@ describe("Document Controller", () => { "collection", "document-id", { foo: "bar" }, - { source: true } + { source: true }, ) .then((res) => { should(kuzzle.query) @@ -899,7 +901,7 @@ describe("Document Controller", () => { silent: true, lang: undefined, }, - options + options, ); should(res).be.equal(result); @@ -972,7 +974,7 @@ describe("Document Controller", () => { collection: "collection", body: { foo: "bar" }, }, - options + options, ); should(res).be.equal(result); diff --git a/test/controllers/index.test.js b/test/controllers/index.test.js index 6f68ad85b..58ab7b307 100644 --- a/test/controllers/index.test.js +++ b/test/controllers/index.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { IndexController } = require("../../src/controllers/Index"), sinon = require("sinon"), should = require("should"); @@ -29,7 +31,7 @@ describe("Index Controller", () => { action: "create", index: "index", }, - options + options, ); should(res).be.undefined(); @@ -50,7 +52,7 @@ describe("Index Controller", () => { action: "delete", index: "index", }, - options + options, ); should(res).be.undefined(); @@ -69,7 +71,7 @@ describe("Index Controller", () => { action: "exists", index: "index", }, - options + options, ); should(res).be.a.Boolean().and.be.true(); @@ -90,7 +92,7 @@ describe("Index Controller", () => { controller: "index", action: "list", }, - options + options, ); should(res).be.equal(result.indexes); @@ -114,7 +116,7 @@ describe("Index Controller", () => { action: "mDelete", body: { indexes: ["foo", "bar"] }, }, - options + options, ); should(res).be.equal(result.deleted); @@ -147,7 +149,7 @@ describe("Index Controller", () => { controller: "index", action: "stats", }, - options + options, ); should(res).be.equal(result); diff --git a/test/controllers/memoryStorage.test.js b/test/controllers/memoryStorage.test.js index ec54222a0..4a768121d 100644 --- a/test/controllers/memoryStorage.test.js +++ b/test/controllers/memoryStorage.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { MemoryStorageController, } = require("../../src/controllers/MemoryStorage"), @@ -21,7 +23,7 @@ describe("MemoryStorage Controller", function () { expArgs, expOpts, result, - expected + expected, ) => { kuzzle.query.reset(); kuzzle.query.resolves({ result }); @@ -38,8 +40,8 @@ describe("MemoryStorage Controller", function () { action: command, }, expArgs, - expOpts - ) + expOpts, + ), ); }); }; @@ -51,7 +53,7 @@ describe("MemoryStorage Controller", function () { expArgs, expOpts, result, - expected + expected, ) => { if (!expArgs.body) { expArgs.body = {}; @@ -71,8 +73,8 @@ describe("MemoryStorage Controller", function () { action: command, }, expArgs, - expOpts - ) + expOpts, + ), ); return kuzzle.ms[command](...args.concat(opts)); @@ -87,7 +89,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "value" } }, {}, 123, - 123 + 123, ); }); @@ -99,7 +101,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, { start: 2, end: 42 }, 123, - 123 + 123, ); }); @@ -111,7 +113,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { operation: "and", keys: ["foo", "bar"] } }, {}, 123, - 123 + 123, ); }); @@ -123,7 +125,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", bit: 0 }, { start: 2, end: 42 }, 123, - 123 + 123, ); }); @@ -143,7 +145,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: 42 } }, {}, 123, - 123 + 123, ); }); @@ -155,7 +157,7 @@ describe("MemoryStorage Controller", function () { { body: { keys: ["key1", "key2", "key3"] } }, {}, 123, - 123 + 123, ); }); @@ -167,7 +169,7 @@ describe("MemoryStorage Controller", function () { { keys: ["key1", "key2", "key3"] }, {}, 123, - 123 + 123, ); }); @@ -179,7 +181,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { seconds: 42 } }, {}, 0, - false + false, ); }); @@ -191,7 +193,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { timestamp: 123456789 } }, {}, 1, - true + true, ); }); @@ -220,7 +222,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { points: points } }, {}, 1, - 1 + 1, ); }); @@ -232,7 +234,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", member1: "Palermo", member2: "Catania" }, { unit: "ft" }, "12345.678", - 12345.678 + 12345.678, ); }); @@ -244,7 +246,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", members: ["Palermo", "Catania"] }, {}, ["foo", "bar"], - ["foo", "bar"] + ["foo", "bar"], ); }); @@ -262,7 +264,7 @@ describe("MemoryStorage Controller", function () { [ [123.45, 67.89], [3.14, 6.98], - ] + ], ); }); @@ -280,7 +282,7 @@ describe("MemoryStorage Controller", function () { [ { name: "Palermo", distance: 190.4424, coordinates: [13.36, 38.11] }, { name: "Catania", distance: 56.44, coordinates: [15.08, 37.5] }, - ] + ], ).then(function () { return testReadCommand( "georadius", @@ -289,7 +291,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", lon: 15, lat: 37, distance: 200, unit: "km" }, {}, ["Palermo", "Catania"], - [{ name: "Palermo" }, { name: "Catania" }] + [{ name: "Palermo" }, { name: "Catania" }], ); }); }); @@ -308,7 +310,7 @@ describe("MemoryStorage Controller", function () { [ { name: "Palermo", distance: 190.4424, coordinates: [13.36, 38.11] }, { name: "Catania", distance: 56.44, coordinates: [15.08, 37.5] }, - ] + ], ).then(function () { return testReadCommand( "georadiusbymember", @@ -317,7 +319,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", member: "Palermo", distance: 200, unit: "km" }, {}, ["Palermo", "Catania"], - [{ name: "Palermo" }, { name: "Catania" }] + [{ name: "Palermo" }, { name: "Catania" }], ); }); }); @@ -330,7 +332,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -342,7 +344,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", offset: 10 }, {}, 1, - 1 + 1, ); }); @@ -354,7 +356,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", start: 2, end: 4 }, {}, "bar", - "bar" + "bar", ); }); @@ -366,7 +368,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "foobar" } }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -378,7 +380,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { fields: ["f1", "f2", "f3"] } }, {}, 2, - 2 + 2, ); }); @@ -390,7 +392,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", field: "field" }, {}, 0, - false + false, ); }); @@ -402,7 +404,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", field: "field" }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -414,7 +416,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, { foo: "bar", baz: "qux" }, - { foo: "bar", baz: "qux" } + { foo: "bar", baz: "qux" }, ); }); @@ -426,7 +428,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { field: "field", value: 42 } }, {}, 2, - 2 + 2, ); }); @@ -438,7 +440,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { field: "field", value: 3.14159 } }, {}, "3.14159", - 3.14159 + 3.14159, ); }); @@ -450,7 +452,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, ["foo", "bar", "baz", "qux"], - ["foo", "bar", "baz", "qux"] + ["foo", "bar", "baz", "qux"], ); }); @@ -466,7 +468,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", fields: ["f1", "f2", "f3"] }, {}, ["foo", "bar", "baz", "qux"], - ["foo", "bar", "baz", "qux"] + ["foo", "bar", "baz", "qux"], ); }); @@ -483,7 +485,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { entries: entries } }, {}, "OK", - undefined + undefined, ); }); @@ -495,7 +497,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", cursor: 0 }, { count: 42, match: "foo*" }, [42, ["bar", "baz", "qux"]], - { cursor: 42, values: ["bar", "baz", "qux"] } + { cursor: 42, values: ["bar", "baz", "qux"] }, ); }); @@ -507,7 +509,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { field: "field", value: "value" } }, {}, 1, - true + true, ); }); @@ -519,7 +521,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { field: "field", value: "value" } }, {}, 0, - false + false, ); }); @@ -531,7 +533,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", field: "field" }, {}, 10, - 10 + 10, ); }); @@ -543,7 +545,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, ["foo", "bar", "baz", "qux"], - ["foo", "bar", "baz", "qux"] + ["foo", "bar", "baz", "qux"], ); }); @@ -559,7 +561,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: -3 } }, {}, 123, - 123 + 123, ); }); @@ -571,7 +573,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: -3.14 } }, {}, "123.12", - 123.12 + 123.12, ); }); @@ -583,7 +585,7 @@ describe("MemoryStorage Controller", function () { { pattern: "pattern" }, {}, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -595,7 +597,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", idx: 3 }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -607,7 +609,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { position: "after", pivot: "foo", value: "bar" } }, {}, 4, - 4 + 4, ); }); @@ -623,7 +625,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -635,7 +637,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { values: ["foo", "bar", "baz"] } }, {}, 4, - 4 + 4, ); }); @@ -647,7 +649,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "foo" } }, {}, 4, - 4 + 4, ); }); @@ -659,7 +661,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", start: 0, stop: 1 }, {}, ["foo", "bar"], - ["foo", "bar"] + ["foo", "bar"], ); }); @@ -671,7 +673,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { count: 1, value: "foo" } }, {}, 1, - 1 + 1, ); }); @@ -683,7 +685,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { index: 1, value: "foo" } }, {}, "OK", - undefined + undefined, ); }); @@ -695,7 +697,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { start: 1, stop: 2 } }, {}, "OK", - undefined + undefined, ); }); @@ -724,7 +726,7 @@ describe("MemoryStorage Controller", function () { [null, "OK"], [null, "1"], [null, 1], - ] + ], ); }); @@ -736,7 +738,7 @@ describe("MemoryStorage Controller", function () { { keys: ["k1", "k2", "k3"] }, {}, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -753,7 +755,7 @@ describe("MemoryStorage Controller", function () { { body: { entries: entries } }, {}, "OK", - undefined + undefined, ); }); @@ -770,7 +772,7 @@ describe("MemoryStorage Controller", function () { { body: { entries: entries } }, {}, 1, - true + true, ); }); @@ -782,7 +784,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", subcommand: "encoding" }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -794,7 +796,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, 1, - true + true, ); }); @@ -806,7 +808,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { milliseconds: 42000 } }, {}, 0, - false + false, ); }); @@ -818,7 +820,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { timestamp: 123456789 } }, {}, 1, - true + true, ); }); @@ -830,7 +832,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { elements: ["foo", "bar", "baz"] } }, {}, 0, - false + false, ); }); @@ -842,7 +844,7 @@ describe("MemoryStorage Controller", function () { { keys: ["k1", "k2", "k3"] }, {}, 42, - 42 + 42, ); }); @@ -854,7 +856,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { sources: ["key1", "key2", "key3"] } }, {}, "OK", - undefined + undefined, ); }); @@ -870,7 +872,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "value", milliseconds: 42000 } }, {}, "OK", - undefined + undefined, ); }); @@ -882,7 +884,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, 42000, - 42000 + 42000, ); }); @@ -898,7 +900,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { newkey: "newId" } }, {}, "OK", - undefined + undefined, ); }); @@ -910,7 +912,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { newkey: "newId" } }, {}, 1, - true + true, ); }); @@ -922,7 +924,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -934,7 +936,7 @@ describe("MemoryStorage Controller", function () { { body: { source: "src", destination: "dest" } }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -946,7 +948,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { values: ["foo", "bar", "baz"] } }, {}, 4, - 4 + 4, ); }); @@ -958,7 +960,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "foo" } }, {}, 4, - 4 + 4, ); }); @@ -970,7 +972,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { members: ["foo", "bar", "baz"] } }, {}, 4, - 4 + 4, ); }); @@ -982,7 +984,7 @@ describe("MemoryStorage Controller", function () { { cursor: 0 }, { count: 42, match: "foo*" }, [42, ["bar", "baz", "qux"]], - { cursor: 42, values: ["bar", "baz", "qux"] } + { cursor: 42, values: ["bar", "baz", "qux"] }, ); }); @@ -998,7 +1000,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", keys: ["foo", "bar", "baz"] }, {}, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -1013,7 +1015,7 @@ describe("MemoryStorage Controller", function () { }, {}, 4, - 4 + 4, ); }); @@ -1025,7 +1027,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "foo", ex: 0, nx: true, px: 42, xx: true } }, {}, "OK", - undefined + undefined, ); }); @@ -1037,7 +1039,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "foo", seconds: 42 } }, {}, "OK", - undefined + undefined, ); }); @@ -1049,7 +1051,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { value: "foo" } }, {}, 1, - true + true, ); }); @@ -1061,7 +1063,7 @@ describe("MemoryStorage Controller", function () { { keys: ["k1", "k2", "k3"] }, {}, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -1073,7 +1075,7 @@ describe("MemoryStorage Controller", function () { { body: { destination: "key", keys: ["k1", "k2", "k3"] } }, {}, 1, - 1 + 1, ); }); @@ -1085,7 +1087,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", member: "foobar" }, {}, 0, - false + false, ); }); @@ -1097,7 +1099,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -1109,7 +1111,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { destination: "dest", member: "member" } }, {}, 1, - true + true, ); }); @@ -1136,7 +1138,7 @@ describe("MemoryStorage Controller", function () { }, {}, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -1148,7 +1150,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { count: 2 } }, {}, ["foo", "bar"], - ["foo", "bar"] + ["foo", "bar"], ); }); @@ -1160,7 +1162,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, { count: 2 }, ["foo", "bar"], - ["foo", "bar"] + ["foo", "bar"], ); }); @@ -1172,7 +1174,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { members: ["m1", "m2", "m3"] } }, {}, 3, - 3 + 3, ); }); @@ -1184,7 +1186,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", cursor: 0 }, { count: 42, match: "foo*" }, [42, ["bar", "baz", "qux"]], - { cursor: 42, values: ["bar", "baz", "qux"] } + { cursor: 42, values: ["bar", "baz", "qux"] }, ); }); @@ -1200,7 +1202,7 @@ describe("MemoryStorage Controller", function () { { keys: ["k1", "k2", "k3"] }, {}, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -1212,7 +1214,7 @@ describe("MemoryStorage Controller", function () { { body: { destination: "key", keys: ["k1", "k2", "k3"] } }, {}, 1, - 1 + 1, ); }); @@ -1228,7 +1230,7 @@ describe("MemoryStorage Controller", function () { { body: { keys: ["k1", "k2", "k3"] } }, {}, 3, - 3 + 3, ); }); @@ -1244,7 +1246,7 @@ describe("MemoryStorage Controller", function () { { _id: "key" }, {}, "foobar", - "foobar" + "foobar", ); }); @@ -1265,7 +1267,7 @@ describe("MemoryStorage Controller", function () { }, {}, 3, - 3 + 3, ); }); @@ -1281,7 +1283,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", min: 2, max: 3 }, {}, 3, - 3 + 3, ); }); @@ -1293,7 +1295,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { member: "foo", value: 42 } }, {}, 2, - 2 + 2, ); }); @@ -1312,7 +1314,7 @@ describe("MemoryStorage Controller", function () { }, {}, 1, - 1 + 1, ); }); @@ -1324,7 +1326,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", min: "foo", max: "bar" }, {}, 3, - 3 + 3, ); }); @@ -1339,7 +1341,7 @@ describe("MemoryStorage Controller", function () { [ { member: "foo", score: 123 }, { member: "bar", score: 456 }, - ] + ], ); }); @@ -1351,7 +1353,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", min: "a", max: "z" }, { limit: [0, 1] }, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -1363,7 +1365,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", min: "a", max: "z" }, { limit: [0, 1] }, ["foo", "bar", "baz"], - ["foo", "bar", "baz"] + ["foo", "bar", "baz"], ); }); @@ -1378,7 +1380,7 @@ describe("MemoryStorage Controller", function () { [ { member: "foo", score: 123 }, { member: "bar", score: 456 }, - ] + ], ); }); @@ -1390,7 +1392,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", member: "foo" }, {}, 3, - 3 + 3, ); }); @@ -1402,7 +1404,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { members: ["m1", "m2", "m3"] } }, {}, 3, - 3 + 3, ); }); @@ -1414,7 +1416,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { min: "a", max: "z" } }, {}, 3, - 3 + 3, ); }); @@ -1426,7 +1428,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { start: 0, stop: 3 } }, {}, 3, - 3 + 3, ); }); @@ -1438,7 +1440,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", body: { min: 0, max: 3 } }, {}, 3, - 3 + 3, ); }); @@ -1453,7 +1455,7 @@ describe("MemoryStorage Controller", function () { [ { member: "foo", score: 123 }, { member: "bar", score: 456 }, - ] + ], ); }); @@ -1468,7 +1470,7 @@ describe("MemoryStorage Controller", function () { [ { member: "foo", score: 123 }, { member: "bar", score: 456 }, - ] + ], ); }); @@ -1480,7 +1482,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", member: "foo" }, {}, 3, - 3 + 3, ); }); @@ -1492,7 +1494,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", cursor: 0 }, { count: 42, match: "foo*" }, [42, ["bar", "baz", "qux"]], - { cursor: 42, values: ["bar", "baz", "qux"] } + { cursor: 42, values: ["bar", "baz", "qux"] }, ); }); @@ -1504,7 +1506,7 @@ describe("MemoryStorage Controller", function () { { _id: "key", member: "foo" }, {}, "3.14159", - 3.14159 + 3.14159, ); }); @@ -1523,7 +1525,7 @@ describe("MemoryStorage Controller", function () { }, {}, 1, - 1 + 1, ); }); }); diff --git a/test/controllers/realtime.test.js b/test/controllers/realtime.test.js index f8b08b4b9..8a2b7832a 100644 --- a/test/controllers/realtime.test.js +++ b/test/controllers/realtime.test.js @@ -1,3 +1,5 @@ +"use strict"; + const mockrequire = require("mock-require"); const sinon = require("sinon"); const should = require("should"); @@ -86,7 +88,7 @@ describe("Realtime Controller", () => { action: "count", body: { roomId: "roomId" }, }, - options + options, ); should(res).be.a.Number().and.be.equal(1234); @@ -113,7 +115,7 @@ describe("Realtime Controller", () => { body: { foo: "bar" }, _id: "doc-id", }, - options + options, ); should(published).be.a.Boolean().and.be.true(); @@ -148,7 +150,7 @@ describe("Realtime Controller", () => { }; return room; - } + }, ); const reRequire = mockrequire.reRequire("../../src/controllers/Realtime"); @@ -193,7 +195,7 @@ describe("Realtime Controller", () => { "collection", body, cb, - options + options, ); }) .then(() => { @@ -255,7 +257,7 @@ describe("Realtime Controller", () => { action: "unsubscribe", body: { roomId }, }, - options + options, ); }); }); @@ -285,7 +287,7 @@ describe("Realtime Controller", () => { should(kuzzle.realtime._subscriptions).be.empty(); should(kuzzle.realtime._subscriptionsOff).eql( - new Map([["foo", [roomA]]]) + new Map([["foo", [roomA]]]), ); for (const room of [roomA, roomB, roomC]) { should(room.removeListeners).be.calledOnce(); @@ -311,7 +313,7 @@ describe("Realtime Controller", () => { new Map([ ["foo", [roomA, roomB]], ["bar", [roomC]], - ]) + ]), ); for (const room of [roomA, roomB, roomC]) { diff --git a/test/controllers/security.test.js b/test/controllers/security.test.js index 548bd6cb4..393906944 100644 --- a/test/controllers/security.test.js +++ b/test/controllers/security.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { SecurityController } = require("../../src/controllers/Security"); const { Profile } = require("../../src/core/security/Profile"); const { Role } = require("../../src/core/security/Role"); @@ -81,7 +83,7 @@ describe("Security Controller", () => { const result = await kuzzle.security.searchApiKeys( "kuid", { match: {} }, - { from: 1, size: 2 } + { from: 1, size: 2 }, ); should(kuzzle.query).be.calledWith({ @@ -119,7 +121,7 @@ describe("Security Controller", () => { controller: "security", action: "createCredentials", }, - options + options, ); should(res).be.equal(result); @@ -149,7 +151,7 @@ describe("Security Controller", () => { action: "createFirstAdmin", reset: undefined, }, - options + options, ); should(user).be.an.instanceOf(User); @@ -180,7 +182,7 @@ describe("Security Controller", () => { action: "createFirstAdmin", reset: true, }, - { reset: true } + { reset: true }, ); should(user).be.an.instanceOf(User); @@ -216,7 +218,7 @@ describe("Security Controller", () => { controller: "security", action: "createOrReplaceProfile", }, - options + options, ); should(profile).be.an.instanceOf(Profile); @@ -252,7 +254,7 @@ describe("Security Controller", () => { action: "createOrReplaceRole", force: null, }, - options + options, ); should(role).be.an.instanceOf(Role); @@ -287,7 +289,7 @@ describe("Security Controller", () => { controller: "security", action: "createProfile", }, - options + options, ); should(profile).be.an.instanceOf(Profile); @@ -323,7 +325,7 @@ describe("Security Controller", () => { action: "createRole", force: null, }, - options + options, ); should(role).be.an.instanceOf(Role); @@ -363,7 +365,7 @@ describe("Security Controller", () => { controller: "security", action: "createUser", }, - options + options, ); should(user).be.an.instanceOf(User); @@ -407,7 +409,7 @@ describe("Security Controller", () => { controller: "security", action: "createRestrictedUser", }, - options + options, ); should(user).be.an.instanceOf(User); @@ -438,7 +440,7 @@ describe("Security Controller", () => { controller: "security", action: "deleteCredentials", }, - options + options, ); should(res).be.equal(result); @@ -460,7 +462,7 @@ describe("Security Controller", () => { controller: "security", action: "deleteProfile", }, - options + options, ); should(res).be.equal(result); @@ -482,7 +484,7 @@ describe("Security Controller", () => { controller: "security", action: "deleteRole", }, - options + options, ); should(res).be.equal(result); @@ -504,7 +506,7 @@ describe("Security Controller", () => { controller: "security", action: "deleteUser", }, - options + options, ); should(res).be.equal(result); @@ -526,7 +528,7 @@ describe("Security Controller", () => { controller: "security", action: "getAllCredentialFields", }, - options + options, ); should(res).be.equal(result); @@ -548,7 +550,7 @@ describe("Security Controller", () => { action: "getCredentialFields", strategy: "strategy", }, - options + options, ); should(res).be.equal(result); @@ -574,7 +576,7 @@ describe("Security Controller", () => { strategy: "strategy", _id: "kuid", }, - options + options, ); should(res).be.equal(result); @@ -600,7 +602,7 @@ describe("Security Controller", () => { strategy: "strategy", _id: "userId", }, - options + options, ); should(res).be.equal(result); @@ -629,7 +631,7 @@ describe("Security Controller", () => { controller: "security", action: "getProfile", }, - options + options, ); should(profile).be.an.instanceOf(Profile); @@ -652,7 +654,7 @@ describe("Security Controller", () => { controller: "security", action: "getProfileMapping", }, - options + options, ); should(res).be.equal(result); @@ -691,7 +693,7 @@ describe("Security Controller", () => { controller: "security", action: "getProfileRights", }, - options + options, ); should(res).be.eql(result.hits); @@ -718,7 +720,7 @@ describe("Security Controller", () => { controller: "security", action: "getRole", }, - options + options, ); should(role).be.an.instanceOf(Role); @@ -741,7 +743,7 @@ describe("Security Controller", () => { controller: "security", action: "getRoleMapping", }, - options + options, ); should(res).be.equal(result); @@ -768,7 +770,7 @@ describe("Security Controller", () => { controller: "security", action: "getUser", }, - options + options, ); should(user).be.an.instanceOf(User); @@ -795,7 +797,7 @@ describe("Security Controller", () => { controller: "security", action: "getUserMapping", }, - options + options, ); should(res).be.equal(result); @@ -832,7 +834,7 @@ describe("Security Controller", () => { controller: "security", action: "getUserRights", }, - options + options, ); should(res).be.eql(result.hits); @@ -854,7 +856,7 @@ describe("Security Controller", () => { controller: "security", action: "getUserStrategies", }, - options + options, ); should(res).be.eql(result.strategies); @@ -876,7 +878,7 @@ describe("Security Controller", () => { strategy: "strategy", _id: "kuid", }, - options + options, ); should(res).be.a.Boolean().and.be.True(); @@ -900,7 +902,7 @@ describe("Security Controller", () => { action: "mDeleteProfiles", body: { ids: ["profile1", "profile2"] }, }, - options + options, ); should(res).be.equal(result); @@ -924,7 +926,7 @@ describe("Security Controller", () => { action: "mDeleteRoles", body: { ids: ["role1", "role2"] }, }, - options + options, ); should(res).be.equal(result); @@ -948,7 +950,7 @@ describe("Security Controller", () => { action: "mDeleteUsers", body: { ids: ["user1", "user2"] }, }, - options + options, ); should(res).be.equal(result); @@ -986,7 +988,7 @@ describe("Security Controller", () => { action: "mGetProfiles", body: { ids: ["profile1", "profile2"] }, }, - options + options, ); should(res).be.an.Array(); @@ -1033,7 +1035,7 @@ describe("Security Controller", () => { action: "mGetRoles", body: { ids: ["role1", "role2"] }, }, - options + options, ); should(res).be.an.Array(); @@ -1095,7 +1097,7 @@ describe("Security Controller", () => { controller: "security", action: "replaceUser", }, - options + options, ); should(user).be.an.instanceOf(User); @@ -1145,7 +1147,7 @@ describe("Security Controller", () => { body: { roles: ["foo", "bar"] }, opt: "in", }, - options + options, ); should(res).be.an.instanceOf(ProfileSearchResult); @@ -1177,7 +1179,7 @@ describe("Security Controller", () => { return kuzzle.security .searchProfiles( { roles: ["foo", "bar"] }, - { from: 1, size: 2, scroll: "10s" } + { from: 1, size: 2, scroll: "10s" }, ) .then((res) => { should(kuzzle.query) @@ -1191,7 +1193,7 @@ describe("Security Controller", () => { size: 2, scroll: "10s", }, - { from: 1, scroll: "10s", size: 2 } + { from: 1, scroll: "10s", size: 2 }, ); should(res).be.an.instanceOf(ProfileSearchResult); @@ -1238,7 +1240,7 @@ describe("Security Controller", () => { body: { controllers: ["foo", "bar"] }, opt: "in", }, - options + options, ); should(res).be.an.instanceOf(RoleSearchResult); @@ -1280,7 +1282,7 @@ describe("Security Controller", () => { from: 1, size: 2, }, - { from: 1, size: 2 } + { from: 1, size: 2 }, ); should(res).be.an.instanceOf(RoleSearchResult); @@ -1333,7 +1335,7 @@ describe("Security Controller", () => { scroll: undefined, lang: undefined, }, - options + options, ); should(res).be.an.instanceOf(UserSearchResult); @@ -1380,7 +1382,7 @@ describe("Security Controller", () => { scroll: "10s", lang: undefined, }, - { from: 1, scroll: "10s", size: 2 } + { from: 1, scroll: "10s", size: 2 }, ); should(res).be.an.instanceOf(UserSearchResult); @@ -1412,7 +1414,7 @@ describe("Security Controller", () => { controller: "security", action: "updateCredentials", }, - options + options, ); should(res).be.equal(result); @@ -1445,7 +1447,7 @@ describe("Security Controller", () => { controller: "security", action: "updateProfile", }, - options + options, ); should(profile).be.an.instanceOf(Profile); @@ -1470,7 +1472,7 @@ describe("Security Controller", () => { controller: "security", action: "updateProfileMapping", }, - options + options, ); should(res.acknowledged).be.a.Boolean().and.be.True(); @@ -1504,7 +1506,7 @@ describe("Security Controller", () => { action: "updateRole", force: null, }, - options + options, ); should(role).be.an.instanceOf(Role); @@ -1529,7 +1531,7 @@ describe("Security Controller", () => { controller: "security", action: "updateRoleMapping", }, - options + options, ); should(res.acknowledged).be.a.Boolean().and.be.True(); @@ -1562,7 +1564,7 @@ describe("Security Controller", () => { controller: "security", action: "updateUser", }, - options + options, ); should(user).be.an.instanceOf(User); @@ -1591,7 +1593,7 @@ describe("Security Controller", () => { controller: "security", action: "updateUserMapping", }, - options + options, ); should(res.acknowledged).be.a.Boolean().and.be.True(); @@ -1616,7 +1618,7 @@ describe("Security Controller", () => { controller: "security", action: "validateCredentials", }, - options + options, ); should(res).be.a.Boolean().and.be.True(); diff --git a/test/controllers/server.test.js b/test/controllers/server.test.js index 0a713679b..4712575a7 100644 --- a/test/controllers/server.test.js +++ b/test/controllers/server.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { ServerController } = require("../../src/controllers/Server"), sinon = require("sinon"), should = require("should"); @@ -368,7 +370,7 @@ describe("Server Controller", () => { startTime: 1234, stopTime: null, }, - {} + {}, ); should(res).match(result); }) @@ -385,7 +387,7 @@ describe("Server Controller", () => { startTime: null, stopTime: 9876, }, - {} + {}, ); should(res).match(result); }) @@ -402,7 +404,7 @@ describe("Server Controller", () => { startTime: null, stopTime: null, }, - {} + {}, ); should(res).match(result); }); diff --git a/test/core/Jwt.test.js b/test/core/Jwt.test.js index 88d4da867..ba1f33991 100644 --- a/test/core/Jwt.test.js +++ b/test/core/Jwt.test.js @@ -1,3 +1,6 @@ +/* eslint-disable no-new */ +"use strict"; + const generateJwt = require("../mocks/generateJwt.mock"), rewire = require("rewire"), should = require("should"); @@ -39,7 +42,7 @@ describe("Jwt", () => { it("should return a boolean according to expiresAt", () => { const encodedJwt = generateJwt( "user-gordon", - Math.round(Date.now() / 1000) - 1000 + Math.round(Date.now() / 1000) - 1000, ); authenticationToken = new Jwt(encodedJwt); diff --git a/test/core/batchWriter/BatchBuffer.test.js b/test/core/batchWriter/BatchBuffer.test.js index 41dec8d2e..0c6d7f6cd 100644 --- a/test/core/batchWriter/BatchBuffer.test.js +++ b/test/core/batchWriter/BatchBuffer.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const { BatchBuffer } = require("../../../src/core/batchWriter/BatchBuffer"); diff --git a/test/core/batchWriter/BatchController.test.js b/test/core/batchWriter/BatchController.test.js index 8950afb74..229982a97 100644 --- a/test/core/batchWriter/BatchController.test.js +++ b/test/core/batchWriter/BatchController.test.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"); const should = require("should"); @@ -106,7 +108,7 @@ describe("BatchController", () => { should(prom1).be.resolvedWith("dana"); should(prom2).be.rejectedWith( - new Error('Cannot create document in "city":"galle" : some reason') + new Error('Cannot create document in "city":"galle" : some reason'), ); }); }); @@ -132,13 +134,13 @@ describe("BatchController", () => { "city", "galle", { name: "Dana" }, - "dana" + "dana", ); const prom2 = batchController.replace( "city", "galle", { name: "Aschen" }, - "aschen" + "aschen", ); promise.resolve({ @@ -155,7 +157,7 @@ describe("BatchController", () => { "galle", "aschen", { name: "Aschen" }, - undefined + undefined, ); }); @@ -164,13 +166,13 @@ describe("BatchController", () => { "city", "galle", { name: "Dana" }, - "dana" + "dana", ); const prom2 = batchController.replace( "city", "galle", { name: "Aschen" }, - "aschen" + "aschen", ); promise.resolve({ @@ -189,7 +191,7 @@ describe("BatchController", () => { should(prom1).be.resolvedWith("dana"); should(prom2).be.rejectedWith( - new Error('Cannot replace document in "city":"galle" : some reason') + new Error('Cannot replace document in "city":"galle" : some reason'), ); }); }); @@ -215,13 +217,13 @@ describe("BatchController", () => { "city", "galle", { name: "Dana" }, - "dana" + "dana", ); const prom2 = batchController.createOrReplace( "city", "galle", { name: "Aschen" }, - "aschen" + "aschen", ); promise.resolve({ @@ -238,7 +240,7 @@ describe("BatchController", () => { "galle", "aschen", { name: "Aschen" }, - undefined + undefined, ); }); @@ -247,13 +249,13 @@ describe("BatchController", () => { "city", "galle", { name: "Dana" }, - "dana" + "dana", ); const prom2 = batchController.createOrReplace( "city", "galle", { name: "Aschen" }, - "aschen" + "aschen", ); promise.resolve({ @@ -273,8 +275,8 @@ describe("BatchController", () => { should(prom1).be.resolvedWith("dana"); should(prom2).be.rejectedWith( new Error( - 'Cannot create or replace document in "city":"galle" : some reason' - ) + 'Cannot create or replace document in "city":"galle" : some reason', + ), ); }); }); @@ -300,13 +302,13 @@ describe("BatchController", () => { "city", "galle", { name: "Dana" }, - "dana" + "dana", ); const prom2 = batchController.update( "city", "galle", { name: "Aschen" }, - "aschen" + "aschen", ); promise.resolve({ @@ -323,7 +325,7 @@ describe("BatchController", () => { "galle", "aschen", { name: "Aschen" }, - undefined + undefined, ); }); @@ -332,13 +334,13 @@ describe("BatchController", () => { "city", "galle", { name: "Dana" }, - "dana" + "dana", ); const prom2 = batchController.update( "city", "galle", { name: "Aschen" }, - "aschen" + "aschen", ); promise.resolve({ @@ -357,7 +359,7 @@ describe("BatchController", () => { should(prom1).be.resolvedWith("dana"); should(prom2).be.rejectedWith( - new Error('Cannot update in "city":"galle" : some reason') + new Error('Cannot update in "city":"galle" : some reason'), ); }); }); @@ -417,7 +419,7 @@ describe("BatchController", () => { new KuzzleError({ message: 'Document "city":"galle":"aschen" not found', id: "services.storage.not_found", - }) + }), ); }); }); @@ -507,7 +509,7 @@ describe("BatchController", () => { should(prom1).be.resolvedWith("dana"); should(prom2).be.rejectedWith( - new Error('Cannot delete document "city":"galle":aschen": some reason') + new Error('Cannot delete document "city":"galle":aschen": some reason'), ); }); }); diff --git a/test/core/batchWriter/BatchWriter.test.js b/test/core/batchWriter/BatchWriter.test.js index 4a0df9d26..0bb906243 100644 --- a/test/core/batchWriter/BatchWriter.test.js +++ b/test/core/batchWriter/BatchWriter.test.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"); const should = require("should"); @@ -115,19 +117,19 @@ describe("BatchWriter", () => { "city", "tbilisi", { name: "Dana" }, - "dana" + "dana", ); writer.buffers.create.add( "city", "tbilisi", { name: "Aschen" }, - "aschen" + "aschen", ); const colombo = writer.buffers.create.add( "city", "colombo", { name: "Ugo" }, - "ugo" + "ugo", ); await writer.sendWriteBuffer("mCreate", writer.buffers.create); @@ -150,7 +152,7 @@ describe("BatchWriter", () => { "city", "tbilisi", { name: "Dana" }, - "dana" + "dana", ); await writer.sendWriteBuffer("mCreate", writer.buffers.create); @@ -173,14 +175,14 @@ describe("BatchWriter", () => { "city", "tbilisi", undefined, - "dana" + "dana", ); writer.buffers.get.add("city", "tbilisi", undefined, "aschen"); const colombo = writer.buffers.get.add( "city", "colombo", undefined, - "ugo" + "ugo", ); await writer.sendGetBuffer(writer.buffers.get); @@ -198,7 +200,7 @@ describe("BatchWriter", () => { "city", "tbilisi", undefined, - "dana" + "dana", ); await writer.sendGetBuffer(writer.buffers.get); @@ -225,14 +227,14 @@ describe("BatchWriter", () => { "city", "tbilisi", undefined, - "dana" + "dana", ); writer.buffers.exists.add("city", "tbilisi", undefined, "aschen"); const colombo = writer.buffers.exists.add( "city", "colombo", undefined, - "ugo" + "ugo", ); await writer.sendExistsBuffer(writer.buffers.exists); @@ -249,7 +251,7 @@ describe("BatchWriter", () => { "city", "tbilisi", undefined, - "dana" + "dana", ); writer.buffers.exists.add("city", "tbilisi", undefined, "aschen"); writer.sdk.document.mGet.onCall(0).resolves({ @@ -268,7 +270,7 @@ describe("BatchWriter", () => { "city", "tbilisi", undefined, - "dana" + "dana", ); await writer.sendExistsBuffer(writer.buffers.exists); @@ -290,14 +292,14 @@ describe("BatchWriter", () => { "city", "tbilisi", undefined, - "dana" + "dana", ); writer.buffers.delete.add("city", "tbilisi", undefined, "aschen"); const colombo = writer.buffers.delete.add( "city", "colombo", undefined, - "ugo" + "ugo", ); await writer.sendDeleteBuffer(writer.buffers.delete); @@ -315,7 +317,7 @@ describe("BatchWriter", () => { "city", "tbilisi", undefined, - "dana" + "dana", ); await writer.sendDeleteBuffer(writer.buffers.delete); diff --git a/test/core/observer.test.js b/test/core/observer.test.js index 4a25c7dcb..cccf29a62 100644 --- a/test/core/observer.test.js +++ b/test/core/observer.test.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"); const should = require("should"); @@ -204,7 +206,7 @@ describe("Observer", () => { "index", "collection", "id", - "opts" + "opts", ); should(observer.observe).be.calledWith("index", "collection", doc1); should(rtDoc).be.eql(rtDoc1); @@ -225,14 +227,14 @@ describe("Observer", () => { "index", "collection", ["id", "id2"], - "opts" + "opts", ); should(sdk.document.mGet).be.calledWith( "index", "collection", ["id", "id2"], - "opts" + "opts", ); should(observer.addDocument) .be.calledTwice() @@ -260,14 +262,14 @@ describe("Observer", () => { "index", "collection", query, - options + options, ); should(sdk.document._search).be.calledWith( "index", "collection", query, - options + options, ); // Called by RealtimeDocumentSearchResult should(observer.addDocument) diff --git a/test/core/room.test.js b/test/core/room.test.js index 2eadd73ba..ac0b3713b 100644 --- a/test/core/room.test.js +++ b/test/core/room.test.js @@ -1,9 +1,13 @@ +"use strict"; + const sinon = require("sinon"); const should = require("should"); const Room = require("../../src/core/Room"); const { KuzzleEventEmitter } = require("../../src/core/KuzzleEventEmitter"); +console.log(Room); + describe("Room", () => { const eventEmitter = new KuzzleEventEmitter(); const options = { opt: "in" }; @@ -37,13 +41,13 @@ describe("Room", () => { controller.kuzzle.autoResubscribe = "default"; - const room = new Room( + const room = new Room.default( controller, "index", "collection", body, cb, - options + options, ); should(room.controller).be.equal(controller); @@ -81,7 +85,14 @@ describe("Room", () => { const body = { foo: "bar" }; const cb = sinon.stub(); - const room = new Room(controller, "index", "collection", body, cb, opts); + const room = new Room.default( + controller, + "index", + "collection", + body, + cb, + opts, + ); should(room.request.scope).be.equal("scope"); should(room.request.state).be.equal("state"); @@ -95,15 +106,36 @@ describe("Room", () => { controller.kuzzle.autoResubscribe = "default"; - const room1 = new Room(controller, "index", "collection", body, cb, { - autoResubscribe: true, - }); - const room2 = new Room(controller, "index", "collection", body, cb, { - autoResubscribe: false, - }); - const room3 = new Room(controller, "index", "collection", body, cb, { - autoResubscribe: "foobar", - }); + const room1 = new Room.default( + controller, + "index", + "collection", + body, + cb, + { + autoResubscribe: true, + }, + ); + const room2 = new Room.default( + controller, + "index", + "collection", + body, + cb, + { + autoResubscribe: false, + }, + ); + const room3 = new Room.default( + controller, + "index", + "collection", + body, + cb, + { + autoResubscribe: "foobar", + }, + ); should(room1.autoResubscribe).be.a.Boolean().and.be.True(); should(room2.autoResubscribe).be.a.Boolean().and.be.False(); @@ -114,15 +146,36 @@ describe("Room", () => { const body = { foo: "bar" }; const cb = sinon.stub(); - const room1 = new Room(controller, "index", "collection", body, cb, { - subscribeToSelf: true, - }); - const room2 = new Room(controller, "index", "collection", body, cb, { - subscribeToSelf: false, - }); - const room3 = new Room(controller, "index", "collection", body, cb, { - subscribeToSelf: "foobar", - }); + const room1 = new Room.default( + controller, + "index", + "collection", + body, + cb, + { + subscribeToSelf: true, + }, + ); + const room2 = new Room.default( + controller, + "index", + "collection", + body, + cb, + { + subscribeToSelf: false, + }, + ); + const room3 = new Room.default( + controller, + "index", + "collection", + body, + cb, + { + subscribeToSelf: "foobar", + }, + ); should(room1.subscribeToSelf).be.a.Boolean().and.be.True(); should(room2.subscribeToSelf).be.a.Boolean().and.be.False(); @@ -152,7 +205,14 @@ describe("Room", () => { }; const body = { foo: "bar" }; const cb = sinon.stub(); - const room = new Room(controller, "index", "collection", body, cb, opts); + const room = new Room.default( + controller, + "index", + "collection", + body, + cb, + opts, + ); return room.subscribe().then((res) => { should(controller.kuzzle.query) @@ -169,7 +229,7 @@ describe("Room", () => { users: "all", volatile: { bar: "foo" }, }, - opts + opts, ); should(res).be.equal(response); @@ -186,7 +246,14 @@ describe("Room", () => { }; const body = { foo: "bar" }; const cb = sinon.stub(); - const room = new Room(controller, "index", "collection", body, cb, opts); + const room = new Room.default( + controller, + "index", + "collection", + body, + cb, + opts, + ); return room.subscribe().then(() => { should(room.id).be.equal("my-room-id"); @@ -204,7 +271,14 @@ describe("Room", () => { }; const body = { foo: "bar" }; const cb = sinon.stub(); - const room = new Room(controller, "index", "collection", body, cb, opts); + const room = new Room.default( + controller, + "index", + "collection", + body, + cb, + opts, + ); room._channelListener = sinon.stub(); @@ -223,13 +297,13 @@ describe("Room", () => { let room; beforeEach(() => { - room = new Room( + room = new Room.default( controller, "index", "collection", { foo: "bar" }, sinon.stub(), - options + options, ); room.id = "my-room-id"; room.channel = "subscription-channel"; @@ -239,7 +313,7 @@ describe("Room", () => { room._channelListener = sinon.stub(); controller.kuzzle.protocol.on( "subscription-channel", - room._channelListener + room._channelListener, ); should(room._channelListener).not.be.called(); @@ -259,13 +333,13 @@ describe("Room", () => { beforeEach(() => { cb = sinon.stub(); - room = new Room( + room = new Room.default( controller, "index", "collection", { foo: "bar" }, cb, - options + options, ); room.id = "my-room-id"; room.channel = "subscription-channel"; diff --git a/test/core/searchResult/document.test.js b/test/core/searchResult/document.test.js index e154ecc3a..f52707fc8 100644 --- a/test/core/searchResult/document.test.js +++ b/test/core/searchResult/document.test.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"); const should = require("should"); @@ -90,7 +92,7 @@ describe("DocumentSearchResult", () => { searchResult = new DocumentSearchResult(kuzzle, request, options, result); return should(searchResult.next()).be.rejectedWith( - "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params" + "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params", ); }); @@ -121,7 +123,7 @@ describe("DocumentSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); @@ -150,7 +152,7 @@ describe("DocumentSearchResult", () => { should(nextSearchResult._result).be.equal(nextResponse); should(nextSearchResult.hits).be.equal(nextResponse.hits); should(nextSearchResult.aggregations).equal( - nextResponse.aggregations + nextResponse.aggregations, ); }); }); @@ -200,7 +202,7 @@ describe("DocumentSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); @@ -225,7 +227,7 @@ describe("DocumentSearchResult", () => { action: "search", size: 2, }, - options + options, ); should(nextSearchResult).not.be.equal(searchResult); should(nextSearchResult).be.instanceOf(DocumentSearchResult); @@ -241,7 +243,7 @@ describe("DocumentSearchResult", () => { should(nextSearchResult._result).be.equal(nextResponse); should(nextSearchResult.hits).be.equal(nextResponse.hits); should(nextSearchResult.aggregations).equal( - nextResponse.aggregations + nextResponse.aggregations, ); }); }); @@ -252,7 +254,7 @@ describe("DocumentSearchResult", () => { kuzzle, request, options, - result + result, ); return should(searchResult.next()).be.rejected(); @@ -264,7 +266,7 @@ describe("DocumentSearchResult", () => { kuzzle, request, options, - result + result, ); return should(searchResult.next()).be.rejected(); @@ -313,7 +315,7 @@ describe("DocumentSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); @@ -355,7 +357,7 @@ describe("DocumentSearchResult", () => { should(nextSearchResult._result).be.equal(nextResponse); should(nextSearchResult.hits).be.equal(nextResponse.hits); should(nextSearchResult.aggregations).equal( - nextResponse.aggregations + nextResponse.aggregations, ); }); }); diff --git a/test/core/searchResult/profile.test.js b/test/core/searchResult/profile.test.js index b40b80d5d..a3362d352 100644 --- a/test/core/searchResult/profile.test.js +++ b/test/core/searchResult/profile.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { ProfileSearchResult, } = require("../../../src/core/searchResult/Profile"), @@ -114,7 +116,7 @@ describe("ProfileSearchResult", () => { searchResult = new ProfileSearchResult(kuzzle, request, options, result); return should(searchResult.next()).be.rejectedWith( - "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params" + "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params", ); }); @@ -155,7 +157,7 @@ describe("ProfileSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); @@ -243,7 +245,7 @@ describe("ProfileSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); @@ -265,7 +267,7 @@ describe("ProfileSearchResult", () => { action: "searchProfiles", size: 2, }, - options + options, ); should(nextSearchResult).not.be.equal(searchResult); should(nextSearchResult).be.instanceOf(ProfileSearchResult); @@ -333,7 +335,7 @@ describe("ProfileSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); diff --git a/test/core/searchResult/role.test.js b/test/core/searchResult/role.test.js index 75f281320..1ac0c27ae 100644 --- a/test/core/searchResult/role.test.js +++ b/test/core/searchResult/role.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { RoleSearchResult } = require("../../../src/core/searchResult/Role"), { Role } = require("../../../src/core/security/Role"), sinon = require("sinon"), @@ -100,7 +102,7 @@ describe("RoleSearchResult", () => { searchResult = new RoleSearchResult(kuzzle, request, options, result); return should(searchResult.next()).be.rejectedWith( - "only from/size params are allowed for role search" + "only from/size params are allowed for role search", ); }); @@ -109,7 +111,7 @@ describe("RoleSearchResult", () => { searchResult = new RoleSearchResult(kuzzle, request, options, result); return should(searchResult.next()).be.rejectedWith( - "only from/size params are allowed for role search" + "only from/size params are allowed for role search", ); }); @@ -117,7 +119,7 @@ describe("RoleSearchResult", () => { searchResult = new RoleSearchResult(kuzzle, request, options, result); return should(searchResult.next()).be.rejectedWith( - "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params" + "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params", ); }); diff --git a/test/core/searchResult/specifications.test.js b/test/core/searchResult/specifications.test.js index df1bdb639..7b3e864da 100644 --- a/test/core/searchResult/specifications.test.js +++ b/test/core/searchResult/specifications.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { SpecificationsSearchResult, } = require("../../../src/core/searchResult/Specifications"), @@ -43,7 +45,7 @@ describe("SpecificationsSearchResult", () => { kuzzle, request, options, - result + result, ); should(searchResult._request).be.equal(request); @@ -83,7 +85,7 @@ describe("SpecificationsSearchResult", () => { kuzzle, request, options, - result + result, ); return searchResult.next().then((res) => { @@ -114,11 +116,11 @@ describe("SpecificationsSearchResult", () => { kuzzle, request, options, - result + result, ); return should(searchResult.next()).be.rejectedWith( - "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params" + "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params", ); }); @@ -163,7 +165,7 @@ describe("SpecificationsSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); @@ -233,7 +235,7 @@ describe("SpecificationsSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); @@ -254,7 +256,7 @@ describe("SpecificationsSearchResult", () => { action: "searchSpecifications", size: 2, }, - options + options, ); should(nextSearchResult).not.be.equal(searchResult); should(nextSearchResult).be.instanceOf(SpecificationsSearchResult); @@ -312,7 +314,7 @@ describe("SpecificationsSearchResult", () => { kuzzle, request, options, - result + result, ); kuzzle.query.resolves({ result: nextResponse }); diff --git a/test/core/searchResult/user.test.js b/test/core/searchResult/user.test.js index 047fe81c0..8dd249141 100644 --- a/test/core/searchResult/user.test.js +++ b/test/core/searchResult/user.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { UserSearchResult } = require("../../../src/core/searchResult/User"), { User } = require("../../../src/core/security/User"), sinon = require("sinon"), @@ -120,7 +122,7 @@ describe("UserSearchResult", () => { searchResult = new UserSearchResult(kuzzle, request, options, result); return should(searchResult.next()).be.rejectedWith( - "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params" + "Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params", ); }); @@ -288,7 +290,7 @@ describe("UserSearchResult", () => { action: "searchUsers", size: 2, }, - options + options, ); should(nextSearchResult).not.be.equal(searchResult); should(nextSearchResult).be.instanceOf(UserSearchResult); diff --git a/test/core/security/profile.test.js b/test/core/security/profile.test.js index 2fd2ae7f1..5fdfe22e2 100644 --- a/test/core/security/profile.test.js +++ b/test/core/security/profile.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { Profile } = require("../../../src/core/security/Profile"); const sinon = require("sinon"); const should = require("should"); diff --git a/test/core/security/user.test.js b/test/core/security/user.test.js index 78452a750..8fa3194a4 100644 --- a/test/core/security/user.test.js +++ b/test/core/security/user.test.js @@ -1,3 +1,5 @@ +"use strict"; + const { User } = require("../../../src/core/security/User"), sinon = require("sinon"), should = require("should"); diff --git a/test/kuzzle-sdk-test.ts b/test/kuzzle-sdk-test.ts deleted file mode 100644 index e662fe119..000000000 --- a/test/kuzzle-sdk-test.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** - * This file only purpose is to check that type remains compliant with the spec for user usage. - * This is not meant to be executed. It is only a compilation check along the test battery. - * - * If you see red warning, it's likely that you broke the code somewhere and introduced a breaking change. - * - * TODO: This can be safely removed when test will be migrated to TypeScript. - * TODO: Due to how the stack actually build and test, this file is not part of the CI, check it on your own before pushing. - * - * Inspired by TS standard from DefinitelyTyped - * @see https://github.com/DefinitelyTyped/DefinitelyTyped#my-package-teststs - */ -import { Kuzzle } from "../src/Kuzzle"; -import WebSocket from "../src/protocols/WebSocket"; -const kuzzle = new Kuzzle(new WebSocket("toto")); - -// Events -kuzzle.on("connected", () => {}); -kuzzle.on("callbackError", ({ error, notification }) => {}); -kuzzle.on( - "discarded", - ({ - action, - controller, - _id, - body, - collection, - index, - jwt, - requestId, - volatile, - }) => {} -); -kuzzle.on("disconnected", ({ origin }) => {}); -kuzzle.on("loginAttempt", ({ success, error }) => {}); - -// Methods -kuzzle.connect().then(() => {}); -kuzzle.disconnect(); -kuzzle.isAuthenticated().then(() => {}); -kuzzle.query({ controller: "auth", action: "login" }).then(() => {}); - -kuzzle.authenticator = () => Promise.resolve(); -kuzzle.authenticator().then(() => {}); -kuzzle.authenticate().then(() => {}); -kuzzle - .login("local", { username: "ScreamZ", password: "some_password" }) - .then(() => {}); -kuzzle.logout().then(() => {}); diff --git a/test/kuzzle/authenticator.test.js b/test/kuzzle/authenticator.test.js index 8b68eaa7c..d4c6ef27f 100644 --- a/test/kuzzle/authenticator.test.js +++ b/test/kuzzle/authenticator.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const sinon = require("sinon"); const ProtocolMock = require("../mocks/protocol.mock"); diff --git a/test/kuzzle/connect.test.js b/test/kuzzle/connect.test.js index 4e9d773e4..f5568022d 100644 --- a/test/kuzzle/connect.test.js +++ b/test/kuzzle/connect.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const sinon = require("sinon"); const ProtocolMock = require("../mocks/protocol.mock"); diff --git a/test/kuzzle/constructor.test.js b/test/kuzzle/constructor.test.js index 63829758b..6341cfc80 100644 --- a/test/kuzzle/constructor.test.js +++ b/test/kuzzle/constructor.test.js @@ -1,3 +1,7 @@ +/* eslint-disable no-undef */ +/* eslint-disable no-new */ +"use strict"; + const should = require("should"), sinon = require("sinon"), { Kuzzle } = require("../../src/Kuzzle"), diff --git a/test/kuzzle/eventEmitter.test.js b/test/kuzzle/eventEmitter.test.js index 96d28efb3..46611af6e 100644 --- a/test/kuzzle/eventEmitter.test.js +++ b/test/kuzzle/eventEmitter.test.js @@ -1,3 +1,6 @@ +/* eslint-disable no-invalid-this */ +"use strict"; + const should = require("should"), sinon = require("sinon"), { KuzzleEventEmitter } = require("../../src/core/KuzzleEventEmitter"); @@ -28,13 +31,13 @@ describe("Event emitter", () => { describe("#addListener", () => { it("should properly add new listeners to events", () => { should(kuzzleEventEmitter.on("foo", listener1)).be.eql( - kuzzleEventEmitter + kuzzleEventEmitter, ); should(kuzzleEventEmitter.on("foo", listener2)).be.eql( - kuzzleEventEmitter + kuzzleEventEmitter, ); should(kuzzleEventEmitter.on("bar", listener3)).be.eql( - kuzzleEventEmitter + kuzzleEventEmitter, ); should(kuzzleEventEmitter.listeners("foo")) .eql([listener1, listener2]) @@ -254,13 +257,13 @@ describe("Event emitter", () => { describe("#eventNames", () => { it("should return the list of registered event names", () => { should(kuzzleEventEmitter.on("foo", listener1)).be.eql( - kuzzleEventEmitter + kuzzleEventEmitter, ); should(kuzzleEventEmitter.once("bar", listener2)).be.eql( - kuzzleEventEmitter + kuzzleEventEmitter, ); should(kuzzleEventEmitter.on("baz", listener3)).be.eql( - kuzzleEventEmitter + kuzzleEventEmitter, ); should(kuzzleEventEmitter.eventNames()).be.eql(["foo", "bar", "baz"]); diff --git a/test/kuzzle/getters.test.js b/test/kuzzle/getters.test.js index bb61ba980..03dfbb341 100644 --- a/test/kuzzle/getters.test.js +++ b/test/kuzzle/getters.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"), ProtocolMock = require("../mocks/protocol.mock"), generateJwt = require("../mocks/generateJwt.mock"), diff --git a/test/kuzzle/listenersManagement.test.js b/test/kuzzle/listenersManagement.test.js index 35c071d26..234d9cb05 100644 --- a/test/kuzzle/listenersManagement.test.js +++ b/test/kuzzle/listenersManagement.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const sinon = require("sinon"); @@ -44,7 +46,7 @@ describe("Kuzzle listeners management", () => { should(function () { kuzzle.addListener("foo", sinon.stub()); }).throw( - "[foo] is not a known event. Known events: " + knownEvents.join(", ") + "[foo] is not a known event. Known events: " + knownEvents.join(", "), ); let i; @@ -56,7 +58,7 @@ describe("Kuzzle listeners management", () => { for (i = 0; i < knownEvents.length; i++) { should(KuzzleEventEmitter.prototype.addListener.getCall(i)).be.calledWith( - knownEvents[i] + knownEvents[i], ); } }); @@ -72,11 +74,11 @@ describe("Kuzzle listeners management", () => { should(KuzzleEventEmitter.prototype.emit).be.calledTwice(); should(KuzzleEventEmitter.prototype.emit.firstCall).be.calledWith( "connected", - "foo" + "foo", ); should(KuzzleEventEmitter.prototype.emit.secondCall).be.calledWith( "offlineQueuePush", - "bar" + "bar", ); KuzzleEventEmitter.prototype.emit.reset(); @@ -88,7 +90,7 @@ describe("Kuzzle listeners management", () => { should(KuzzleEventEmitter.prototype.emit).be.calledOnce(); should(KuzzleEventEmitter.prototype.emit).be.calledWith( "connected", - "bar" + "bar", ); done(); }, 0); diff --git a/test/kuzzle/protocol.test.js b/test/kuzzle/protocol.test.js index 8f5f0729b..7d2c70581 100644 --- a/test/kuzzle/protocol.test.js +++ b/test/kuzzle/protocol.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const sinon = require("sinon"); const ProtocolMock = require("../mocks/protocol.mock"); diff --git a/test/kuzzle/proxy.test.js b/test/kuzzle/proxy.test.js index 3796f5d92..d093a3173 100644 --- a/test/kuzzle/proxy.test.js +++ b/test/kuzzle/proxy.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"), { Kuzzle } = require("../../src/Kuzzle"), ProtocolMock = require("../mocks/protocol.mock"); @@ -10,7 +12,7 @@ describe("Kuzzle proxy", () => { should(() => { kuzzle.jvt = "foobar"; }).throwError( - "Cannot set a value to the undefined 'jvt' property in 'kuzzle'" + "Cannot set a value to the undefined 'jvt' property in 'kuzzle'", ); }); }); diff --git a/test/kuzzle/query.test.js b/test/kuzzle/query.test.js index ebda3e03d..5efbfb0d9 100644 --- a/test/kuzzle/query.test.js +++ b/test/kuzzle/query.test.js @@ -1,4 +1,4 @@ -/* eslint no-undef: 0 */ +"use strict"; const should = require("should"), sinon = require("sinon"), @@ -6,6 +6,8 @@ const should = require("should"), generateJwt = require("../mocks/generateJwt.mock"), { Kuzzle } = require("../../src/Kuzzle"); +let kuzzle; + describe("Kuzzle query management", () => { describe("#_timeoutRequest", () => { beforeEach(() => { @@ -19,7 +21,7 @@ describe("Kuzzle query management", () => { should(kuzzle.protocol.query).be.calledOnce(); should(kuzzle.protocol.query).be.calledWith( { foo: "bar" }, - { bar: "baz" } + { bar: "baz" }, ); }); @@ -35,7 +37,7 @@ describe("Kuzzle query management", () => { const response = kuzzle._timeoutRequest( 100, { foo: "bar" }, - { bar: "baz" } + { bar: "baz" }, ); await should(response).be.resolvedWith("foo"); }); @@ -52,7 +54,7 @@ describe("Kuzzle query management", () => { const promise = kuzzle._timeoutRequest( 10, { foo: "bar" }, - { bar: "baz" } + { bar: "baz" }, ); await should(promise).be.rejected(); }); @@ -70,8 +72,6 @@ describe("Kuzzle query management", () => { result: { foo: "bar" }, }; - let kuzzle; - beforeEach(() => { const protocol = new ProtocolMock("somewhere"); @@ -95,10 +95,10 @@ describe("Kuzzle query management", () => { sdkName: kuzzle.sdkName, }, requestId: sinon.match( - /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i + /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i, ), }, - {} + {}, ); }); @@ -118,13 +118,13 @@ describe("Kuzzle query management", () => { sdkName: kuzzle.sdkName, }, requestId: sinon.match( - /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i + /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i, ), // propagated arguments foo: "bar", baz: "yolo", }, - { foo: "bar", baz: "yolo" } + { foo: "bar", baz: "yolo" }, ); }); @@ -150,10 +150,10 @@ describe("Kuzzle query management", () => { sdkName: kuzzle.sdkName, }, requestId: sinon.match( - /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i + /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i, ), }, - {} + {}, ); }); @@ -161,11 +161,11 @@ describe("Kuzzle query management", () => { kuzzle.query({ controller: "foo", action: "bar" }); should(kuzzle._timeoutRequest).be.calledWithMatch( kuzzle._requestTimeout, - { collection: undefined } + { collection: undefined }, ); should(kuzzle._timeoutRequest).be.calledWithMatch( kuzzle._requestTimeout, - { index: undefined } + { index: undefined }, ); }); @@ -185,7 +185,7 @@ describe("Kuzzle query management", () => { should(function () { kuzzle.query({ volatile: ["foo", "bar"] }); }).throw( - 'Kuzzle.query: Invalid volatile argument received: ["foo","bar"]' + 'Kuzzle.query: Invalid volatile argument received: ["foo","bar"]', ); }); @@ -209,7 +209,7 @@ describe("Kuzzle query management", () => { should(kuzzle._timeoutRequest).be.calledOnce(); should(kuzzle._timeoutRequest).be.calledWithMatch( kuzzle._requestTimeout, - { volatile: kuzzle.volatile } + { volatile: kuzzle.volatile }, ); }); @@ -225,7 +225,7 @@ describe("Kuzzle query management", () => { should(kuzzle._timeoutRequest).be.calledOnce(); should(kuzzle._timeoutRequest).be.calledWithMatch( kuzzle._requestTimeout, - { volatile: { foo: "foo", baz: volatile.baz } } + { volatile: { foo: "foo", baz: volatile.baz } }, ); }); @@ -247,7 +247,7 @@ describe("Kuzzle query management", () => { sdkInstanceId: "req-sdk-instance-id", sdkName: "req-sdk-version", }, - } + }, ); }); @@ -255,13 +255,13 @@ describe("Kuzzle query management", () => { kuzzle.query({ refresh: "wait_for" }); should(kuzzle._timeoutRequest).be.calledWithMatch( kuzzle._requestTimeout, - { refresh: "wait_for" } + { refresh: "wait_for" }, ); kuzzle.query({ refresh: false }); should(kuzzle._timeoutRequest).be.calledWithMatch( kuzzle._requestTimeout, - { refresh: false } + { refresh: false }, ); }); @@ -270,7 +270,7 @@ describe("Kuzzle query management", () => { should(kuzzle._timeoutRequest).be.calledOnce(); should(kuzzle._timeoutRequest).be.calledWithMatch( kuzzle._requestTimeout, - { requestId: "foobar" } + { requestId: "foobar" }, ); }); diff --git a/test/kuzzle/queue.test.js b/test/kuzzle/queue.test.js index a1e587d5f..0077b19ac 100644 --- a/test/kuzzle/queue.test.js +++ b/test/kuzzle/queue.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const sinon = require("sinon"); @@ -98,7 +100,7 @@ describe("Kuzzle queue", () => { setTimeout(() => { should(kuzzle._timeoutRequest).be.calledTwice(); should(kuzzle._timeoutRequest.getCall(0).args[1]).be.eql( - query2.request + query2.request, ); should(kuzzle._timeoutRequest.getCall(1).args[1]).be.eql(query.request); done(); @@ -127,7 +129,7 @@ describe("Kuzzle queue", () => { setTimeout(() => { should(kuzzle._timeoutRequest).be.calledTwice(); should(kuzzle._timeoutRequest.getCall(0).args[1]).be.eql( - query2.request + query2.request, ); should(kuzzle._timeoutRequest.getCall(1).args[1]).be.eql(query.request); done(); @@ -161,7 +163,7 @@ describe("Kuzzle queue", () => { kuzzle.playQueue(); await should(deferred).rejectedWith( - "Query aborted: queued time exceeded the queueTTL option value" + "Query aborted: queued time exceeded the queueTTL option value", ); should(rejectedRequest).calledOnce().calledWith(query.request); }); @@ -198,7 +200,7 @@ describe("Kuzzle queue", () => { kuzzle.playQueue(); await should(deferred).rejectedWith( - "Query aborted: too many queued requests (see the queueMaxSize option)" + "Query aborted: too many queued requests (see the queueMaxSize option)", ); should(rejectedRequest).calledTwice().calledWith(query.request); }); diff --git a/test/kuzzle/setters.test.js b/test/kuzzle/setters.test.js index f5ec7debf..8cfee32b0 100644 --- a/test/kuzzle/setters.test.js +++ b/test/kuzzle/setters.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"), sinon = require("sinon"), ProtocolMock = require("../mocks/protocol.mock"), diff --git a/test/kuzzle/useController.test.js b/test/kuzzle/useController.test.js index af895b233..d5f11eb5f 100644 --- a/test/kuzzle/useController.test.js +++ b/test/kuzzle/useController.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"), sinon = require("sinon"), ProtocolMock = require("../mocks/protocol.mock"), @@ -66,7 +68,7 @@ describe("Kuzzle custom controllers management", () => { return kuzzle.custom.sayHello("Wake up, and smell the ashes").then(() => { should(kuzzle.protocol.query).be.calledOnce(); should(kuzzle.protocol.query).be.calledWith( - sinon.match.has("controller", "custom-plugin/custom") + sinon.match.has("controller", "custom-plugin/custom"), ); }); }); @@ -81,7 +83,7 @@ describe("Kuzzle custom controllers management", () => { should(() => { kuzzle.useController(WrongConstructorController, "unamed"); }).throw( - "You must pass the Kuzzle SDK instance to the parent constructor." + "You must pass the Kuzzle SDK instance to the parent constructor.", ); }); @@ -97,7 +99,7 @@ describe("Kuzzle custom controllers management", () => { should(() => { kuzzle.useController(CustomController, "custom"); }).throw( - "There is already a controller with the accessor 'custom'. Please use another one." + "There is already a controller with the accessor 'custom'. Please use another one.", ); }); }); diff --git a/test/mocks/generateJwt.mock.js b/test/mocks/generateJwt.mock.js index 33d725fb1..516bd7f2f 100644 --- a/test/mocks/generateJwt.mock.js +++ b/test/mocks/generateJwt.mock.js @@ -1,3 +1,5 @@ +"use strict"; + function generateJwt(userId = "test-user", expiresAt = null) { const header = { alg: "HS256", typ: "JWT" }, payload = { diff --git a/test/mocks/protocol.mock.js b/test/mocks/protocol.mock.js index 4b5d877a9..641ef8e9b 100644 --- a/test/mocks/protocol.mock.js +++ b/test/mocks/protocol.mock.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"), { KuzzleEventEmitter } = require("../../src/core/KuzzleEventEmitter"), DisconnectionOrigin = require("../../src/protocols/DisconnectionOrigin"); diff --git a/test/mocks/window.mock.js b/test/mocks/window.mock.js index 0aef3f625..07e91affe 100644 --- a/test/mocks/window.mock.js +++ b/test/mocks/window.mock.js @@ -1,3 +1,5 @@ +"use strict"; + const sinon = require("sinon"), { KuzzleEventEmitter } = require("../../src/core/KuzzleEventEmitter"); @@ -8,7 +10,7 @@ class WindowMock extends KuzzleEventEmitter { if (typeof window !== "undefined") { throw new Error( - 'Cannot mock add a global "window" object: already defined' + 'Cannot mock add a global "window" object: already defined', ); } diff --git a/test/protocol/Base.test.js b/test/protocol/Base.test.js index fa3bc5fed..dec8f4142 100644 --- a/test/protocol/Base.test.js +++ b/test/protocol/Base.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const sinon = require("sinon"); @@ -96,7 +98,7 @@ describe("Common Protocol", () => { }) .catch((error) => { should(error.message).startWith( - "Unable to execute request: not connected to a Kuzzle server." + "Unable to execute request: not connected to a Kuzzle server.", ); }); }); @@ -224,7 +226,7 @@ describe("Common Protocol", () => { should(error.id).be.equal("api.process.action_not_found"); should(error.code).be.equal(33685509); should(error.kuzzleStack).be.equal( - 'NotFoundError: API action "foo":"bar" not found' + 'NotFoundError: API action "foo":"bar" not found', ); should(error.controller).be.equal("foo"); should(error.action).be.equal("bar"); @@ -233,7 +235,7 @@ describe("Common Protocol", () => { should(error.collection).be.equal("toto"); should(error.requestId).be.equal("foobar"); should(error.stack).match( - /NotFoundError: API action "foo":"bar" not found/ + /NotFoundError: API action "foo":"bar" not found/, ); should(error.stack).match(/KuzzleAbstractProtocol/); should(error.stack).match(/>\s{4}at Context./); @@ -309,7 +311,7 @@ describe("Common Protocol", () => { pending2.promise.should.be.rejectedWith({ message: "Network error: request was sent but no response has been received", - }) + }), ); }); }); diff --git a/test/protocol/Http.test.js b/test/protocol/Http.test.js index 00ead9347..ddbb28a19 100644 --- a/test/protocol/Http.test.js +++ b/test/protocol/Http.test.js @@ -1,4 +1,6 @@ -const proxyquire = require("proxyquire"); +/* eslint-disable no-undef */ +"use strict"; + const should = require("should"); const sinon = require("sinon"); @@ -235,7 +237,7 @@ describe("HTTP networking module", () => { should(emittedError.internal).eql(error); should(emittedError.message).startWith( - "Unable to connect to kuzzle server at" + "Unable to connect to kuzzle server at", ); }); }); @@ -435,9 +437,9 @@ describe("HTTP networking module", () => { .and.be.calledWithMatch({ method: "GET", path: `/foo?foo=${encodeURIComponent( - '{"foofoo":{"barbar":"bar"}}' + '{"foofoo":{"barbar":"bar"}}', )}&${encodeURIComponent("&baz")}=${encodeURIComponent( - "oh,an,array" + "oh,an,array", )}`, }); done(); @@ -463,7 +465,7 @@ describe("HTTP networking module", () => { .and.be.calledWithMatch({ method: "VERB", path: `/foo/bar?${encodeURIComponent( - "foo?lol" + "foo?lol", )}=${encodeURIComponent("bar&baz")}`, }); @@ -674,35 +676,33 @@ describe("HTTP networking module", () => { result: "Kuzzle Result", }; - let httpRequestStub; + let nodeRequestStub; beforeEach(() => { - httpRequestStub = sinon.stub().resolves({ + nodeRequestStub = sinon.stub().resolves({ body: JSON.stringify(mockResponseBody), headers: { "content-type": "application/json", }, + statusCode: mockResponseBody.status, }); - const { default: MockHttp } = proxyquire("../../src/protocols/Http", { - "min-req-promise": { request: httpRequestStub }, - }); - - protocol = new MockHttp("address", { port: 1234 }); + protocol = new Http("address", { port: 1234 }); + protocol._nodeRequest = nodeRequestStub; }); it("should call http.request with empty body", () => { protocol._sendHttpRequest({ method: "VERB", path: "/foo/bar" }); - should(httpRequestStub).be.calledOnce(); - should(httpRequestStub).be.calledWith( + should(nodeRequestStub).be.calledOnce(); + should(nodeRequestStub).be.calledWithMatch( "http://address:1234/foo/bar", "VERB", { body: undefined, headers: { "Content-Length": 0 }, timeout: 0, - } + }, ); }); @@ -714,15 +714,15 @@ describe("HTTP networking module", () => { payload: { body }, }); - should(httpRequestStub).be.calledOnce(); - should(httpRequestStub).be.calledWith( + should(nodeRequestStub).be.calledOnce(); + should(nodeRequestStub).be.calledWithMatch( "http://address:1234/foo/bar", "VERB", { body: "http request body", headers: { "Content-Length": body.length }, timeout: 0, - } + }, ); }); @@ -730,15 +730,15 @@ describe("HTTP networking module", () => { protocol.timeout = 42000; protocol._sendHttpRequest({ method: "VERB", path: "/foo/bar" }); - should(httpRequestStub).be.calledOnce(); - should(httpRequestStub).be.calledWith( + should(nodeRequestStub).be.calledOnce(); + should(nodeRequestStub).be.calledWithMatch( "http://address:1234/foo/bar", "VERB", { body: undefined, headers: { "Content-Length": 0 }, timeout: 42000, - } + }, ); }); @@ -750,27 +750,27 @@ describe("HTTP networking module", () => { payload: { body, headers: { foo: "bar" } }, }); - should(httpRequestStub).be.calledOnce(); - should(httpRequestStub).be.calledWith( + should(nodeRequestStub).be.calledOnce(); + should(nodeRequestStub).be.calledWithMatch( "http://address:1234/foo/bar", "VERB", { body: "http request body", headers: { "Content-Length": body.length, foo: "bar" }, timeout: 0, - } + }, ); }); it("should reject the request in case of error", () => { - httpRequestStub.rejects("My HTTP Error"); + nodeRequestStub.rejects(new Error("My HTTP Error")); return protocol ._sendHttpRequest({ method: "VERB", path: "/foo/bar" }) .then(() => Promise.reject("No error")) .catch((err) => { should(err).be.an.instanceof(Error); - should(err.name).be.exactly("My HTTP Error"); + should(err.message).be.exactly("My HTTP Error"); }); }); @@ -889,7 +889,7 @@ describe("HTTP networking module", () => { setTimeout(() => xhrStub.onreadystatechange(), 20); return should( - protocol._sendHttpRequest("VERB", "/foo/bar", { body: "foobar" }) + protocol._sendHttpRequest("VERB", "/foo/bar", { body: "foobar" }), ).be.rejectedWith({ message: "Cannot connect to host. Is the host online?", }); diff --git a/test/protocol/WebSocket.test.js b/test/protocol/WebSocket.test.js index 66d45f7f7..e297d6bf5 100644 --- a/test/protocol/WebSocket.test.js +++ b/test/protocol/WebSocket.test.js @@ -1,3 +1,6 @@ +/* eslint-disable no-undef */ +"use strict"; + const should = require("should"); const sinon = require("sinon"); const lolex = require("lolex"); diff --git a/test/setup.js b/test/setup.js new file mode 100644 index 000000000..6e01b1b9d --- /dev/null +++ b/test/setup.js @@ -0,0 +1,14 @@ +"use strict"; + +/** + * Ensure global bindings exist so strict-mode tests can reassign them + * without throwing ReferenceError in Node. + */ +if (typeof global.XMLHttpRequest === "undefined") { + global.XMLHttpRequest = undefined; +} + +// Define a writable global binding for WebSocket when Node does not provide one +if (typeof global.WebSocket === "undefined") { + global.WebSocket = undefined; +} diff --git a/test/utils/Deprecation.test.js b/test/utils/Deprecation.test.js index 3faa11454..3982243ce 100644 --- a/test/utils/Deprecation.test.js +++ b/test/utils/Deprecation.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"); const sinon = require("sinon"); const { Deprecation } = require("../../src/utils/Deprecation"); diff --git a/test/utils/proxify.test.js b/test/utils/proxify.test.js index 69220fcc9..39e8c84df 100644 --- a/test/utils/proxify.test.js +++ b/test/utils/proxify.test.js @@ -1,3 +1,5 @@ +"use strict"; + const should = require("should"), sinon = require("sinon"), { proxify } = require("../../src/utils/proxify"); @@ -39,7 +41,7 @@ describe("proxify", () => { should(() => { obj.prop2 = 42; }).throwError( - "Cannot set a value to the undefined 'prop2' property in 'object'" + "Cannot set a value to the undefined 'prop2' property in 'object'", ); }); @@ -91,7 +93,7 @@ describe("proxify", () => { should(() => { obj.foo = 42; }).throwError( - "Cannot set a value to the undefined 'foo' property in 'object'" + "Cannot set a value to the undefined 'foo' property in 'object'", ); obj.__proxy__.registerProp("foo"); should.doesNotThrow(() => { @@ -110,7 +112,7 @@ describe("proxify", () => { should(() => { obj.prop = 42; }).throwError( - "Cannot set a value to the undefined 'prop' property in 'object'" + "Cannot set a value to the undefined 'prop' property in 'object'", ); }); diff --git a/tsconfig.json b/tsconfig.json index 452852dae..146455cc0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,15 +2,25 @@ "compilerOptions": { "declaration": true, "listEmittedFiles": true, + "outDir": "out", "module": "commonjs", "target": "es2020", "moduleResolution": "node", "sourceMap": true, "baseUrl": ".", "resolveJsonModule": true, - "esModuleInterop": true + "esModuleInterop": true, + "skipLibCheck": true }, "rootDir": "src/", - "include": ["index.ts", "src/**/*.ts"], - "exclude": ["node_modules"] -} + "include": [ + "index.ts", + "src/**/*.ts", + "src/**/*.js", + "features/**/*.ts", + "vite.config.ts" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 000000000..4fb107df2 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,29 @@ +import path from "path"; +import { defineConfig } from "vite"; +import { version } from "./package.json"; + +export default defineConfig({ + build: { + lib: { + // Use the TypeScript entry so Rollup sees ES modules and can generate a proper UMD bundle + entry: path.resolve(__dirname, "index.ts"), + fileName: () => "kuzzle.js", + name: "KuzzleSDK", + // Match the legacy Webpack output: single UMD bundle + formats: ["umd"], + }, + outDir: "dist", + rollupOptions: { + output: { + banner: `// Kuzzle Javascript SDK version ${version}`, + // Expose build flags on the global scope for browser usage (mirrors old webpack define) + }, + }, + sourcemap: true, + target: "es2015", + }, + define: { + SDKVERSION: JSON.stringify(version), + }, + plugins: [], +}); diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 550c8f2fd..000000000 --- a/webpack.config.js +++ /dev/null @@ -1,47 +0,0 @@ -const webpack = require('webpack'); - -const { version } = require('./package.json'); - -module.exports = { - name: 'browser', - mode: 'production', - entry: './index.js', - output: { - path: `${__dirname}/dist`, - filename: 'kuzzle.js', - library: 'KuzzleSDK', - libraryTarget: 'umd' - }, - target: 'web', - watch: false, - devtool: 'cheap-module-source-map', - node: false, - module: { - rules: [ - { - test: /\.?js$/, - use: { - loader: 'babel-loader' - } - } - ] - }, - plugins: [ - new webpack.IgnorePlugin({ - resourceRegExp: /^(http|min-req-promise|package|ws)$/ - }), - new webpack.DefinePlugin({ - SDKVERSION: JSON.stringify(version), - BUILT: true - }), - new webpack.BannerPlugin('Kuzzle Javascript SDK version ' + version), - ], - resolve: { - fallback: { - buffer: false, - http: false, - https: false, - url: false, - } - }, -};