From d956af787189b33881de175e9e22927d1089d427 Mon Sep 17 00:00:00 2001 From: Foromo Ernest TEORO <94995568+ernestoteo@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:15:07 +0100 Subject: [PATCH] Add jest, mock and test example (#58) * Add jest, mock and test example * Added test automation on the repo * Added first part unit test for stock count * fix: feedback correction and finalise unit test * fix: conflicts and merge master into here * fix:contacts forms are removed * fix: unit test failing --- .github/workflows/build.yml | 25 + .vscode/launch.json | 17 + package-lock.json | 8488 +++++++++++------ package.json | 3 + src/add-item.js | 228 +- src/features/stock-count.js | 65 +- src/init.js | 104 +- test/example.spec.js | 6 + test/mocks/mocks.js | 51 + .../app_settings/base_settings.json | 107 + ..._pregnant_women_and_others.properties.json | 18 + .../care_of_pregnant_women_and_others.xlsx | Bin 0 -> 53203 bytes ...patient_assessment_under_5.properties.json | 18 + .../forms/app/patient_assessment_under_5.xlsx | Bin 0 -> 81704 bytes .../translations/messages-en.properties | 332 + .../translations/messages-fr.properties | 467 + test/stock-count.spec.js | 95 + test/test-utils.js | 24 + 18 files changed, 7215 insertions(+), 2833 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .vscode/launch.json create mode 100644 test/example.spec.js create mode 100644 test/mocks/mocks.js create mode 100644 test/project-config/app_settings/base_settings.json create mode 100644 test/project-config/forms/app/care_of_pregnant_women_and_others.properties.json create mode 100644 test/project-config/forms/app/care_of_pregnant_women_and_others.xlsx create mode 100644 test/project-config/forms/app/patient_assessment_under_5.properties.json create mode 100644 test/project-config/forms/app/patient_assessment_under_5.xlsx create mode 100644 test/project-config/translations/messages-en.properties create mode 100644 test/project-config/translations/messages-fr.properties create mode 100644 test/stock-count.spec.js create mode 100644 test/test-utils.js diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..9c61450 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,25 @@ +name: CI + +on: [push] + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 15 + + defaults: + run: + working-directory: . + + strategy: + matrix: + node-version: [16.x] + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + - run: npm ci + - run: npm test diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..2ccd0c9 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Run Jest Tests", + "program": "${workspaceFolder}/node_modules/jest/bin/jest.js", + "args": [ + "${workspaceFolder}/test/stock-count.spec.js", + "--runInBand", + "--verbose" + ], + "console": "integratedTerminal" + } + ] + } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 4ecf759..02e0d85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "fraction.js": "^4.2.0", "fs-extra": "^11.1.0", "inquirer": "^8.2.5", + "jest-junit": "^16.0.0", "luxon": "^3.3.0" }, "bin": { @@ -31,10 +32,24 @@ "eslint-plugin-json": "^2.0.1", "git-cz": "^4.9.0", "husky": "^9.1.6", + "jest": "^29.7.0", "rewire": "^6.0.0", "semantic-release": "^24.1.1" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", @@ -44,6 +59,178 @@ "@babel/highlight": "^7.10.4" } }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", @@ -53,6 +240,28 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/highlight": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", @@ -130,3432 +339,5152 @@ "node": ">=4" } }, - "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, - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@commitlint/cli": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.5.0.tgz", - "integrity": "sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ==", + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, "dependencies": { - "@commitlint/format": "^19.5.0", - "@commitlint/lint": "^19.5.0", - "@commitlint/load": "^19.5.0", - "@commitlint/read": "^19.5.0", - "@commitlint/types": "^19.5.0", - "tinyexec": "^0.3.0", - "yargs": "^17.0.0" + "@babel/types": "^7.25.2" }, "bin": { - "commitlint": "cli.js" + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=v18" + "node": ">=6.0.0" } }, - "node_modules/@commitlint/config-conventional": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.5.0.tgz", - "integrity": "sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg==", + "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": { - "@commitlint/types": "^19.5.0", - "conventional-changelog-conventionalcommits": "^7.0.2" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=v18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/config-validator": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", - "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "dependencies": { - "@commitlint/types": "^19.5.0", - "ajv": "^8.11.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=v18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/config-validator/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "@babel/helper-plugin-utils": "^7.12.13" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", - "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { - "@commitlint/types": "^19.5.0", - "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" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/execute-rule": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", - "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/format": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", - "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { - "@commitlint/types": "^19.5.0", - "chalk": "^5.3.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=v18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/format/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/is-ignored": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz", - "integrity": "sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@commitlint/types": "^19.5.0", - "semver": "^7.6.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/lint": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.5.0.tgz", - "integrity": "sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^19.5.0", - "@commitlint/parse": "^19.5.0", - "@commitlint/rules": "^19.5.0", - "@commitlint/types": "^19.5.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=v18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/load": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.5.0.tgz", - "integrity": "sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^19.5.0", - "@commitlint/execute-rule": "^19.5.0", - "@commitlint/resolve-extends": "^19.5.0", - "@commitlint/types": "^19.5.0", - "chalk": "^5.3.0", - "cosmiconfig": "^9.0.0", - "cosmiconfig-typescript-loader": "^5.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=v18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/load/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/message": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", - "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "engines": { - "node": ">=v18" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/parse": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", - "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { - "@commitlint/types": "^19.5.0", - "conventional-changelog-angular": "^7.0.0", - "conventional-commits-parser": "^5.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=v18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/read": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", - "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { - "@commitlint/top-level": "^19.5.0", - "@commitlint/types": "^19.5.0", - "git-raw-commits": "^4.0.0", - "minimist": "^1.2.8", - "tinyexec": "^0.3.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=v18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/read/node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/resolve-extends": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", - "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@commitlint/config-validator": "^19.5.0", - "@commitlint/types": "^19.5.0", - "global-directory": "^4.0.1", - "import-meta-resolve": "^4.0.0", - "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@commitlint/rules": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.5.0.tgz", - "integrity": "sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw==", + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, "dependencies": { - "@commitlint/ensure": "^19.5.0", - "@commitlint/message": "^19.5.0", - "@commitlint/to-lines": "^19.5.0", - "@commitlint/types": "^19.5.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" } }, - "node_modules/@commitlint/to-lines": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", - "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" } }, - "node_modules/@commitlint/top-level": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", - "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", + "node_modules/@babel/traverse": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dev": true, "dependencies": { - "find-up": "^7.0.0" + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" } }, - "node_modules/@commitlint/types": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", - "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@types/conventional-commits-parser": "^5.0.0", - "chalk": "^5.3.0" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { - "node": ">=v18" + "node": ">=6.9.0" } }, - "node_modules/@commitlint/types/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@fast-csv/format": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", - "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", - "dependencies": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isboolean": "^3.0.3", - "lodash.isequal": "^4.5.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0" - } - }, - "node_modules/@fast-csv/parse": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", - "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", - "dependencies": { - "@types/node": "^14.0.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.groupby": "^4.6.0", - "lodash.isfunction": "^3.0.9", - "lodash.isnil": "^4.0.0", - "lodash.isundefined": "^3.0.1", - "lodash.uniq": "^4.5.0" + "node": ">=4" } }, - "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/@medic/eslint-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@medic/eslint-config/-/eslint-config-1.1.0.tgz", - "integrity": "sha512-KQXLM4BJ2GVmFL56iIqDUQWPPmIrJXJ03gB8zqnB6tTxwPIwAUrdXQXsb3rudMItVe9VNVRXdzBVnpd/ntfAzw==", - "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==", + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "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, + "optional": true, "engines": { - "node": ">= 8" + "node": ">=0.1.90" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@commitlint/cli": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.5.0.tgz", + "integrity": "sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.5.0", + "@commitlint/load": "^19.5.0", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/@octokit/auth-token": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", - "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", - "dev": true, - "engines": { - "node": ">= 18" + "node": ">=v18" } }, - "node_modules/@octokit/core": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", - "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", + "node_modules/@commitlint/config-conventional": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.5.0.tgz", + "integrity": "sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg==", "dev": true, "dependencies": { - "@octokit/auth-token": "^5.0.0", - "@octokit/graphql": "^8.0.0", - "@octokit/request": "^9.0.0", - "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.0.0", - "before-after-hook": "^3.0.2", - "universal-user-agent": "^7.0.0" + "@commitlint/types": "^19.5.0", + "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { - "node": ">= 18" + "node": ">=v18" } }, - "node_modules/@octokit/endpoint": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", - "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", + "node_modules/@commitlint/config-validator": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", "dev": true, "dependencies": { - "@octokit/types": "^13.0.0", - "universal-user-agent": "^7.0.2" + "@commitlint/types": "^19.5.0", + "ajv": "^8.11.0" }, "engines": { - "node": ">= 18" + "node": ">=v18" } }, - "node_modules/@octokit/graphql": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", - "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^7.0.0" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, - "engines": { - "node": ">= 18" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "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/@octokit/plugin-paginate-rest": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.3.tgz", - "integrity": "sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==", + "node_modules/@commitlint/ensure": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", "dev": true, "dependencies": { - "@octokit/types": "^13.5.0" + "@commitlint/types": "^19.5.0", + "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" }, "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=6" + "node": ">=v18" } }, - "node_modules/@octokit/plugin-retry": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz", - "integrity": "sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==", + "node_modules/@commitlint/execute-rule": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", "dev": true, - "dependencies": { - "@octokit/request-error": "^6.0.0", - "@octokit/types": "^13.0.0", - "bottleneck": "^2.15.3" - }, "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=6" + "node": ">=v18" } }, - "node_modules/@octokit/plugin-throttling": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz", - "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==", + "node_modules/@commitlint/format": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", "dev": true, "dependencies": { - "@octokit/types": "^13.0.0", - "bottleneck": "^2.15.3" + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0" }, "engines": { - "node": ">= 18" + "node": ">=v18" + } + }, + "node_modules/@commitlint/format/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, - "peerDependencies": { - "@octokit/core": "^6.0.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@octokit/request": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", - "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", + "node_modules/@commitlint/is-ignored": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz", + "integrity": "sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w==", "dev": true, "dependencies": { - "@octokit/endpoint": "^10.0.0", - "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^7.0.2" + "@commitlint/types": "^19.5.0", + "semver": "^7.6.0" }, "engines": { - "node": ">= 18" + "node": ">=v18" } }, - "node_modules/@octokit/request-error": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.4.tgz", - "integrity": "sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==", + "node_modules/@commitlint/lint": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.5.0.tgz", + "integrity": "sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg==", "dev": true, "dependencies": { - "@octokit/types": "^13.0.0" + "@commitlint/is-ignored": "^19.5.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.5.0", + "@commitlint/types": "^19.5.0" }, "engines": { - "node": ">= 18" + "node": ">=v18" } }, - "node_modules/@octokit/types": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", - "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "node_modules/@commitlint/load": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.5.0.tgz", + "integrity": "sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^22.2.0" + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^5.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + }, + "engines": { + "node": ">=v18" } }, - "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==", + "node_modules/@commitlint/load/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { - "node": ">=12.22.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", + "node_modules/@commitlint/message": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", "dev": true, - "dependencies": { - "graceful-fs": "4.2.10" - }, "engines": { - "node": ">=12.22.0" + "node": ">=v18" } }, - "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==", + "node_modules/@commitlint/parse": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", "dev": true, "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" + "@commitlint/types": "^19.5.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" }, "engines": { - "node": ">=12" + "node": ">=v18" } }, - "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 - }, - "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==", + "node_modules/@commitlint/read": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", "dev": true, "dependencies": { - "@semantic-release/error": "^3.0.0", - "aggregate-error": "^3.0.0", - "fs-extra": "^11.0.0", - "lodash": "^4.17.4" + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" }, "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0" + "node": ">=v18" } }, - "node_modules/@semantic-release/commit-analyzer": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz", - "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==", + "node_modules/@commitlint/read/node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "dependencies": { - "conventional-changelog-angular": "^8.0.0", - "conventional-changelog-writer": "^8.0.0", - "conventional-commits-filter": "^5.0.0", - "conventional-commits-parser": "^6.0.0", - "debug": "^4.0.0", - "import-from-esm": "^1.0.3", - "lodash-es": "^4.17.21", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-changelog-angular": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", - "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "node_modules/@commitlint/resolve-extends": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", "dev": true, "dependencies": { - "compare-func": "^2.0.0" + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=18" + "node": ">=v18" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-commits-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", - "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "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==", "dev": true, - "dependencies": { - "meow": "^13.0.0" - }, - "bin": { - "conventional-commits-parser": "dist/cli/index.js" - }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/@semantic-release/commit-analyzer/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "node_modules/@commitlint/rules": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.5.0.tgz", + "integrity": "sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=v18" } }, - "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==", + "node_modules/@commitlint/to-lines": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", "dev": true, "engines": { - "node": ">=14.17" + "node": ">=v18" } }, - "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==", + "node_modules/@commitlint/top-level": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", "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" + "find-up": "^7.0.0" }, "engines": { - "node": ">=14.17" - }, - "peerDependencies": { - "semantic-release": ">=18.0.0" + "node": ">=v18" } }, - "node_modules/@semantic-release/github": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.3.4.tgz", - "integrity": "sha512-JghCkEk7e2u+iauMje8lgHH11pbtaz9yTdMn/PyfulCdBshIwpp+Mu/NR8Ml216auEUtvmBpQX5+Cth2TsVUVw==", + "node_modules/@commitlint/types": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", "dev": true, "dependencies": { - "@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", - "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" + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" }, "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" + "node": ">=v18" } }, - "node_modules/@semantic-release/github/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==", + "node_modules/@commitlint/types/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { - "node": ">=18" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", + "node_modules/@fast-csv/format": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", + "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isboolean": "^3.0.3", + "lodash.isequal": "^4.5.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0" + } + }, + "node_modules/@fast-csv/parse": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", + "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.groupby": "^4.6.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0", + "lodash.isundefined": "^3.0.1", + "lodash.uniq": "^4.5.0" + } + }, + "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": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.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": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/github/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { - "escape-string-regexp": "5.0.0" + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@semantic-release/github/node_modules/escape-string-regexp": { + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "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==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "p-locate": "^4.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "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/@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": ">=12" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", - "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", + "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": { - "@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.5.0", - "rc": "^1.2.8", - "read-pkg": "^9.0.0", - "registry-auth-token": "^5.0.0", - "semver": "^7.1.2", - "tempy": "^3.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" + "node": ">=8" } }, - "node_modules/@semantic-release/npm/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==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { - "node": ">=18" + "node": ">=6" } }, - "node_modules/@semantic-release/npm/node_modules/@sindresorhus/merge-streams": { + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", - "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/npm/node_modules/aggregate-error": { + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/npm/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "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/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { - "escape-string-regexp": "5.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=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/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", - "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.3", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.0", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.0.0" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": "^18.19.0 || >=20.5.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@semantic-release/npm/node_modules/figures": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", - "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "is-unicode-supported": "^2.0.0" - }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/npm/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==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", - "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, "engines": { - "node": ">=18.18.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "jest-get-type": "^29.6.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/npm/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==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", - "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { - "path-key": "^4.0.0", - "unicorn-magic": "^0.3.0" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@semantic-release/npm/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==", + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/npm/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "engines": { - "node": ">=14" + "dependencies": { + "@sinclair/typebox": "^0.27.8" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", - "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/npm/node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/release-notes-generator": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", - "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "conventional-changelog-angular": "^8.0.0", - "conventional-changelog-writer": "^8.0.0", - "conventional-commits-filter": "^5.0.0", - "conventional-commits-parser": "^6.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-package-up": "^11.0.0" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=20.8.1" - }, - "peerDependencies": { - "semantic-release": ">=20.1.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-angular": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", - "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "node_modules/@jest/test-sequencer/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "compare-func": "^2.0.0" - }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-commits-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", - "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { - "meow": "^13.0.0" - }, - "bin": { - "conventional-commits-parser": "dist/cli/index.js" + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/@semantic-release/release-notes-generator/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0.0" } }, - "node_modules/@types/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@types/node": { - "version": "14.18.36", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", - "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==" - }, - "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==", + "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/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@medic/eslint-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@medic/eslint-config/-/eslint-config-1.1.0.tgz", + "integrity": "sha512-KQXLM4BJ2GVmFL56iIqDUQWPPmIrJXJ03gB8zqnB6tTxwPIwAUrdXQXsb3rudMItVe9VNVRXdzBVnpd/ntfAzw==", "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/@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, - "peer": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=0.4.0" + "node": ">= 8" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "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, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": ">= 8" } }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "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": { - "debug": "^4.3.4" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">= 14" + "node": ">= 8" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/@octokit/auth-token": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", + "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", + "dev": true, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", + "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.0.0", + "@octokit/request": "^9.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">= 18" } }, - "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/@octokit/endpoint": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", + "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", "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" + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.2" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">= 18" } }, - "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/@octokit/graphql": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", + "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", "dev": true, + "dependencies": { + "@octokit/request": "^9.0.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.0" + }, "engines": { - "node": ">=6" + "node": ">= 18" } }, - "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/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "dev": true + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.3.tgz", + "integrity": "sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==", + "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "@octokit/types": "^13.5.0" }, "engines": { - "node": ">=8" + "node": ">= 18" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@octokit/core": ">=6" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@octokit/plugin-retry": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz", + "integrity": "sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==", + "dev": true, + "dependencies": { + "@octokit/request-error": "^6.0.0", + "@octokit/types": "^13.0.0", + "bottleneck": "^2.15.3" + }, "engines": { - "node": ">=8" + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": ">=6" } }, - "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/plugin-throttling": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz", + "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@octokit/types": "^13.0.0", + "bottleneck": "^2.15.3" }, "engines": { - "node": ">=8" + "node": ">= 18" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@octokit/core": "^6.0.0" } }, - "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 - }, - "node_modules/archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "node_modules/@octokit/request": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", + "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", + "dev": true, "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "@octokit/endpoint": "^10.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^7.0.2" }, "engines": { - "node": ">= 10" + "node": ">= 18" } }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "node_modules/@octokit/request-error": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.4.tgz", + "integrity": "sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==", + "dev": true, "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "@octokit/types": "^13.0.0" }, "engines": { - "node": ">= 6" + "node": ">= 18" } }, - "node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", + "@octokit/openapi-types": "^22.2.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, + "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, + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "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, + "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/@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 + }, + "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/commit-analyzer": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz", + "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", + "debug": "^4.0.0", + "import-from-esm": "^1.0.3", + "lodash-es": "^4.17.21", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-changelog-angular": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-commits-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", + "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "dev": true, + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/commit-analyzer/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": { + "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/github": { + "version": "10.3.4", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.3.4.tgz", + "integrity": "sha512-JghCkEk7e2u+iauMje8lgHH11pbtaz9yTdMn/PyfulCdBshIwpp+Mu/NR8Ml216auEUtvmBpQX5+Cth2TsVUVw==", + "dev": true, + "dependencies": { + "@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", + "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": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/github/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, + "engines": { + "node": ">=18" + } + }, + "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, + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/github/node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", + "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", + "dev": true, + "dependencies": { + "@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.5.0", + "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": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/npm/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, + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/npm/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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/execa": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.4.0.tgz", + "integrity": "sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@semantic-release/npm/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, + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/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, + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/human-signals": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz", + "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/npm-run-path": { + "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, + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { + "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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", + "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.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-package-up": "^11.0.0" + }, + "engines": { + "node": ">=20.8.1" + }, + "peerDependencies": { + "semantic-release": ">=20.1.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-angular": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-commits-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", + "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "dev": true, + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "conventional-commits-parser": "dist/cli/index.js" + }, + "engines": { + "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==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "14.18.36", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz", + "integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==" + }, + "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 + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "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==", + "dev": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, - "node_modules/archiver-utils/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/archiver-utils/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": 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 + }, + "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/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "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==", + "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/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 + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, + "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 + }, + "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==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "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/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, + "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" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "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, + "engines": { + "node": ">=10" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/cht-nootils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/cht-nootils/-/cht-nootils-4.2.0.tgz", + "integrity": "sha512-qESIg6BkYTWYJ7IjPSDSoFrp94n0AOhgTDYeOsik5OPcZhRB3oH6EZ2+gjT8Ht3EWsniJwNKtyy4Mi07HCc1hg==", + "dev": true, + "dependencies": { + "underscore": "^1.9.1" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", + "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "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.0.0", + "npm": ">=5.0.0" + } + }, + "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, "dependencies": { - "safe-buffer": "~5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": 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 - }, - "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/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, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } }, - "node_modules/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/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, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "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/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, + "dependencies": { + "string-width": "^4.2.0" + }, "engines": { - "node": ">= 4.0.0" + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "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==", + "engines": { + "node": ">= 10" + } }, - "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==", - "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/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } }, - "node_modules/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 + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, "engines": { - "node": ">=0.6" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": "*" + "node": ">=7.0.0" } }, - "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/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commitizen": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", + "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", + "dev": true, "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "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" } }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" - }, - "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 - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/commitizen/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": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "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, "dependencies": { - "fill-range": "^7.0.1" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "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, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "node_modules/conventional-changelog-angular": { + "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, + "dependencies": { + "compare-func": "^2.0.0" + }, "engines": { - "node": "*" + "node": ">=16" } }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "node_modules/conventional-changelog-conventionalcommits": { + "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, + "dependencies": { + "compare-func": "^2.0.0" + }, "engines": { - "node": ">=0.10" + "node": ">=16" } }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "node_modules/conventional-changelog-writer": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", + "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "dev": true, + "dependencies": { + "@types/semver": "^7.5.5", + "conventional-commits-filter": "^5.0.0", + "handlebars": "^4.7.7", + "meow": "^13.0.0", + "semver": "^7.5.2" + }, + "bin": { + "conventional-changelog-writer": "dist/cli/index.js" + }, "engines": { - "node": ">=0.2.0" + "node": ">=18" } }, - "node_modules/cachedir": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", - "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/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": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", "dev": true, "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, "dependencies": { - "traverse": ">=0.3.0 <0.4" + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" }, "engines": { - "node": "*" + "node": ">=16" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "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, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/cht-nootils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/cht-nootils/-/cht-nootils-4.2.0.tgz", - "integrity": "sha512-qESIg6BkYTWYJ7IjPSDSoFrp94n0AOhgTDYeOsik5OPcZhRB3oH6EZ2+gjT8Ht3EWsniJwNKtyy4Mi07HCc1hg==", + "node_modules/cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", "dev": true, "dependencies": { - "underscore": "^1.9.1" + "jiti": "^1.19.1" + }, + "engines": { + "node": ">=v16" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=8.2", + "typescript": ">=4" } }, - "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, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, "engines": { - "node": ">=6" + "node": ">=0.8" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", "dependencies": { - "restore-cursor": "^3.1.0" + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" }, "engines": { - "node": ">=8" + "node": ">= 10" } }, - "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==", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "dependencies": { - "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" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" }, "bin": { - "highlight": "bin/highlight" + "create-jest": "bin/create-jest.js" }, "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "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==", + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "type-fest": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { "node": ">=10" - } - }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", - "engines": { - "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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": { - "string-width": "^4.2.0" + "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.* || >= 12.*" + "node": ">= 10" }, "optionalDependencies": { - "@colors/colors": "1.5.0" + "@commitlint/load": ">6.1.1" } }, - "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==", + "node_modules/cz-conventional-changelog/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">= 10" + "node": ">=4" } }, - "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/cz-conventional-changelog/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "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/cz-conventional-changelog/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/cz-conventional-changelog/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "engines": { - "node": ">=0.8" + "node": ">=4" } }, - "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/cz-conventional-changelog/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=4" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/dargs": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/commitizen": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", - "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", + "node_modules/dayjs": { + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + }, + "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": { - "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" + "ms": "2.1.2" }, - "bin": { - "commitizen": "bin/commitizen", - "cz": "bin/git-cz", - "git-cz": "bin/git-cz" + "engines": { + "node": ">=6.0" }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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, "engines": { - "node": ">= 12" + "node": ">=4.0.0" } }, - "node_modules/commitizen/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==", + "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/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "clone": "^1.0.2" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.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==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "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==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "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==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "compare-func": "^2.0.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=8" } }, - "node_modules/conventional-changelog-conventionalcommits": { - "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==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "compare-func": "^2.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=16" + "node": ">=6.0.0" } }, - "node_modules/conventional-changelog-writer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", - "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "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, "dependencies": { - "@types/semver": "^7.5.5", - "conventional-commits-filter": "^5.0.0", - "handlebars": "^4.7.7", - "meow": "^13.0.0", - "semver": "^7.5.2" - }, - "bin": { - "conventional-changelog-writer": "dist/cli/index.js" + "is-obj": "^2.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/conventional-changelog-writer/node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dependencies": { + "readable-stream": "^2.0.2" } }, - "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": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", - "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", - "dev": true, - "engines": { - "node": ">=18" + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", - "dev": true, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexer2/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==", "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.mjs" - }, - "engines": { - "node": ">=16" + "safe-buffer": "~5.1.0" } }, - "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==", + "node_modules/electron-to-chromium": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz", + "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "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 + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.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": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" + "ansi-colors": "^4.1.1" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8.6" } }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", - "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "node_modules/env-ci": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz", + "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==", "dev": true, "dependencies": { - "jiti": "^1.19.1" + "execa": "^8.0.0", + "java-properties": "^1.0.2" }, "engines": { - "node": ">=v16" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=8.2", - "typescript": ">=4" + "node": "^18.17 || >=20.6.1" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" + "node_modules/env-ci/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==", + "dev": 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", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=0.8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, + "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, "engines": { - "node": ">= 10" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/env-ci/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==", "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">=16.17.0" } }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "node_modules/env-ci/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==", "dev": true, - "dependencies": { - "type-fest": "^1.0.1" - }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "node_modules/env-ci/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==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "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, "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" + "path-key": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cz-conventional-changelog/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/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, "dependencies": { - "color-convert": "^1.9.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cz-conventional-changelog/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cz-conventional-changelog/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==", + "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, - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cz-conventional-changelog/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/cz-conventional-changelog/node_modules/has-flag": { + "node_modules/env-ci/node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cz-conventional-changelog/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/dargs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", - "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "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, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dayjs": { - "version": "1.11.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", - "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/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": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "is-arrayish": "^0.2.1" } }, - "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==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=6" } }, - "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/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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "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==", + "node_modules/eslint-plugin-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-2.1.2.tgz", + "integrity": "sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q==", + "dev": true, "dependencies": { - "clone": "^1.0.2" + "lodash": "^4.17.19", + "vscode-json-languageservice": "^3.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8.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/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.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/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "dependencies": { - "path-type": "^4.0.0" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/eslint-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, - "dependencies": { - "esutils": "^2.0.2" - }, "engines": { - "node": ">=6.0.0" + "node": ">=4" } }, - "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==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "is-obj": "^2.0.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "node_modules/eslint/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": { - "readable-stream": "^2.0.2" + "sprintf-js": "~1.0.2" } }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "node_modules/eslint/node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true, + "engines": { + "node": ">=4" } }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/eslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/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 - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/eslint/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "dependencies": { - "once": "^1.4.0" + "color-name": "1.1.3" } }, - "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==", + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "dependencies": { - "ansi-colors": "^4.1.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "engines": { - "node": ">=8.6" + "node": ">=4.8" } }, - "node_modules/env-ci": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.1.0.tgz", - "integrity": "sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g==", + "node_modules/eslint/node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/eslint/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/eslint/node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "dependencies": { - "execa": "^8.0.0", - "java-properties": "^1.0.2" + "flat-cache": "^2.0.1" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": ">=4" } }, - "node_modules/env-ci/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==", + "node_modules/eslint/node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": 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", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=4" } }, - "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==", + "node_modules/eslint/node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/eslint/node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, "engines": { - "node": ">=16" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/env-ci/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/eslint/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": ">=16.17.0" + "node": ">=4" } }, - "node_modules/env-ci/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/eslint/node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/env-ci/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/eslint/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": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", + "node_modules/eslint/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": { - "path-key": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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/eslint/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": { - "mimic-fn": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/env-ci/node_modules/path-key": { + "node_modules/eslint/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/eslint/node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "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==", + "node_modules/eslint/node_modules/inquirer/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, - "engines": { - "node": ">=14" + "dependencies": { + "ansi-regex": "^5.0.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/eslint/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, - "engines": { - "node": ">=12" + "dependencies": { + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/eslint/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": ">=6" + "node": ">=4" } }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "node_modules/eslint/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/eslint/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, "dependencies": { - "is-arrayish": "^0.2.1" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/eslint/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "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==", + "node_modules/eslint/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=4" } }, - "node_modules/eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true, + "engines": { + "node": ">=6.5.0" } }, - "node_modules/eslint-plugin-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-2.1.2.tgz", - "integrity": "sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q==", + "node_modules/eslint/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "dependencies": { - "lodash": "^4.17.19", - "vscode-json-languageservice": "^3.7.0" + "glob": "^7.1.3" }, - "engines": { - "node": ">=8.10.0" + "bin": { + "rimraf": "bin.js" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "tslib": "^1.9.0" }, "engines": { - "node": ">=8.0.0" + "npm": ">=2.0.0" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/eslint/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "engines": { - "node": ">=4.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "node_modules/eslint/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "shebang-regex": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "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/eslint/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/eslint/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/eslint/node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/eslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/eslint/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/eslint/node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "node_modules/eslint/node_modules/strip-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, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/eslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "has-flag": "^3.0.0" }, "engines": { "node": ">=4" } }, - "node_modules/eslint/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==", + "node_modules/eslint/node_modules/table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "dependencies": { - "color-name": "1.1.3" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "node_modules/eslint/node_modules/table/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, "engines": { - "node": ">=4.8" - } - }, - "node_modules/eslint/node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" + "node": ">=6" } }, - "node_modules/eslint/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "node_modules/eslint/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/eslint/node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "node_modules/eslint/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, "dependencies": { - "flat-cache": "^2.0.1" + "prelude-ls": "~1.1.2" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/eslint/node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "node_modules/eslint/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, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint/node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/eslint/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "node_modules/eslint/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": { - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" + "isexe": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "which": "bin/which" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/eslint/node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.4.0" } }, - "node_modules/eslint/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==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, - "node_modules/eslint/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==", + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10" } }, - "node_modules/eslint/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==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=4.0" } }, - "node_modules/eslint/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/eslint/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==", + "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": ">=8" + "node": ">=4.0" } }, - "node_modules/eslint/node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exceljs": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.4.0.tgz", + "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==", "dependencies": { - "ansi-regex": "^5.0.1" + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.10.1", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" }, "engines": { - "node": ">=8" + "node": ">=8.3.0" } }, - "node_modules/eslint/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==", + "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": { - "has-flag": "^4.0.0" + "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": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/eslint/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==", + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/eslint/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==", + "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": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "homedir-polyfill": "^1.0.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/eslint/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "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==", "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, "engines": { "node": ">=4" } }, - "node_modules/eslint/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.6.0" } }, - "node_modules/eslint/node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true, + "node_modules/fast-csv": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", + "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "dependencies": { + "@fast-csv/format": "4.3.5", + "@fast-csv/parse": "4.3.6" + }, "engines": { - "node": ">=6.5.0" + "node": ">=10.0.0" } }, - "node_modules/eslint/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "@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" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=8.6.0" } }, - "node_modules/eslint/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-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/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" + "reusify": "^1.0.4" } }, - "node_modules/eslint/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "bser": "2.1.1" } }, - "node_modules/eslint/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dependencies": { - "shebang-regex": "^1.0.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "node_modules/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, + "dependencies": { + "flat-cache": "^3.0.4" + }, "engines": { - "node": ">=0.10.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "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": { - "ansi-regex": "^4.1.0" + "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": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/strip-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==", + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", "dev": true, "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/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, "dependencies": { - "has-flag": "^3.0.0" + "semver-regex": "^4.0.5", + "super-regex": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "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==", "dev": true, "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=6.0.0" + "node": ">= 8" } }, - "node_modules/eslint/node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=6" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "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/eslint/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "engines": { - "node": ">= 0.8.0" + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" } }, - "node_modules/eslint/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==", + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, - "node_modules/eslint/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "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, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/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, "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=14.14" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=4" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "dependencies": { - "estraverse": "^5.1.0" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" }, "engines": { - "node": ">=0.10" + "node": ">=0.6" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dependencies": { - "estraverse": "^5.2.0" + "glob": "^7.1.3" }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, "engines": { - "node": ">=4.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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/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/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=6.9.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "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": ">=0.10.0" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/exceljs": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.4.0.tgz", - "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==", - "dependencies": { - "archiver": "^5.0.0", - "dayjs": "^1.8.34", - "fast-csv": "^4.3.1", - "jszip": "^3.10.1", - "readable-stream": "^3.6.0", - "saxes": "^5.0.1", - "tmp": "^0.2.0", - "unzipper": "^0.10.11", - "uuid": "^8.3.0" - }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, "engines": { - "node": ">=8.3.0" + "node": ">=8.0.0" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "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" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "node_modules/git-cz": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/git-cz/-/git-cz-4.9.0.tgz", + "integrity": "sha512-cSRL8IIOXU7UFLdbziCYqg8f8InwLwqHezkiRHNSph7oZqGv0togId1kMTfKil6gzK0VaSXeVBb4oDl0fQCHiw==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "bin": { + "git-cz": "bin/git-cz.js", + "gitcz": "bin/git-cz.js" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/git-log-parser": { + "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, "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "0.6.8" } }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/git-log-parser/node_modules/split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", + "dev": true, "dependencies": { - "os-tmpdir": "~1.0.2" - }, + "through2": "~2.0.0" + } + }, + "node_modules/git-log-parser/node_modules/traverse": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "dev": true, "engines": { - "node": ">=0.6.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-csv": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", - "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "node_modules/git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "dev": true, "dependencies": { - "@fast-csv/format": "4.3.5", - "@fast-csv/parse": "4.3.6" + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.mjs" }, "engines": { - "node": ">=10.0.0" + "node": ">=16" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8.6.0" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-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/fast-uri": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", - "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "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": { - "reusify": "^1.0.4" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5" + "ini": "4.1.1" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/global-directory/node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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": { - "flat-cache": "^3.0.4" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "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==", + "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==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "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==", + "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": { - "findup-sync": "^4.0.0", - "merge": "^2.1.1" + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "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": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up-simple": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", - "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", + "node_modules/globals/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": ">=18" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "dependencies": { - "semver-regex": "^4.0.5", - "super-regex": "^1.0.0" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { "node": ">=18" @@ -3564,810 +5493,1257 @@ "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/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", - "resolve-dir": "^1.0.1" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">= 8" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "function-bind": "^1.1.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 0.4" } }, - "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/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "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, "engines": { "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" } }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "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==", + "node_modules/hook-std": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", + "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/hosted-git-info": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", + "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } }, - "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==", + "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/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=14.14" + "node": ">= 14" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "node_modules/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/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" + "node_modules/husky": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", + "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "dev": true, + "bin": { + "husky": "bin.js" }, "engines": { - "node": ">=0.6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "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==", "dependencies": { - "glob": "^7.1.3" + "safer-buffer": ">= 2.1.2 < 3" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=0.10.0" } }, - "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==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "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": ">=18" + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/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/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/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, + "dependencies": { + "debug": "^4.3.4", + "import-meta-resolve": "^4.0.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=16.20" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/git-cz": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/git-cz/-/git-cz-4.9.0.tgz", - "integrity": "sha512-cSRL8IIOXU7UFLdbziCYqg8f8InwLwqHezkiRHNSph7oZqGv0togId1kMTfKil6gzK0VaSXeVBb4oDl0fQCHiw==", + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", "dev": true, - "bin": { - "git-cz": "bin/git-cz.js", - "gitcz": "bin/git-cz.js" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/git-log-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", - "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "dependencies": { - "argv-formatter": "~1.0.0", - "spawn-error-forwarder": "~1.0.0", - "split2": "~1.0.0", - "stream-combiner2": "~1.1.1", - "through2": "~2.0.0", - "traverse": "0.6.8" + "engines": { + "node": ">=0.8.19" } }, - "node_modules/git-log-parser/node_modules/split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "dependencies": { - "through2": "~2.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/git-log-parser/node_modules/traverse": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", - "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "node_modules/index-to-position": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", + "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "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==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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==", + "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/git-raw-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "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, "dependencies": { - "dargs": "^8.0.0", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.mjs" + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" }, "engines": { - "node": ">=16" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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-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, "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" + "hasown": "^2.0.2" }, "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "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/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/global-directory": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", - "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", - "dev": true, - "dependencies": { - "ini": "4.1.1" - }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/global-directory/node_modules/ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, - "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==", - "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" - }, + "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==", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "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==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=0.12.0" } }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals/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==", + "node_modules/is-plain-obj": { + "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, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/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, + "dependencies": { + "text-extensions": "^2.0.0" + }, "engines": { - "node": ">= 4" + "node": ">=8" } }, - "node_modules/globby/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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==" + "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/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "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, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "node": ">=0.10.0" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "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, - "engines": { - "node": "*" - } + "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/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "node_modules/issue-parser": { + "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, "dependencies": { - "parse-passwd": "^1.0.0" + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" }, "engines": { - "node": ">=0.10.0" + "node": "^18.17 || >=20.6.1" } }, - "node_modules/hook-std": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-3.0.0.tgz", - "integrity": "sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10" } }, - "node_modules/hosted-git-info": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.0.tgz", - "integrity": "sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { - "lru-cache": "^10.0.1" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": ">=10" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">= 14" + "node": ">=10" } }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">= 14" + "node": ">=8" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "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, "engines": { - "node": ">=10.17.0" + "node": ">= 0.6.0" } }, - "node_modules/husky": { - "version": "9.1.6", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", - "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, "bin": { - "husky": "bin.js" + "jest": "bin/jest.js" }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "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/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": ">= 4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "debug": "^4.3.4", - "import-meta-resolve": "^4.0.0" - }, "engines": { - "node": ">=16.20" + "node": ">=8" } }, - "node_modules/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=0.8.19" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/index-to-position": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", - "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "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/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "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" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-junit": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-16.0.0.tgz", + "integrity": "sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==", + "dependencies": { + "mkdirp": "^1.0.4", + "strip-ansi": "^6.0.1", + "uuid": "^8.3.2", + "xml": "^1.0.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=10.12.0" } }, - "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==", + "node_modules/jest-junit/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-message-util/node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/is-fullwidth-code-point": { + "node_modules/jest-message-util/node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "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==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "text-extensions": "^2.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, "engines": { "node": ">=10" }, @@ -4375,55 +6751,53 @@ "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-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "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/issue-parser": { - "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==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { - "lodash.capitalize": "^4.2.1", - "lodash.escaperegexp": "^4.1.2", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.uniqby": "^4.7.0" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.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==", + "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": ">= 0.6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/jiti": { @@ -4453,6 +6827,18 @@ "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==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -4477,6 +6863,18 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", @@ -4557,6 +6955,15 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", @@ -4595,6 +7002,15 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4865,6 +7281,30 @@ "node": ">=12" } }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/marked": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", @@ -5084,6 +7524,18 @@ "node": ">=18" } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, "node_modules/normalize-package-data": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", @@ -7812,6 +10264,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-limit/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-locate": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", @@ -7960,6 +10424,12 @@ "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-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -7996,6 +10466,15 @@ "node": ">=4" } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", @@ -8067,6 +10546,88 @@ "node": ">=4" } }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -8076,6 +10637,32 @@ "node": ">= 0.8.0" } }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/pretty-ms": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", @@ -8105,6 +10692,19 @@ "node": ">=0.4.0" } }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -8120,6 +10720,22 @@ "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -8164,6 +10780,12 @@ "node": ">=0.10.0" } }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/read-package-up": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", @@ -8336,6 +10958,44 @@ "node": ">=0.10.0" } }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-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" + } + }, + "node_modules/resolve-cwd/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", @@ -8358,6 +11018,15 @@ "node": ">=4" } }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -9122,6 +11791,12 @@ "node": ">=4" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "node_modules/skin-tone": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", @@ -9172,6 +11847,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/spawn-error-forwarder": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", @@ -9225,6 +11910,27 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/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/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", @@ -9273,6 +11979,19 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -9370,6 +12089,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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", @@ -9474,6 +12205,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/text-extensions": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", @@ -9590,6 +12335,21 @@ "node": ">=8.17.0" } }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -9627,6 +12387,15 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -9765,6 +12534,36 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -9802,6 +12601,20 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "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", @@ -9849,6 +12662,15 @@ "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", "dev": true }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -9920,6 +12742,24 @@ "node": ">=4" } }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" + }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -9943,6 +12783,12 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -9971,12 +12817,12 @@ } }, "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { - "node": ">=12.20" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" diff --git a/package.json b/package.json index c8d7b4d..0ffb483 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ }, "scripts": { "cz": "cz", + "test": "jest", "semantic-release": "semantic-release", "prepare": "husky" }, @@ -32,6 +33,7 @@ "eslint-plugin-json": "^2.0.1", "git-cz": "^4.9.0", "husky": "^9.1.6", + "jest": "^29.7.0", "rewire": "^6.0.0", "semantic-release": "^24.1.1" }, @@ -41,6 +43,7 @@ "fraction.js": "^4.2.0", "fs-extra": "^11.1.0", "inquirer": "^8.2.5", + "jest-junit": "^16.0.0", "luxon": "^3.3.0" }, "config": { diff --git a/src/add-item.js b/src/add-item.js index 5a1d632..a2a30b0 100644 --- a/src/add-item.js +++ b/src/add-item.js @@ -33,6 +33,14 @@ async function getItemConfig(configs) { return `Form ${input} not found`; } return true; + }, + when: function(answers){ + const argv = process.argv; + if (!argv[14]){ + return true; + } + answers.form = argv[14]; + return false; } } ]); @@ -49,7 +57,15 @@ async function getItemConfig(configs) { type: 'confirm', name: 'isAlwaysCurrent', message: `Is ${form} report reported date always the current date?`, - default: true + default: true, + when: function(answers){ + const argv = process.argv; + if (!argv[15]){ + return true; + } + answers.isAlwaysCurrent = argv[15]; + return false; + } } ]); if (!reportedDateSameAsCurrent.isAlwaysCurrent) { @@ -58,7 +74,15 @@ async function getItemConfig(configs) { type: 'input', name: 'reportedDate', message: 'Enter a xlsform calculation formular to calculate the reported date', - default: 'now()' + default: 'now()', + when: function(answers){ + const argv = process.argv; + if (!argv[16]){ + return true; + } + answers.reportedDate = argv[16]; + return false; + } } ]); formConfig.reportedDate = `${reportDateFormular.reportedDate}`; @@ -80,6 +104,7 @@ async function getItemConfig(configs) { value: it, }; }); + choices.push({ name: 'Create new item', value: '___new_item___' @@ -89,6 +114,14 @@ async function getItemConfig(configs) { name: 'item', message: 'Select item', choices, + when: function(answers){ + const argv = process.argv; + if (!argv[17]){ + return true; + } + answers.item = argv[17]; + return false; + } }]); if (itemSelect.item !== '___new_item___') { itemConfig = configs.items[itemSelect.item]; @@ -127,16 +160,78 @@ async function getItemConfig(configs) { type: 'input', name: 'name', message: 'Enter category name', + when: function(answers){ + const argv = process.argv; + if (!argv[17]){ + return true; + } + answers.name = argv[17]; + return false; + } }, ...configs.languages.map((language) => ({ type: 'input', name: `label.${language}`, - message: `Enter category label in ${language}` + message: `Enter category label in ${language}`, + when: function(answers) { + const argv = process.argv; + if (!argv[18]){ + return true; + } + let answer = {}; + argv[18].split(',').forEach(el => { + switch(language){ + case 'en': + answer = { + label: { + 'en': el + } + }; + break; + case 'fr': + answer = { + label: { + 'fr': el + } + }; + break; + } + }); + + Object.assign(answers, answer); + return false; + } })), ...configs.languages.map((language) => ({ type: 'input', name: `description.${language}`, - message: `Enter category description in ${language}` + message: `Enter category description in ${language}`, + when: function(answers){ + const argv = process.argv; + if (!argv[19]){ + return true; + } + let answer = {}; + switch(language){ + case 'en': + answer = { + description: { + 'en': argv[19].split(',')[0] + } + }; + break; + case 'fr': + answer = { + description: { + 'fr': argv[19].split(',')[1] + } + }; + break; + } + + Object.assign(answers, answer); + return false; + } })) ]); } @@ -146,17 +241,47 @@ async function getItemConfig(configs) { type: 'input', name: 'name', message: 'Enter item name', + when: function(answers){ + const argv = process.argv; + if (!argv[20]){ + return true; + } + answers.name = argv[20]; + return false; + } }, ...configs.languages.map((language) => ({ type: 'input', name: `label.${language}`, - message: `Enter item label in ${language}` + message: `Enter item label in ${language}`, + when: function(answers){ + const argv = process.argv; + if (!argv[21]){ + return true; + } + const answer = { + label: { + 'en': argv[21].split(',')[0], + 'fr': argv[21].split(',')[1] + } + }; + Object.assign(answers, answer); + return false; + } })), { type: 'confirm', name: 'isInSet', message: 'Can this item be organized in set like box/blister?', default: true, + when: function(answers){ + const argv = process.argv; + if (!argv[22]){ + return true; + } + answers.isInSet = argv[22]; + return false; + } }, ]); @@ -165,12 +290,38 @@ async function getItemConfig(configs) { ...configs.languages.map((language) => ({ type: 'input', name: `set.label.${language}`, - message: `What is the name of the set? Ex: box of 8 in ${language} ?` + message: `What is the name of the set? Ex: box of 8 in ${language} ?`, + when: function(answers){ + const argv = process.argv; + if (!argv[23]){ + return true; + } + const answer = { + set:{ + label: { + 'en': argv[23].split(',')[0], + 'fr': argv[23].split(',')[1] + } + } + }; + Object.assign(answers, answer); + + return false; + } })), { type: 'number', name: 'set.count', - message: 'How many units are there in the set ? ' + message: 'How many units are there in the set ? ', + when: function(answers){ + const argv = process.argv; + if (!argv[24]){ + return true; + } + + answers.set.count = argv[24]; + return false; + } }, ]); Object.assign(itemConfig, setConfigs); @@ -179,23 +330,64 @@ async function getItemConfig(configs) { ...configs.languages.map((language) => ({ type: 'input', name: `unit.label.${language}`, - message: `What is the name of the unit? Ex: Tablet in ${language} ?` + message: `What is the name of the unit? Ex: Tablet in ${language} ?`, + when: function(answers){ + const argv = process.argv; + if (!argv[25]){ + return true; + } + const answer = { + unit:{ + label: { + 'en': argv[25].split(',')[0], + 'fr': argv[25].split(',')[1] + } + } + }; + + Object.assign(answers, answer); + return false; + } })), { type: 'number', name: 'warning_total', message: 'What is the threshold (quantity) that requires attention ? ', + when: function(answers){ + const argv = process.argv; + if (!argv[26]){ + return true; + } + answers.warning_total = argv[26]; + return false; + } }, { type: 'number', name: 'danger_total', message: 'What is the threshold (quantity) that triggers a stock out ? ', + when: function(answers){ + const argv = process.argv; + if (!argv[27]){ + return true; + } + answers.danger_total = argv[27]; + return false; + } }, { type: 'number', name: 'max_total', message: 'What is the maximum quantity to have for this item ? ', default: -1, + when: function(answers){ + const argv = process.argv; + if (!argv[28]){ + return true; + } + answers.max_total = argv[28]; + return false; + } } ]); Object.assign(itemConfig, itemGeneralConfigs); @@ -218,7 +410,15 @@ async function getItemConfig(configs) { name: 'Custom automatic formula', value: 'formula' } - ] + ], + when: function(answers){ + const argv = process.argv; + if (!argv[29]){ + return true; + } + answers.deduction_type = argv[29]; + return false; + } } ]); @@ -226,7 +426,15 @@ async function getItemConfig(configs) { { type: 'input', name: 'formular', - message: itemDeduction.deduction_type === 'formula' ? 'Enter formular' : 'In what condition ask the quantity?' + message: itemDeduction.deduction_type === 'formula' ? 'Enter formular' : 'In what condition ask the quantity?', + when: function(answers){ + const argv = process.argv; + if (!argv[30]){ + return true; + } + answers.formular = argv[30]; + return false; + } } ]); itemDeduction.formular = formularRequest.formular; diff --git a/src/features/stock-count.js b/src/features/stock-count.js index 0c04801..7b2a22a 100644 --- a/src/features/stock-count.js +++ b/src/features/stock-count.js @@ -228,12 +228,35 @@ async function getStockCountConfigs(levels, locales) { name: 'useItemCategory', message: 'Categorize stock items', default: true, + when: function(answers){ + const argv = process.argv; + if (!argv[9]){ + return true; + } + answers.useItemCategory = argv[9]; + return false; + } }, { type: 'input', name: 'features.stock_count.form_name', message: 'Stock count form (Used to fill in balances on hand) ID', default: 'stock_count', + when: function(answers){ + const argv = process.argv; + if (!argv[9]){ + return true; + } + const answer = { + features: { + stock_count: { + form_name: argv[9] + } + } + }; + Object.assign(answers, answer); + return false; + } }, { type: 'checkbox', @@ -245,6 +268,16 @@ async function getStockCountConfigs(levels, locales) { value: l, }; }), + when: function(answers){ + const argv = process.argv; + if (!argv[10]){ + return true; + } + + answers.features.stock_count.contact_types = eval(argv[10]); + + return false; + } }, { type: 'list', @@ -260,6 +293,15 @@ async function getStockCountConfigs(levels, locales) { value: 'task' } ], + when: function(answers){ + const argv = process.argv; + if (!argv[11]){ + return true; + } + + answers.features.stock_count.type = argv[11]; + return false; + } }, ]); @@ -283,6 +325,14 @@ async function getStockCountConfigs(levels, locales) { value: 'end_of_month' } ], + when: function(answers){ + const argv = process.argv; + if (!argv[12]){ + return true; + } + answers.frequency = argv[12]; + return false; + } } ]); answers.features.stock_count.frequency = tasksAnswers.frequency; @@ -294,7 +344,20 @@ async function getStockCountConfigs(levels, locales) { type: 'input', name: locale.code, message: `Stock count form title in ${locale.name}`, - default: 'Stock count' + default: 'Stock count', + when: function(answers){ + const argv = process.argv; + if (!argv[13]){ + return true; + } + + const answer = { + 'en': argv[13].split(',')[0], + 'fr': argv[13].split(',')[1] + }; + Object.assign(answers, answer); + return false; + } }; }), ]); diff --git a/src/init.js b/src/init.js index 218d85f..9ff85b9 100644 --- a/src/init.js +++ b/src/init.js @@ -27,6 +27,14 @@ async function getInitConfigs() { value: '3_levels' } ], + when: function (answers) { + const argv = process.argv; + if (argv[3] === '2_levels') { + answers.monitoring_type = argv[3]; + return false; + } + return true; + }, } ]); @@ -59,14 +67,73 @@ async function getInitConfigs() { name: `${levelNumber}.contact_type`, message: `Select level ${levelNumber}${messagePrecision} contact type`, choices: appPersonTypes.map((p) => p.id), + when: function (answers) { + const argv = process.argv; + let answer = {}; + if (!argv[4] || !argv[6]){ + return true; + } + + switch(levelNumber){ + case 1: + answer = { + 1: { + contact_type: argv[4], + role: argv[5] + } + }; + break; + case 2: + answer = { + 2: { + contact_type: argv[6], + role: argv[7] + } + }; + break; + } + Object.assign(answers, answer); + return false; + }, }, { type: 'list', name: `${levelNumber}.role`, message: `Select level ${levelNumber}${messagePrecision} user role`, - choices: appUserRoles + choices: appUserRoles, + when: function (answers) { + const argv = process.argv; + let answer = {}; + if (!argv[5] || !argv[7]){ + return true; + } + + switch(levelNumber){ + case 1: + answer = { + 1: { + contact_type: argv[4], + role: argv[5] + } + }; + break; + case 2: + answer = { + 2: { + contact_type: argv[6], + role: argv[7] + } + }; + break; + } + + Object.assign(answers, answer); + + return false; + }, } ]); + const contactType = level[`${levelNumber}`].contact_type; // Get parent const contactTypeDetails = appSettings.contact_types.find((ct) => ct.id === contactType); @@ -77,6 +144,41 @@ async function getInitConfigs() { name: 'parent', message: `Select level ${levelNumber}${messagePrecision} parent`, choices: contactTypeDetails.parents, + when:function(answers){ + const argv = process.argv; + let answer = {}; + if (!argv[10]){ + return true; + } + + switch(levelNumber){ + case 1: + answer = { + 1: { + parent: argv[10], + } + }; + break; + case 2: + answer = { + 2: { + parent: argv[10], + } + }; + break; + case 3: + answer = { + 3: { + parent: argv[10], + } + }; + break; + } + + Object.assign(answers, answer); + + return false; + } } ]); level[`${levelNumber}`].place_type = parent.parent; diff --git a/test/example.spec.js b/test/example.spec.js new file mode 100644 index 0000000..cb73162 --- /dev/null +++ b/test/example.spec.js @@ -0,0 +1,6 @@ + +describe('JEST unit test example', () => { + it('', async() => { + expect(2+2).toBe(4); + }); +}); diff --git a/test/mocks/mocks.js b/test/mocks/mocks.js new file mode 100644 index 0000000..e1c41e6 --- /dev/null +++ b/test/mocks/mocks.js @@ -0,0 +1,51 @@ +module.exports = { + stockCountScenario: { + initScenario: [ + 'init', + '2_levels', + 'c62_chw', + 'chw', + 'c52_supervisor', + 'supervisor', + 'Y', + 'stock_count', + '[{contact_type: \'c62_chw\', role: \'chw\', place_type: \'c60_chw_site\' },{contact_type: \'c52_supervisor\',role: \'supervisor\',place_type: \'c50_supervision_area\'}]', + 'action', + 'end_of_week', + ['Stock count', 'Stock count'], + 'patient_assessment_under_5', + 'Y', + 'now()', + 'malaria', + ['Category', 'Categorie'], + ['Category', 'Categorie'], + 'paracetamol', + ['Paracetamol', 'Paracetamole'], + 'Y', + ['Box of 8', 'Boite de 8'], + 8, + ['Tablet', 'Comprimes'], + 20, + 15, + 15, + 'by_user', + 0 + ], + productCategoryScenario: [ + 'malaria' + ], + productsScenario: [ + 'paracetamol___set', + 'paracetamol___unit', + 'paracetamol', + 'paracetamol___count' + ] + + } +}; + + + + + + diff --git a/test/project-config/app_settings/base_settings.json b/test/project-config/app_settings/base_settings.json new file mode 100644 index 0000000..c4ad669 --- /dev/null +++ b/test/project-config/app_settings/base_settings.json @@ -0,0 +1,107 @@ +{ + "app_url": "https://moh-mali-chw.dev.medicmobile.org", + "token_login": { + "enabled": true, + "translation_key": "sms.token.login.help" + }, + "sms": { + "outgoing_service": "rapidpro", + "rapidpro": { + "url": "https://rapidpro.app.medicmobile.org/" + } + }, + "locales": [ + { + "code": "en", + "name": "English" + }, + { + "code": "fr", + "name": "French" + } + ], + "locale": "fr", + "locale_outgoing": "fr", + "date_format": "ddd, Do MMM, YYYY", + "reported_date_format": "ddd, MMM Do, YYYY [at] h:mm A", + "forms_only_mode": false, + "task_days_overdue": true, + "roles": { + "dtc": { + "name": "usertype.dtc", + "offline": true + }, + "supervisor": { + "name": "usertype.supervisor", + "offline": true + }, + "chw": { + "name": "usertype.chw", + "offline": true + } + }, + "permissions": { + "can_access_gateway_api": [], + "can_aggregate_targets": [], + "can_view_messages": [], + "can_view_messages_tab": [] + }, + "place_hierarchy_types": [ + "c50_supervision_area", + "c60_chw_site", + "c70_village" + ], + "contact_types": [ + { + "id": "c50_supervision_area", + "name_key": "contact.type.c50_supervision_area", + "group_key": "contact.type.c50_supervision_area.plural", + "create_key": "contact.type.c50_supervision_area.new", + "edit_key": "contact.type.c50_supervision_area.edit", + "icon": "icon-manager", + "create_form": "form:contact:c50_supervision_area:create", + "edit_form": "form:contact:c50_supervision_area:edit" + }, + { + "id": "c60_chw_site", + "name_key": "contact.type.c60_chw_site", + "group_key": "contact.type.c60_chw_site.plural", + "create_key": "contact.type.c60_chw_site.new", + "edit_key": "contact.type.c60_chw_site.edit", + "parents": [ + "c50_supervision_area" + ], + "icon": "icon-chw-area", + "create_form": "form:contact:c60_chw_site:create", + "edit_form": "form:contact:c60_chw_site:edit" + }, + { + "id": "c52_supervisor", + "name_key": "contact.type.c52_supervisor", + "group_key": "contact.type.c52_supervisor.plural", + "create_key": "contact.type.c52_supervisor.new", + "edit_key": "contact.type.c52_supervisor.edit", + "parents": [ + "c50_supervision_area" + ], + "icon": "icon-manager", + "create_form": "form:contact:c52_supervisor:create", + "edit_form": "form:contact:c52_supervisor:edit", + "person": true + }, + { + "id": "c62_chw", + "name_key": "contact.type.c62_chw", + "group_key": "contact.type.c62_chw.plural", + "create_key": "contact.type.c62_chw.new", + "edit_key": "contact.type.c62_chw.edit", + "parents": [ + "c60_chw_site" + ], + "icon": "icon-chw", + "create_form": "form:contact:c62_chw:create", + "edit_form": "form:contact:c62_chw:edit", + "person": true + } + ] +} diff --git a/test/project-config/forms/app/care_of_pregnant_women_and_others.properties.json b/test/project-config/forms/app/care_of_pregnant_women_and_others.properties.json new file mode 100644 index 0000000..47dcbcb --- /dev/null +++ b/test/project-config/forms/app/care_of_pregnant_women_and_others.properties.json @@ -0,0 +1,18 @@ +{ + "title": [ + { + "locale": "en", + "content": "Care of Adult and pregnant women" + }, + { + "locale": "fr", + "content": "PEC adulte et femme enceinte" + } + ], + "context": { + "place": false, + "person": true, + "expression": "contact.contact_type === 'c92_household' && summary.alive && ageInYears(contact) >= 5 && user.role === 'chw'" + }, + "icon": "icon-healthcare-assessment" + } \ No newline at end of file diff --git a/test/project-config/forms/app/care_of_pregnant_women_and_others.xlsx b/test/project-config/forms/app/care_of_pregnant_women_and_others.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5d2687625f1a68a8342f02f3bddc0bdee181832e GIT binary patch literal 53203 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

ZBj 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 literal 0 HcmV?d00001 diff --git a/test/project-config/forms/app/patient_assessment_under_5.properties.json b/test/project-config/forms/app/patient_assessment_under_5.properties.json new file mode 100644 index 0000000..3b09815 --- /dev/null +++ b/test/project-config/forms/app/patient_assessment_under_5.properties.json @@ -0,0 +1,18 @@ +{ + "title": [ + { + "locale": "en", + "content": "CEP of the sick child" + }, + { + "locale": "fr", + "content": "PEC de l'enfant malade" + } + ], + "context": { + "place": false, + "person": true, + "expression": "contact.contact_type === 'c92_household' && summary.alive && ageInYears(contact) < 5 && user.role === 'chw'" + }, + "icon": "infant" +} diff --git a/test/project-config/forms/app/patient_assessment_under_5.xlsx b/test/project-config/forms/app/patient_assessment_under_5.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d28e763a2e34d036065da0bd31f518cf80e1062b GIT binary patch literal 81704 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 *rAHol*}&`6uxvjv5I1L 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 literal 0 HcmV?d00001 diff --git a/test/project-config/translations/messages-en.properties b/test/project-config/translations/messages-en.properties new file mode 100644 index 0000000..5479131 --- /dev/null +++ b/test/project-config/translations/messages-en.properties @@ -0,0 +1,332 @@ +contact.type.c10_central = Central level +contact.type.c10_central.plural = Central levels +contact.type.c10_central.new = New central level +contact.type.c10_central.edit = Edit central level +contact.type.c20_region = Region +contact.type.c20_region.plural = Regions +contact.type.c20_region.new = New region +contact.type.c20_region.edit = Edit region +contact.type.c30_district = District +contact.type.c30_district.plural = Districts +contact.type.c30_district.new = New district +contact.type.c30_district.edit = Edit district +contact.type.c40_health_area = Health Area +contact.type.c40_health_area.plural = Health Area +contact.type.c40_health_area.new = New Health Area +contact.type.c40_health_area.edit = Edit Health Area +contact.type.c50_supervision_area = Supervision area +contact.type.c50_supervision_area.edit = Edit supervision area +contact.type.c50_supervision_area.new = New supervision area +contact.type.c50_supervision_area.plural = Supervision area +contact.type.c60_chw_site = CHW Site +contact.type.c60_chw_site.edit = Edit CHW site +contact.type.c60_chw_site.new = New CHW site +contact.type.c60_chw_site.plural = CHW Sites +contact.type.c70_village = Village +contact.type.c70_village.edit = Edit village +contact.type.c70_village.new = New village +contact.type.c70_village.plural = Villages +contact.type.c80_concession = Concession +contact.type.c80_concession.edit = Edit concessions +contact.type.c80_concession.new = New concession +contact.type.c80_concession.plural = Concessions +contact.type.c90_household = Household +contact.type.c90_household.plural = Household +contact.type.c90_household.new = New household +contact.type.c90_household.edit = Edit household +contact.type.person = Person +contact.type.person.edit = Edit person +contact.type.person.new = New person +contact.type.person.plural = Persons +contact.type.c12_central = Person +contact.type.c12_central.edit = Edit person +contact.type.c12_central.new = New person +contact.type.c12_central.plural = Persons +contact.type.c22_region = Person +contact.type.c22_region.edit = Edit person +contact.type.c22_region.new = New person +contact.type.c22_region.plural = Persons +contact.type.c32_district = Person +contact.type.c32_district.edit = Edit person +contact.type.c32_district.new = New person +contact.type.c32_district.plural = Persons +contact.type.c42_health_area = Person +contact.type.c42_health_area.edit = Edit person +contact.type.c42_health_area.new = New person +contact.type.c42_health_area.plural = Persons +contact.type.c52_supervisor = Person +contact.type.c52_supervisor.edit = Edit person +contact.type.c52_supervisor.new = New person +contact.type.c52_supervisor.plural = Persons +contact.type.c62_chw = Person +contact.type.c62_chw.edit = Edit person +contact.type.c62_chw.new = New person +contact.type.c62_chw.plural = Persons +contact.type.c72_village = Person +contact.type.c72_village.edit = Edit person +contact.type.c72_village.new = New person +contact.type.c72_village.plural = Persons +contact.type.c82_concession = Person +contact.type.c82_concession.edit = Edit person +contact.type.c82_concession.new = New person +contact.type.c82_concession.plural = Persons +contact.type.c92_household = Person +contact.type.c92_household.edit = Edit person +contact.type.c92_household.new = New person +contact.type.c92_household.plural = Household members +contact.type.c74_community_actor = New Community Actor +contact.type.c74_community_actor.edit = Edit Community Actor +contact.type.c74_community_actor.new = New Community Actor +contact.type.c74_community_actor.plural = New Community Actors +contact.sex.male = Male +contact.sex.female = Female +contact.sex. = Undefined +person.field.telephone = phone +contact.pregnancy.lmp = Day of last menstruations +contact.pregnancy.estimated_delivery = Estimated delivery +contact.pregnancy.type = Type of pregnancy +contact.pregnancy.high_risk = High risque +contact.pregnancy.not_high_risk = No risque +contact-prgnancy-activity = Pregnacy Active +task.pregnancy_confirmation = Pregnancy Confirmation +task.child_longitudinal_followup_1_24 = Child Longitudinal Followup 1 to 24 month +task.child_longitudinal_followup_2_5 = Child Longitudinal Followup 2 to 5 years +task.child_longitudinal_followup_6_12 = Child Longitudinal Followup 6 to 12 years +task.child_longitudinal_followup_13_19 = Child Longitudinal Followup 13 to 19 years +task.newborn_registration = Newborn Registration +task.mother_referral_followup = Mother Referral Followup +task.cpon_realisation = Home birth reference +task.postnatal_followup = Postnatal Followup +task.treatment_followup_under_5 = Treatment Followup less than 5 years +task.referral_followup_under_5 = Referral Followup less than 5 years +task.treatment_referral_followup_under_5 = Follow-up Treatment after Referral less than 5 years +task.mas_followup_under_5 = MAS less than 5 years +task.mam_followup_under_5 = MAM less than 5 years +task.vaccine_followup_under_5 = Vaccine Followup less than 5 years +task.treatment_followup_multiple = Multiple Treatment Followup +task.treatment_followup_under_5.diarrhea = Diarrhea Treatment Followup +task.treatment_followup_under_5.pneumonia = Pneumonia Treatment Followup +task.treatment_followup_under_5.malaria = Malaria Treatment Followup +contact.delivery.number_pregnancy_confirmed = Pregnancy Confirmed +contact.delivery.number_of_children = Number of Newborn +contact.delivery.delivery_date = Delivery Date +contact.delivery.general = Delivery Details +contact.fp.general = Family Planning +contact.fp.recent_fp_method = Recent FP Method +contact.fp.state = Status +contact.fp.stop = Stop +contact.fp.in_progress = In Progress +task.pregnancy_followup = Pregnancy Followup +task.priority.high = High +enketo.geopicker.latitude = Latitude +enketo.geopicker.longitude = Longitude +enketo.geopicker.altitude = Altitude +enketo.geopicker.accuracy = Accuracy +enketo.geopicker.searchPlaceholder = Search for a place +enketo.selectpicker.noneselected = None +usertype.central_admin = Central Admin +usertype.national_admin = National Admin +usertype.district_admin = District Admin +usertype.dtc = DTC +usertype.supervisor = Supervisor +usertype.chw = CHW +usertype.oca = Other Community Actor +usertype.oca_supervisor = ADC(OCA Coach) +usertype.cvs = CVS +usertype.wash_comity = Wash Comity +usertype.savings = Savings Manager +usertype.manager_stock= Stock Warehouse Manager +vaccine.title = Vaccinations +contact.birth.certificate = Birth Certificate +contact.birth.certificate_number = Birth Certificate Number +contact.birth.certificate_date = Birth Certificate Date +task.overdue = Past due +task.overdue.days = {DAYS plural =0{Due today} =1{Due yesterday} other{Due \# days ago}} +task.days.left = {DAYS plural =1{1 day left} other{# days left}} +task.pregnancy_referral_followup = Pregnancy Referral Followup +task.anc_followup = ANC Visit Realization +task.fp_reference_followup = FP Reference {{contact.name}} +task.fp_renewal_followup = FP Followup +task.treatment_followup_over_5 = Treatment Followup +task.referral_followup_over_5 = Referral Followup over 5 +task.tb_treatment_followup = Weekly Treatment Follow-up TB +sms.token.login.help = Hi ready to start? You will need data and a good connection. Go to https://play.google.com/store/apps/details?id=org.medicmobile.webapp.mobile.moh_mali_chw&hl=en_US to install the app. After the installation click the next link to log in. +task.referral_followup=Referral +task.treatment.malaria=Malaria followup +task.treatment.diarrhea=Diarrhea followup +task.treatment.ari=Pneumonia followup +task.treatment.multiple=Treatment followup +task.treatment.malnutrition=Malnutrition +task.pnc_followup=Postnatal realization +task.anc_supervision_followup=Antenatal realization +task.newborn_followup=Newborn followup +task.prenatal_followup=Prenatal followup +task.supervision_visit_realization=Supervision visit +task.supervision_with_chw_confirmation=Visit with CHW +task.supervision_without_chw_confirmation=Visit without CHW +task.individual_feedback_confirmation=Individual feedback +task.oca_individual_feedback_confirmation = Individual Meeting Realization +task.oca_supervision_visit_realization=Coaching Visit Realization (PC) +task.oca_supervision_visit_scheduling=Coaching visit scheduling (PC) +task.meeting_with_authorities_realization=Meeting with authorities after coaching +task.visit_with_pc_realization=Visit Realization with the PC +task.visit_realisation_without_pc= Visit Realization to households without the PC +task.sebac_alert_sort = Alert sorting +task.sebac_alert_sort_not_done = Alert sorting not done +task.sebac_alert_sort_2 = Alert sorting 2 +task.sebac_alert_verification=Alert Verification +task.sebac_verification_notification=Alert Verification Notification +task.sebac_verification_result=Alert Verification Result +task.sebac_test_result_reminder=Test Result Reminder +task.sebac_result_notification=Test Result Notification +task.sebac_alert_dtc_notification=Alert Notification +target.home_visits=# Home visit +target.2-home-visits-per-fam=% households who received ≥2 VAD +target.chv-receive-supervision-visit=% of CHVs who received a 360 degree supervision visit +target.patient_assessment-24h=% of children <5 years who received care within 24 hours of the onset of illness +target.patient_assessment_over_5-24h=% of children> = 5 years who received care within 24 hours of the beginning of their illness +target.preg-first-trimester=% of pregnancies diagnosed in the first trimester +target.protocol-error-percentage=% of the evaluations without protocol errors +target.protocol-error-count=# total protocol errors +target.danger-signs-without-accompany=Sign(s) of danger without reference or accompaniment to the CSCOM +target.symptoms-of-malaria-without-tdr=Malaria sign TDR malaria not realized +target.fever-without-tdr=Presence of fever RDT malaria not achieved +target.tdr-without-malaria=CTA given by the ASC TDR negative malaria +target.incorrect-dosage-of-act-based-combination=CTA dose given by incorrect ASC +target.diarrhea-without-zinc=Diarrhea without zinc administration +target.incorrect-dosage-of-zinc=Zinc dose given by incorrect ASC +target.pneumonia-without-amoxicillin=Pneumonia without amoxicillin +target.amoxicillin-without-pneumonia=Amoxicillin without pneumonia +target.incorrect-dosage-of-amoxicillin=Amoxicillin dose given by the incorrect ASC +target.muac-yellow-incomplete-drugs=Shakir band in yellow without complete treatment on the first day +target.incorrect-dosage-of-vitamin-a=Vitamin A dose given by the incorrect ASC +target.incorrect-dosage-of-albendazole=Albendazol dose given by incorrect ASC +target.incorrect-dosage-of-paracetamol=Paracetamol dose given by the incorrect ASC +target.no-24h-follow-up=No 24h follow-up +target.no-48h-follow-up=No 48h follow-up +target.no-72h-follow-up=No 72h follow-up +target.no-120h-follow-up=No follow-up of 5th d ay (For IRA or Diarrhea) +target.aggrevated-no-accompany=Aggravated condition at 24H or 48H or 72H or day 5 without reference / accompaniment at the CSCOM +target.unchanged-no-accompany=No change at 48H or 72H or 5th day without reference / accompaniment at the CSCOM +target.not-improved-3d-no-accompany=Not improved or not cured at 72H without reference / accompaniment at the CSCOM +target.not-improved-5d-no-accompany=Not improved or not cured the 5th without reference / accompaniment to the CSCOM +target.chw_observed_during_assessment.title= % of CHW observed by dedicated supervisor during the care of a patient +target.chw_rdts_correctly_carried_out.title= Number of Malaria RDTs correctly carried out by the CHW during supervision +target.chw_rdts_carrying_out_malaria.title= Number CHW observed by the SD for carrying out the Malaria RDT +contact.profile.death.date = Date of death +contact.profile.death.place = Place of death +contact.profile.death.title = Death +contact.profile.value.unknown = Unknown +contact.profile.death.places.village = At the village +contact.profile.death.places.home = At home +contact.profile.death.places.other = Other +contact.profile.death.places.undefined = Unknown +target.childcare_by_chw.title = Number of new curative consultations for children under 5 by CHW +target.childcare_by_chw.fever.title = Number of RDTs performed in children under 5 years old with fever +target.childcare_by_chw.diarrhea.title = Number of children under 5 years old with diarrhea treated with zinc and SRO by CHW +target.childcare_by_chw.pneumonia.title = Number of children under 5 years old with pneumonia treated with Amoxicillin by CHW +target.childcare_by_chw.cough_cold_ari.title = Number of children under 5 years old with Cough/Cold treated by CHW +target.child_uncomplicated_malaria.title = Number of children under 5 years old with uncomplicated malaria confirmed by RDT and treated by CTA by the CHW +target.childcare_by_chw.malnourished.title = Children detected malnourished +target.childcare_by_chw.moderate_acute_malnutrition.title = Number of children under 5 years old with moderate acute malnutrition treated by CHW +target.childcare_by_chw.uncomplicated_severe_malnutrition.title = Number of children under 5 years old with severe acute malnutrition without complications treated with plumpy nut by CHWs +target.uncomplicated_malaria_5_plus.title = Number of children over 5 years old with uncomplicated malaria confirmed by RDT and treated by CTA by CHW +target.pregnant_with_uncomplicated_malaria_rdt_cta.title = Proportion of pregnant women with uncomplicated malaria confirmed by RDT and treated with CTA by CHWs. +target.newborns_followed_first_7_days = Newborns followed within the first 7 days of life +target.newborns_followed_declared = Newborns declared to the civil registry +target.new_fp_user = New FP users in CHW site +target.proportion_with_danger_case = Proportion of cases with a danger or alert sign referred by the CHW +target.proportion_children_fully_vaccinated = Proportion of children from 0 to 23 months fully vaccinated +target.new_patient_followed_by_community_agent = New patients in treatment followed +target.presumptive_tb_followed_by_community_agent = Presumptive TB cases referred +target.home_visit_chw = Total of Home visits +target.chw_talks = Talks made +target.tb_cases_lost = Cases TB of loss of sight +target.household_with_hand_washing = Proportion of households with a hand washing device (functional with water and soap) +target.household_with_improved_latrine = Proportion (Percentage) of households using an improved latrine +target.cvss.household_as_member.title = Number of households joining the CVSS +target.cvss.individual_as_member.title = Number of individual CVSS memberships +target.village_motivation_mecanism.title = Number of CVSS villages with a CHW motivation mechanism +target.village_promotional_activities.title = Number of CVSS villages having supported other health promotion activities +target.cvss.nutritional_demonstration.title = Number of CVSS having supported nutritional demonstrations +target.cvss_total_expense_transportation.title = Amount of expenses on transport (pregnant women and children under five) +target.cvss_total_expense_nd.title = Amount of expenses on nutrition demonstrations +target.cvss_member_total_expense.title = Amount of expenses recorded by CVSS members +target.village_transportation_mecanism.title = Number of villages with transport mechanism +target.fonctional_transportation.title = Number of villages with a functioning transport mechanism +target.cvss.individual_leaving_cvss.title = Number of people who left CVSS fund +target.cvss.household_leaving_cvss.title = Number of households that left CVSS fund +target.cvss_under_5_transported_title = Number of children under 5 transported by the transport mechanism +target.cvss_pregnant_woman_transported_title = Number of pregnant women transported by the transport mechanism +target.cvss_postpartum_woman_transported_title = Number of Postpartum women transported by the transport mechanism +target.cvss_average_contribution.title = Average contribution of health solidarity funds for the period +target.cvss.cvss_total_contribution.title = Total Contribution +target.cvss.cvss_donation_diaspora.title = Amount mobilized from the diaspora +target.cvss.cvss_donation_private_sector.title = Amount mobilized from the private sector +target.chw_helped_in_nature_by_community.title = Number of CHWs having received in nature support +target.chw_financially_helpedby_community.title = Number of CHWs having received motivation from CVSS +target.rdts_carried_out_5_plus_with_fever.title = Number of RDTs performed in those over 5 years old with fever +target.number_of_traitments_followup_carried_out.title = Number of follow-up treatment carried out PEC of cases by CHW +target.chw_site_visited_in_community_without_chw.title = % CHW site visited in community without CHW +target.chw_having_had_an_individual_meeting_with_the_supervisor.title = % Of CHWs having had an individual meeting with the supervisor +target.percentage_chw_received_visit_sd.title = % of CHWs having received a dedicated supervision visit with all steps +target.number_of_children_zero_doses.title = Number of children (0 to 23 months) with 0 doses +target.number_of_children_vaccination_not_up_to_date.title = Number of children (0 to 23 months) with vaccination not up to date +contact.savings.title = CVSS Group Contact Card +contact.savings.manager.name = CVSS Manager's name +contact.savings.cvss_balance = Available Balance +contact.savings.manager.phone = Manager Phone number +contact.savings.total_members = Total number of CVSS members +contact.savings.total_amount_contributed = Total amount contributed +contact.savings.total_loan_disbursed = Loan disbursed +contact.savings.total_loan_paid = Loan Imbursed +contact.savings.loan_balance = Loan balance +contact.savings.total_expenses = Total expenses +contact.savings.total_disbursement = Total Amount Disbursed +contact.savings.beneficiary.title = Beneficiary Contact Card +contact.savings.beneficiary.total_contribution = Total contribution Record +contact.savings.beneficiary.total_expense = Total Expense Record +contact.savings.total_loan = Total Loan +contact.savings.beneficiary.loan_balance = Total Loan Balance +task.savings.loan_reminder = Loan Reminder +task.savings.confirmation_of_expenditure = Confirmation of expenditure +task.savings.loan_reimbursement = Loan Reimbursement +target.home_visit_gsan = Proportion of home visits made +target.gsan_affected_men = Men affected +target.gsan_affected_women = Women affected +target.gsan_affected_men_chat = Men reached during educational talks +target.gsan_affected_women_chat = Women reached during educational talks +target.gsan_chat_proportion = Proportion of talks carried out +target.gsan_affected_men_genre = Men sensitized on the gender approach +target.gsan_affected_women_genre = Women sensitized on the gender approach +target.chw_promo_pregnancy = Home visits made for promotional activities + follow-up of the pregnant woman +target.curative_home_visits = Home visits made for curative activities +vaccine.status.no_dose = Zero Dose +vaccine.status.full_dose = Complet +vaccine.status.partial_dose = Incomplet +child.civil_status = Civil status +child.civil_status.declared = Declared child +child.civil_status.not_declared = Not declared child +child.schooling = Schooling +child.schooling.not_schooled = Not schooled +child.schooling.schooled = Schooled +child.schooling.waiting = Waiting +reports.sidebar.filter.title = Filter +reports.sidebar.filter.form_type = Form Type +reports.sidebar.filter.place = Place +reports.sidebar.filter.date = Date +reports.sidebar.filter.status = Status +search_bar.filter.label = Filter +fast_action_button.title = New +contact.child.mother.indicator.title = Child and mother's indicators +contact.child.mother.indicator.pregnant_from_15_49 = Number of pregnant women from 15-49 years old +contact.child.mother.indicator.health_facility.delivery = Number of pregnant women who gave birth in a health facility +contact.child.mother.indicator.exclusive.breastfeeding = Number of children under 6 months exclusively breastfed +contact.child.mother.indicator.no.vaccine = Number of children who have not received any vaccine +contact.child.mother.indicator.fully.immunized = Number of children fully immunized +contact.child.mother.indicator.early.learning = Number of children aged 2-5 years who have benefited from early learning +contact.child.mother.indicator.improved.latrine = Number of households with improved latrine +contact.child.mother.indicator.potable.water = Number of households with access to drinking water +contact.child.mother.indicator.cash.transfert = Number of households that have benefited from cash transfers +contact.child.mother.indicator.sexual.mutilation = Number of children with sexual mutilations +contact.child.mother.indicator.malnutrition = Number of children aged 6-59 months having been screened for malnutrition in a household diff --git a/test/project-config/translations/messages-fr.properties b/test/project-config/translations/messages-fr.properties new file mode 100644 index 0000000..7031adb --- /dev/null +++ b/test/project-config/translations/messages-fr.properties @@ -0,0 +1,467 @@ +contact.type.c10_central = Niveau Central +contact.type.c10_central.plural = Niveaux Centraux +contact.type.c10_central.new = Ajouter niveau central +contact.type.c10_central.edit = Modifier niveau central +contact.type.c20_region = Région +contact.type.c20_region.plural = Régions +contact.type.c20_region.new = Ajouter région +contact.type.c20_region.edit = Modifier région +contact.type.c30_district = District +contact.type.c30_district.plural = Districts +contact.type.c30_district.new = Ajouter district +contact.type.c30_district.edit = Modifier district +contact.type.c40_health_area = Aire de santé +contact.type.c40_health_area.plural = Aires de santé +contact.type.c40_health_area.new = Ajouter Aire de santé +contact.type.c40_health_area.edit = Modifier Aire de santé +contact.type.c50_supervision_area = Zone de Supervision +contact.type.c50_supervision_area.edit = Modifier zone de supervision +contact.type.c50_supervision_area.new = Nouvelle zone du supervision +contact.type.c50_supervision_area.plural = Zones de Supervision +contact.type.c60_chw_site = Site ASC +contact.type.c60_chw_site.edit = Modifier site ASC +contact.type.c60_chw_site.new = Nouveau site ASC +contact.type.c60_chw_site.plural = Sites ASC +contact.type.c70_village = Village +contact.type.c70_village.edit = Modifier Village +contact.type.c70_village.new = Nouveau Village +contact.type.c70_village.plural = Villages +contact.type.c80_concession = Concession +contact.type.c80_concession.edit = Modifier Concession +contact.type.c80_concession.new = Nouvelle Concession +contact.type.c80_concession.plural = Concession +contact.type.c90_household = Ménage +contact.type.c90_household.plural = Ménages +contact.type.c90_household.new = Ajouter ménage +contact.type.c90_household.edit = Modifier ménage +contact.type.person = Personne +contact.type.person.edit = Modifier personne +contact.type.person.new = Nouvelle personne +contact.type.person.plural = Personnes +contact.type.c12_central = Personne +contact.type.c12_central.edit = Modifier personne +contact.type.c12_central.new = Nouvelle personne +contact.type.c12_central.plural = Personnes +contact.type.c22_region = Personne +contact.type.c22_region.edit = Modifier personne +contact.type.c22_region.new = Nouvelle personne +contact.type.c22_region.plural = Personnes +contact.type.c32_district = Personne +contact.type.c32_district.edit = Modifier personne +contact.type.c32_district.new = Nouvelle personne +contact.type.c32_district.plural = Personnes +contact.type.c42_health_area = Personne +contact.type.c42_health_area.edit = Modifier personne +contact.type.c42_health_area.new = Nouvelle personne +contact.type.c42_health_area.plural = Personnes +contact.type.c52_supervisor = Personne +contact.type.c52_supervisor.edit = Modifier personne +contact.type.c52_supervisor.new = Nouvelle personne +contact.type.c52_supervisor.plural = Personnes +contact.type.c62_chw = Personne +contact.type.c62_chw.edit = Modifier personne +contact.type.c62_chw.new = Nouvelle personne +contact.type.c62_chw.plural = Personnes +contact.type.c72_village = Personne +contact.type.c72_village.edit = Modifier personne +contact.type.c72_village.new = Nouvelle personne +contact.type.c72_village.plural = Personnes +contact.type.c82_concession = Personne +contact.type.c82_concession.edit = Modifier personne +contact.type.c82_concession.new = Nouvelle personne +contact.type.c82_concession.plural = Personnes +contact.type.c92_household = Personne +contact.type.c92_household.edit = Modifier personne +contact.type.c92_household.new = Nouvelle personne +contact.type.c92_household.plural = Membre du ménage +contact.type.c74_community_actor = Nouveau Acteur Communautaire +contact.type.c74_community_actor.edit = Modifier Acteur Communautaire +contact.type.c74_community_actor.new = Nouveau Acteur Communautaire +contact.type.c74_community_actor.plural = Nouveaux Acteurs Communautaires +contact.sex.male = Homme +contact.sex.female = Femme +contact.sex. = Non Definis +person.field.telephone = Téléphone +contact.pregnancy.lmp = Date des dernières règles +contact.pregnancy.estimated_delivery = Date estimative de l''accouchement +contact.pregnancy.type = Type de grossesse +contact.pregnancy.high_risk = Haut risque +contact.pregnancy.not_high_risk = Aucun risque +contact-prgnancy-active = Grossesse Active +task.child_longitudinal_followup_1_24 = Suivi longitudinal de l'enfant 1 à 24 mois +task.child_longitudinal_followup_2_5 = Suivi longitudinal de l'enfant 2 à 5 ans +task.child_longitudinal_followup_6_12 = Suivi longitudinal de l'enfant 6 à 12 ans +task.child_longitudinal_followup_13_19 = Suivi longitudinal de l'enfant 13 à 19 ans +task.newborn_registration = Création Profil enfant +task.mother_referral_followup = Suivi Référence Mère +task.cpon_realisation = Référence naissance à domicile +task.postnatal_followup = Suivi Après Naissance +task.treatment_followup_under_5 = Suivi traitement moins de 5 ans +task.referral_followup_under_5 = Suivi référence moins de 5 ans +task.treatment_referral_followup_under_5 = Suivi traitement après Référence moins de 5 ans +task.mas_followup_under_5 = Suivi malnutrition (MAS Sans Complication) moins de 5 ans +task.mam_followup_under_5 = Suivi MAM moins de 5 ans +task.vaccine_followup_under_5 = Suivi vaccinal moins de 5 ans +task.treatment_followup_multiple = Suivi Traitement Multiple +task.treatment_followup_under_5.diarrhea = Suivi Traitement Diarrhée +task.treatment_followup_under_5.pneumonia = Suivi Traitement Pneumonie +task.treatment_followup_under_5.malaria = Suivi Traitement Paludisme +contact.delivery.number_pregnancy_confirmed = Grossesses Confirmées +contact.delivery.number_of_children = Nombre de nouveaux nés +contact.delivery.delivery_date = Date d'accouchement +contact.delivery.general = Informations accouchements +task.pregnancy_followup = Suivi Grossesse +task.priority.high = Elévé +enketo.geopicker.latitude = Latitude +enketo.geopicker.longitude = Longitude +enketo.geopicker.altitude = Altitude +enketo.geopicker.accuracy = Précision +enketo.geopicker.searchPlaceholder = Rechercher un lieu +enketo.selectpicker.noneselected = Non Sélectionner +usertype.central_admin = Central Admin +usertype.national_admin = National Admin +usertype.district_admin = District Admin +usertype.dtc = DTC +usertype.supervisor = Supervisor +usertype.chw = ASC +usertype.oca = Autre acteur communautaire +usertype.oca_supervisor = ADC(OCA Coach) +usertype.cvs = CVS +usertype.wash_comity = Comité WASH +usertype.savings = Manager CVSS +usertype.manager_stock = Responsable Approvisionnement +task.pregnancy_confirmation = Confirmation de la grossesse +contact.birth.certificate = Acte de naissance +contact.birth.certificate_number = Numero de l''acte de naissance +contact.birth.certificate_date = Date de délivrance +contact.fp.general = Planning Familial +contact.fp.recent_fp_method = Méthode de PF Récente +contact.fp.state = Status +contact.fp.stop = Arrêt +contact.fp.in_progress = En cours +task.overdue = Aujourd’hui +task.overdue.days = {DAYS plural =0{Aujourd''hui} =1{Retard d''1 jour} other{Retard de \# jours}} +task.days.left = {DAYS plural =1{1 jour restant} other{# jours restant}} +task.pregnancy_referral_followup = Suivi Référence Femme enceinte +task.anc_followup = Réalisation Visite CPN +task.fp_reference_followup = Référence FP {{contact.name}} +task.fp_renewal_followup = Suivi PF +task.treatment_followup_over_5 = Suivi traitement +task.referral_followup_over_5 = Suivi référence +5 ans +task.tb_treatment_followup = Suivi Traitement Hebdomadaire TB +admin.display = Affichage +admin.display.datetime = Date et heure +admin.targets.description = Si désactivé l'onglet cible sera masqué pour tous les utilisateurs. Un objectif de -1 montrera une cible sans objectif. +app.name = Application +branding.favicon.field = Petite icône +branding.logo.field = Logo +branding.title.field = Titre +branding.title.field.help = Affichera les installations PWA. Devrait être au moins 144 pixels carrés. +configuration.sms = SMS +configuration.sms.forms = Formes SMS +configuration.sms.forms.title = Vous devez choisir à la fois un fichier XML et un fichier META avant de cliquer sur le bouton Télécharger. Vous ne pouvez télécharger qu'un seul fichier de formulaire d'application à la fois et tous les formulaires existants seront écrasés. +configuration.sms.settings = Paramètres de base +configuration.sms.test.description = Utilisez cette page pour envoyer un message de test à l'application de production sans passer par la passerelle SMS. Assurez-vous d'utiliser un numéro de téléphone enregistré dans le profil d'un ASC pour imiter un rapport venant de lui sur un patient particulier. +configuration.sms.test.from.number = À partir du numéro de téléphone +configuration.sms.test.message.description = Limite de 144 caractères +configuration.sms.test.number.validation.description = Veuillez saisir un numéro de téléphone valide sans tirets ni ponctuation. +configuration.sms.test.title = Message d'essai +display.language.accordion.title = Les langages activés seront disponibles pour les utilisateurs en option lorsqu'ils sélectionnent leur langue principale. Nous vous recommandons de choisir 1 à 3 langues prises en charge et de désactiver le reste. Parmi les langues prises en charge activées il devrait y avoir 0 traduction manquante. +display.privacy.policies.current = Politique actuelle +display.privacy.policies.select = Sélectionnez le fichier HTML +display.privacy.policies.title = Les politiques de confidentialité +display.privacy.policies.update = Mettre à jour la politique +display.privacy.policies.upload = Soumettre pour télécharger des modifications. +display.translation.description = Veuillez noter que toutes les modifications ou ajouts que vous apportez ici aux traductions ne sont pas actuellement enregistrés ou suivis ailleurs. +edit.name = Modifier le nom +export.dhis.dataset.description = Sélectionnez parmi les intégrations DHIS2 disponibles. +export.dhis.dataset.label = Ensemble de données DHIS2 +export.dhis.description = Téléchargez un fichier contenant un DHIS2 DataValueNeset pour intégrer avec DHIS2. +export.dhis.period.description = Sélectionnez parmi les intervalles de temps mensuels disponibles. +export.dhis.period.label = Filtre par période +export.dhis.place.all = Tous les lieux +export.dhis.place.description = Filtrez des données exportées pour inclure des données associées aux contacts sous cet endroit dans la hiérarchie. +export.dhis.place.label = Filtre par lieu +export.feedback.description = Téléchargez un journal des erreurs détectées et des commentaires des utilisateurs soumis via la fonction «Bug de rapport» au format CSV. Le tableau ci-dessous montre les rapports les plus récemment soumis. +export.messages.description = Téléchargez tous les messages qui ont jamais été envoyés ou reçus au format CSV. +export.people.description = Téléchargez tous les contacts enregistrés dans le système au format JSON. +export.reports.description = Le lancement d'Android Apps n'est pas disponible sur cet appareil. +icon.library = Bibliothèque d'icônes CHT +images.header.tabs.icons = Icônes des onglets d'en-tête +images.header.tabs.icons.default = Icône par défaut +images.header.tabs.icons.description = Configurer les icônes d'onglet d'en-tête. Vous pouvez choisir entre les icônes d'application au format .svg et les icônes Fontawesome. +images.header.tabs.icons.fa.icon = Icône Fontawesome +images.header.tabs.icons.fontawesome.link = En savoir plus sur Fontawesome. +images.header.tabs.icons.resource.icon = Icône de ressources +images.header.tabs.icons.tab = Languette +images.icons.description = Les images téléchargées ici sont utilisées dans l'application à divers endroits comme spécifié dans le code d'application. Par exemple l'image qui apparaît pour un widget particulier dans la page cible est spécifiée dans le code cible. Vous pouvez télécharger des images un à la fois et si vous téléchargez une image avec le même nom qu'une image existante elle sera écrasée avec le nouveau fichier. Il est recommandé que les images soient au format .svg ou .png et aient une taille inférieure à 500 Ko. Des ressources sont disponibles dans le +images.partners.description = Tous les logos partenaires qui sont ajoutés ici seront affichés sur la page "À propos" de l'application. +partner.logo.field = Logo partenaire +partner.logo.upload = Télécharger le logo du partenaire +partner.name.field = Nom de partenaire +partner.tab.partners = Les partenaires +permission.description.can_access_gateway_api = Autorisé à accéder aux API pour agir comme une passerelle SMS. +permission.description.can_aggregate_targets = Page des agrégats cibles autorisés +permission.description.can_bulk_delete_reports = Autorisé à utiliser des fonctions de suppression en vrac pour supprimer plusieurs rapports. +permission.description.can_configure = Autorisé à configurer toutes les configurations d'application. +permission.description.can_create_people = Autorisé à créer de nouvelles personnes. +permission.description.can_create_places = Autorisé à créer de nouveaux lieux. +permission.description.can_create_records = Autorisé à accéder aux API pour créer des rapports. +permission.description.can_create_users = Autorisé à créer des utilisateurs. +permission.description.can_delete_contacts = Autorisé à supprimer des personnes et des lieux. +permission.description.can_delete_messages = Autorisé à supprimer les messages. +permission.description.can_delete_reports = Autorisé à supprimer les rapports. +permission.description.can_delete_users = Autorisé à supprimer les utilisateurs. +permission.description.can_edit = Autorisé à créer et à modifier des documents dans la base de données. +permission.description.can_edit_profile = Autorisé à modifier leurs propres paramètres utilisateur. +permission.description.can_edit_verification = Autorisé à mettre à jour les statuts de vérification des rapports. +permission.description.can_export_all = Autorisé à exporter toutes les données même s'ils n'auraient généralement pas la permission de les visualiser. +permission.description.can_export_contacts = Autorisé à exporter tous les contacts. +permission.description.can_export_feedback = Autorisé à exporter tous les commentaires de l'utilisateur. +permission.description.can_export_messages = Autorisé à exporter tous les rapports et messages. +permission.description.can_log_out_on_android = Autorisé à déconnecter de l'application Android. +permission.description.can_update_places = Autorisé à mettre à jour les documents de lieu existants. +permission.description.can_update_reports = Autorisé à mettre à jour les documents de rapport existants. +permission.description.can_update_users = Autorisé à mettre à jour les utilisateurs existants. +permission.description.can_verify_reports = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_analytics = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_analytics_tab = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_call_action = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_contacts = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_contacts_tab = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_last_visited_date = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_message_action = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_messages = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_messages_tab = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_outgoing_messages = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_reports = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_reports_tab = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_tasks = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_tasks_tab = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_unallocated_data_records = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_view_users = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +permission.description.can_write_wealth_quintiles = Autorisé à mettre à niveau la version CHT Core Framework via l'interface API ou Admin. +submit.icon = Icône de téléchargement +unique.id = Identifiant unique +upload = Télécharger +upload.sms.forms = Télécharger les formulaires SMS +admin.app.name = Configuration de l’application +Cancel = Annuler +Import\ from\ file = Importer à partir d’un fichier +Add\ User = Ajouter un utilisateur +To\ add\ multiple\ users\ please\ upload\ the\ appropriate\ spreadsheet. = Pour ajouter plusieurs utilisateurs veuillez charger le fichier approprié. +Only\ .csv\ file\ are\ accepted. = Seuls les fichiers .csv sont acceptés. +Upload\ .csv = Charger le .csv +Are\ you\ sure\ you\ want\ to\ upload = Voulez-vous vraiment charger le fichier? +Yes\ upload = Oui charger +Processing\ users = Traitement des utilisateurs en cours +This\ process\ can\ take\ a\ long\ time\ if\ you''re\ uploading\ a\ lot\ of\ users\ please\ be\ patient. = Le traitement peut prendre un peu de temps si vous importez un grand nombre d’utilisateurs s’il vous plait soyez patient. +Currently\ unavailable = Actuellement indisponible +Someone\ else\ in\ the\ system\ is\ currently\ in\ the\ process\ of\ adding\ multiple\ users. = Quelqu’un d’autre dans le système est actuellement en train d’importer des utilisateurs. +users\ added = utilisateurs ajoutés +previously\ imported = déjà importés +contained\ errors = contenant des erreurs +Click = Cliquez +here = ici +to\ download\ your\ status\ file. = pour télécharger le rapport de traitement +To\ resubmit\ the\ users\ containing\ errors\ \: = Pour corriger les erreurs et soumettre à nouveau : +1.\ Open\ the\ downloaded\ status\ file = 1. Ouvrir le rapport de traitement téléchargé +2.\ Cross-reference\ the\ errors\ against\ your\ formatted\ spreadsheet = 2. Comparer et croiser les erreurs avec le fichier formatté +3.\ Correct\ rows\ with\ errors\ and\ export\ to\ .csv = 3. Corriger les lignes contenant les erreurs et exporter le fichier au format csv +4.\ Reupload\ updated\ spreadsheet = 4. Charger de nouveau le fichier +Back\ to\ user\ list = Retour à la liste des utilisateurs +upgrade.description = Pour mettre à niveau votre application vers une version une bêta ou une branche spécifique il est recommandé d'effectuer une première étape en cliquant sur "Staging". Cela permet d'effectuer un travail de fond pour préparer l'installation sans interrompre les utilisateurs. Une fois la mise en scène terminée cliquez sur Installer pour procéder à la mise à niveau. Cette action ne peut pas être annulée alors assurez-vous que vos données ont été sauvegardées et que vos utilisateurs sont informés de l'interruption de service. +instance.upgrade.date = Date de mise à jour +users.manage.add_single_user = Ajouter un utilisateur +users.manage.back = Retour à la liste des utilisateurs +users.manage.import_users = Importer à partir d'un fichier +login.unsupported_browser = Pour une meilleure experience avec l'application veuillez contacter l'administrator ou votre superviseur. +login.unsupported_browser.outdated_cht_android = Demander leur de mettre à niveau cht-android. +login.unsupported_browser.outdated_webview_apk = Demander leur de mettre à niveau l'apk webview. +login.unsupported_browser.outdated_browser = Demander leur de mettre à niveau leur navigateur. +task.referral_followup=Suivi référence +task.treatment.malaria=Suivi traitement malaria +task.treatment.diarrhea=Suivi traitement diarhée +task.treatment.ari=Suivi traitement pneumonie +task.treatment.multiple=Suivi traitement multiple +task.treatment.malnutrition=Suivi traitement malnutrition +task.pnc_followup=Suivi réalisation CPON +task.anc_supervision_followup=Suivi réalisation CPN +task.newborn_followup=Suivi Nouveau-né +task.prenatal_followup=Suivi CPN +task.supervision_visit_realization=Réalisation de la visite de Supervision +task.supervision_with_chw_confirmation=Visite du site d''ASC +task.supervision_without_chw_confirmation=Visite dans la communauté sans l''ASC +task.individual_feedback_confirmation=Rencontre Individuelle +task.oca_supervision_visit_realization=Réalisation de la visite de coaching de la PC +task.oca_supervision_visit_scheduling=Planification de la visite de coaching (PC) +task.meeting_with_authorities_realization=Réalisation de la réunion avec les autorités +task.visit_with_pc_realization=Réalisation Visite Avec la PC +task.visit_realisation_without_pc=Réalisation Visite des Ménages sans PC +task.oca_individual_feedback_confirmation = Réalisation Rencontre individuelle +task.sebac_alert_sort = Tri de l'alerte +task.sebac_alert_sort_not_done = Tri de l'alerte non réalisé +task.sebac_alert_sort_2 = Tri de l'alerte 2 +task.sebac_alert_verification=Vérification d'Alerte +task.sebac_verification_notification=Notification Vérification d'Alerte +task.sebac_verification_result=Résultat Vérification d'Alerte +task.sebac_test_result_reminder=Rappel des Résultat des Tests +task.sebac_result_notification=Notification Résultat Tests +task.sebac_alert_dtc_notification=Notification d'Alerte +target.home_visits=Visite à domicile +target.2-home-visits-per-fam=% de ménages ayant reçu ≥2 VAD +target.chv-receive-supervision-visit=% des ASC ayant reçu de visite de supervision 360 degré +target.patient_assessment-24h=% <5 ans ayant reçu de soins dans les 24H du début de la maladie +target.patient_assessment_over_5-24h=% >5 ans ayant reçu de soins dans les 24H du début de la maladie +target.preg-first-trimester=% des grossesses diagnostiquées dans le premier trimestre +target.protocol-error-percentage=% des évaluations sans erreur de protocole +target.protocol-error-count=# Total des erreurs de protocole +target.danger-signs-without-accompany=Signe (s) de danger sans référence ou accompagnement au CSCOM +target.symptoms-of-malaria-without-tdr=Signe de paludisme TDR paludisme pas réalisé +target.fever-without-tdr=Présence de fièvre TDR paludisme pas réalisé +target.tdr-without-malaria=CTA donnée par l''ASC TDR paludisme négatif +target.incorrect-dosage-of-act-based-combination=Dose de CTA donnée par l''ASC incorrecte +target.diarrhea-without-zinc=Diarrhée sans administration de zinc +target.incorrect-dosage-of-zinc=Dose de Zinc donnée par l''ASC incorrecte +target.pneumonia-without-amoxicillin=Pneumonie sans amoxicilline +target.amoxicillin-without-pneumonia=Amoxicilline sans pneumonie +target.incorrect-dosage-of-amoxicillin=Dose d''amoxicilline donnée par l''ASC incorrecte +target.muac-yellow-incomplete-drugs=Bande de Shakir au jaune sans traitement au complet le premier jour +target.incorrect-dosage-of-vitamin-a=Dose de vitamine A donnée par l''ASC incorrecte +target.incorrect-dosage-of-albendazole=Dose d''Albendazol donnée par l''ASC incorrecte +target.incorrect-dosage-of-paracetamol=Dose de paracetamol donnée par l''ASC incorrecte +target.no-24h-follow-up=Pas de suivi de 24H +target.no-48h-follow-up=Pas de suivi de 48H +target.no-72h-follow-up=Pas de suivi de 72H +target.no-120h-follow-up=Pas de suivi de 5eme jour (Pour IRA ou Diarrhée) +target.aggrevated-no-accompany=Etat aggravé à 24H ou 48H ou 72H ou 5eme jour sans référence/accompagnement au CSCOM +target.unchanged-no-accompany=Pas de changement à 48H ou 72H ou 5eme jour sans référence/accompagnement au CSCOM +target.not-improved-3d-no-accompany=Pas amélioré ou pas guéri à 72H sans référence/accompagnement au CSCOM +target.not-improved-5d-no-accompany=Pas amélioré ou pas guéri le 5eme sans référence/accompagnement au CSCOM +sms.token.login.help = +contact.profile.death.date = Date de décès +contact.profile.death.place = Lieu du décès +contact.profile.death.title = Décès +contact.profile.value.unknown = Inconnu +contact.profile.death.places.village = Au village +contact.profile.death.places.home = A la maison +contact.profile.death.places.other = Autre +contact.profile.death.places.undefined = Inconnu +sync.now = Rafraîchir +Report\ Bug = Reporter une erreur +target.childcare_by_chw.title = Nombre de nouvelles consultations curatives d’enfants de moins de 5 ans par les ASC +target.childcare_by_chw.fever.title = Nombre de TDR réalisé chez les enfants de moins de 5 ans présentant une fièvre +target.childcare_by_chw.diarrhea.title = Nombre d’enfants de moins de 5 ans présentant une diarrhée traitée avec le zinc et SRO par l'ASC +target.childcare_by_chw.pneumonia.title = Nombre d’enfants de moins de 5 ans présentant une pneumonie traitée avec Amoxicilline par l'ASC +target.childcare_by_chw.cough_cold_ari.title = Nombre d’enfants de moins de 5 ans présentant Toux/Rhume traitée par l'ASC +target.child_uncomplicated_malaria.title = Nombre d’enfants de moins de 5 ans présentant un paludisme simple confirmé par TDR et traité avec CTA par l'ASC +target.childcare_by_chw.malnourished.title = Nombre d’enfants dépistés malnutris +target.childcare_by_chw.moderate_acute_malnutrition.title = Nombre d’enfants de moins de 5 ans présentant une malnutrition aiguë modérée prise en charge par les ASC +target.childcare_by_chw.uncomplicated_severe_malnutrition.title = Nombre d’enfants de moins de 5 ans présentant une malnutrition aiguë sévère sans complication prise en charge avec plumpy nut par l'ASC +target.uncomplicated_malaria_5_plus.title = Nombre d’enfants de plus de 5 ans présentant un paludisme simple confirmé par TDR et traité avec CTA par l'ASC +target.pregnant_with_uncomplicated_malaria_rdt_cta.title = Proportion de femme enceinte présentant un paludisme simple confirmé par TDR et traité avec CTA par les ASC +target.newborns_followed_first_7_days = Nouveau-nés suivis dans le délai les 7 premiers jours de vie +target.newborns_followed_declared = Nouveaux nés déclarés à l’état civil +target.new_fp_user = Nouvelle utilisatrice en PF réalisé par les ASC +target.proportion_with_danger_case = Proportion de cas présentant un signe de danger ou d'alerte référés par l'ASC +target.proportion_children_fully_vaccinated = Proportion d'enfants de 0 à 23 mois entièrement vaccinés +target.new_patient_followed_by_community_agent = Nombre de nouveaux malades TB en traitement suivis +target.presumptive_tb_followed_by_community_agent = Cas présumés de TB référés +target.home_visit_chw = VAD Total +target.chw_talks = Causeries réalisées +target.tb_cases_lost = Nombre de cas de TB perdu de vue +target.household_with_hand_washing = Proportion de ménage disposant d’un dispositif de lavage des mains (fonctionnel avec eau et savon) +target.household_with_improved_latrine = Proportion (Pourcentage) de ménage utilisant une latrine améliorée +target.home_visit_gsan = Proportion de visites à domicile réalisées +target.gsan_affected_men = Nombre d’hommes touchés lors d’une VAD +target.gsan_affected_women = Nombre de femmes touchées lors d’une VAD +target.gsan_affected_men_chat = Nombre d’hommes touchés lors causeries éducatives +target.gsan_affected_women_chat = Nombre de femmes touchées lors des causeries éducatives +target.gsan_chat_proportion = Proportion de causeries réalisées +target.gsan_affected_men_genre = Nombre d’hommes sensibilisés sur l’approche genre +target.cvss.household_as_member.title = Nombre d'adhésion ménages à la CVSS +target.cvss.individual_as_member.title = Nombre d'adhésion individuelle à la CVSS +target.village_motivation_mecanism.title = Nombre de caisses ayant un mecanisme de motivation des ASC +target.village_promotional_activities.title = Nombre de caisses ayant appuyé d’autres activité de promotion de la santé +target.village_transportation_mecanism.title = Nombre de villages ayant un mecanisme de transport +target.fonctional_transportation.title = Nombre de villages avec un mécanisme transport fonctionnel +target.cvss.individual_leaving_cvss.title = Nombre de personne ayant quitté la caisse de solidarité santé +target.cvss.household_leaving_cvss.title = Nombre de ménages ayant quitté la caisse de solidarité santé +target.cvss_under_5_transported_title = Nombre d’enfants de moins de 5ans transportés par le mécanisme de transport +target.cvss_pregnant_woman_transported_title = Nombre de femmes enceintes transportées par le mécanisme de transport +target.cvss_postpartum_woman_transported_title = Nombre de femmes en suite de couche transportées par le mécanisme de transport +target.cvss.nutritional_demonstration.title = Nombre de caisses ayant appuyées les démonstrations nutritionnelles +target.cvss_average_contribution.title = Contribution moyenne des caisses de solidarité santé pour la période +target.cvss_total_expense_transportation.title = Montant dépensé pour le transport( femmes enceintes et les enfants de moins de cinq ans) +target.cvss_total_expense_nd.title = Montant dépensé pour les demonstrations nutritionnelles +target.cvss_member_total_expense.title = Montant de dépenses enregistrées par les membre CVSS +target.chw_helped_in_nature_by_community.title = Nombre d'ASC ayant reçu un appui en nature +target.chw_financially_helpedby_community.title = Nombre d'ASC ayant recu une motivation financiere de la CVSS +target.rdts_carried_out_5_plus_with_fever.title = Nombre de TDR réalisé chez les plus de 5 ans présentant une fièvre +target.number_of_traitments_followup_carried_out.title = Nombre de suivi traitement réalisé (PEC des cas) par l'ASC +target.chw_site_visited_in_community_without_chw.title = % Site ASC ayant fait l'objet d'une visite dans la communauté sans ASC +target.chw_having_been_directly_observed_by_the_supervisor.title = % d'ASC ayant été observé directement par le superviseur +target.chw_having_had_an_individual_meeting_with_the_supervisor.title = % d'ASC ayant fait une rencontre individuelle avec le superviseur +target.pourcentage_de_satisfaction.title = % d'ASC ayant dun niveau de compétence acceptable ≥ 80% +target.pourcentage_geolocalise.title = Pourcentage de sites geolocalisé +target.supervision_visit_realization = Pourcentage de vistes de supervision réalisées +target.percentage_chw_received_visit_sd.title = % d'ASC ayant reçu une visite de supervision dédiée avec toutes les étapes +target.chw_observed_during_assessment.title= % d'ASC observé par superviseur dédié pendant la prise en charge d'un malade +target.chw_rdts_correctly_carried_out.title= Nombre de TDR Paludisme correctement réalisé par l’ASC pendant la supervision +target.chw_rdts_carrying_out_malaria.title= Nombre ASCs observés par le SD pour la réalisation du TDR Paludisme +target.number_of_children_zero_doses.title = Nombre d'enfants de 0 à 23 mois avec zéro dose +target.number_of_children_vaccination_not_up_to_date.title = Nombre d'enfants de 0 à 23 mois partiellement vaccinés +contact.savings.title = Fiche de contact du groupe CVSS +contact.savings.manager.name = Nom manager CVSS +contact.savings.cvss_balance = Solde total +contact.savings.manager.phone = Numéro de téléphone du gestionnaire +contact.savings.total_members = Nombre total de membres CVSS +contact.savings.total_amount_contributed = Montant total cotisé +contact.savings.total_loan_disbursed = Prêt décaissé +contact.savings.loan_balance = Solde du prêt +contact.savings.total_expenses = Dépenses totales +contact.savings.total_disbursement = Montant total décaissé +contact.savings.total_loan_paid = Prêt Remboursé +contact.savings.total_loan = Prêt Total +contact.savings.beneficiary.title = Fiche Contact Bénéficiaire +contact.savings.beneficiary.total_contribution = Cotisation totale Record +contact.savings.beneficiary.total_expense = Total des depense enregistré +contact.savings.beneficiary.total_loan = Prêt Total +contact.savings.beneficiary.loan_balance = Solde total du prêt +task.savings.loan_reminder = Rappel de prêt +task.savings.confirmation_of_expenditure = Confirmation des dépenses +task.savings.loan_reimbursement = Remboursement de prêt +sms.token.login.help = Salut prêt à commencer ? Vous aurez besoin de données et d’une bonne connexion. Accédez à https://play.google.com/store/apps/details?id=org.medicmobile.webapp.mobile.moh_mali_chw&hl=en_US pour installer l'application. Après l'installation cliquez sur le lien suivant pour vous connecter. +target.gsan_affected_women_genre = Femmes sensibilisées sur l’approche genre +target.chw_promo_pregnancy = Visites à domicile réalisées pour les activités promotionnelles + suivi de la femme enceinte +target.curative_home_visits = Visite à domicile réalisés pour les activités curatives +vaccine.status.no_dose = Zero Dose +vaccine.status.full_dose = Complet +vaccine.status.partial_dose = Incomplet +vaccine.title = Vaccination +child.civil_status = Etat civil +child.civil_status.declared = Enfant déclaré +child.civil_status.not_declared = Enfant non déclaré +child.schooling = Scolarité +child.schooling.not_schooled = Non scolarisé +child.schooling.schooled = Scolarisé +child.schooling.waiting = En attente +reports.sidebar.filter.title = Filtre +reports.sidebar.filter.form_type = Type de Formulaire +reports.sidebar.filter.place = Lieu +reports.sidebar.filter.date = Date +reports.sidebar.filter.status = Status +search_bar.filter.label = Filtre +fast_action_button.title = Nouveau +contact.child.mother.indicator.title = Indicateurs de la mère et de l'enfant +contact.child.mother.indicator.pregnant_from_15_49 = Nombre des femmes enceintes de 15-49 ans +contact.child.mother.indicator.health_facility.delivery = Nombre des femmes enceintes ayant accouché dans une formation sanitaire +contact.child.mother.indicator.exclusive.breastfeeding = Nombre d\'enfant de 0-5 mois sous allaitement maternel exclusif +contact.child.mother.indicator.no.vaccine = Nombre d'enfants n'ayant reçu aucun vaccin dans un ménage +contact.child.mother.indicator.fully.immunized = Nombre d'enfants complètement vaccinés +contact.child.mother.indicator.early.learning = Nombre d'enfant de 2-5 ans qui participe à un type de programme d'apprentissage précoce +contact.child.mother.indicator.improved.latrine = Nombre de ménage disposant de latrine améliorée +contact.child.mother.indicator.potable.water = Nombre de ménage qui a accès à l'eau potable (pompe réseau public) +contact.child.mother.indicator.cash.transfert = Nombre de ménage qui recoit un cash transfert +contact.child.mother.indicator.sexual.mutilation = Nombre d'enfant fille ayant subi une mutilation sexuelle +contact.child.mother.indicator.malnutrition = Nombre d\'enfant de 6-59 mois ayant ete depiste de la malnutrition dans un menage diff --git a/test/stock-count.spec.js b/test/stock-count.spec.js new file mode 100644 index 0000000..839bdf2 --- /dev/null +++ b/test/stock-count.spec.js @@ -0,0 +1,95 @@ +const { fork } = require('child_process'); +const path = require('path'); +const fs = require('fs-extra'); +const { once } = require('events'); +const ExcelJS = require('exceljs'); + +const { stockCountScenario } = require('./mocks/mocks'); +const { + setDirToprojectConfig, + revertBackToProjectHome +} = require('./test-utils'); + + +describe('Stock count', () => { + + beforeEach(() => { + setDirToprojectConfig(); + }); + + afterEach(() => { + revertBackToProjectHome(process.cwd()); + }); + + it('Add stock count summaries test', async() => { + const processDir = process.cwd(); + const childProcess = fork('../../main.js', stockCountScenario.initScenario); + await once(childProcess, 'close'); + + const formPath = path.join(processDir, 'forms', 'app', `stock_count.xlsx`); + const formPropertiesPath = path.join(processDir, 'forms', 'app', `stock_count.properties.json`); + const stockMonitoringConfig = path.join(processDir, 'stock-monitoring.config.json'); + + // Check that stock monitoring is initialized and stock count xform is generated + expect(fs.existsSync(stockMonitoringConfig)).toBe(true); + expect(fs.existsSync(formPropertiesPath)).toBe(true); + expect(fs.existsSync(formPath)).toBe(true); + + // Check that the products are available in stock count xform + const productCategoryList = stockCountScenario.productCategoryScenario; + const productsList = stockCountScenario.productsScenario; + const workbook = new ExcelJS.Workbook(); + await workbook.xlsx.readFile(formPath); + const surveyWorkSheet = workbook.getWorksheet('survey'); + const nameCol = surveyWorkSheet.getColumn('B'); + const cellProductCategoriesList = []; + const cellProductsList = []; + let productCatIndex =0; + let productIndex = 0; + nameCol.eachCell(function(cell){ + + if(cell.value === productCategoryList[productCatIndex] && productCatIndex < productCategoryList.length){ + cellProductCategoriesList.push(cell.value); + productCatIndex ++; + productIndex = 0; + } + + if(cell.value === productsList[productIndex] && productIndex < productsList.length){ + cellProductsList.push(cell.value); + productIndex ++; + } + + }); + + expect(productsList.length).toBe(cellProductsList.length); + expect(productsList.entries).toStrictEqual(cellProductsList.entries); + + expect(productCategoryList.length).toBe(cellProductCategoriesList.length); + expect(productCategoryList.entries).toStrictEqual(cellProductCategoriesList.entries); + + //Removing the stock monitoring init file and stock count file + expect(fs.unlinkSync(stockMonitoringConfig)).toBe(undefined); + expect(fs.unlinkSync(formPath)).toBe(undefined); + expect(fs.unlinkSync(formPropertiesPath)).toBe(undefined); + + const translationFiles = fs.readdirSync(path.join(processDir, 'translations')); + for(const translationFile of translationFiles){ + + const messageFileContent = fs.readFileSync(path.join(processDir, 'translations', translationFile), {encoding: 'utf-8'}); + expect(messageFileContent).not.toBe(''); + const newMessageContent = messageFileContent.split('\n').map(message => { + if(!message.toString().includes('cht-stock-monitoring-workflow') && message.toString()!==''){ + return `${message.toString()}\n`; + } + }); + + expect(newMessageContent.includes('cht-stock-monitoring-workflow')).toBe(false); + fs.truncate(path.join(processDir, 'translations', translationFile), 0, function () {}); + fs.writeFile(path.join(processDir, 'translations', translationFile),newMessageContent.toString().replaceAll(',', '')); + + } + }); + +}); + + diff --git a/test/test-utils.js b/test/test-utils.js new file mode 100644 index 0000000..a7cf32e --- /dev/null +++ b/test/test-utils.js @@ -0,0 +1,24 @@ +const process = require('process'); +const path = require('path'); + +const currentWorkingDirectory = () =>{ + return process.cwd(); +}; + +function setDirToprojectConfig(){ + const processDir = process.cwd(); + process.chdir(path.join(processDir,'test/project-config/')); +} + +const revertBackToProjectHome = (projectHome) =>{ + process.chdir(projectHome); +}; + +module.exports = { + setDirToprojectConfig, + currentWorkingDirectory, + revertBackToProjectHome +}; + + +