From 71439b083b6350dd68864777f85de1c01937b544 Mon Sep 17 00:00:00 2001 From: Lewis Odero Date: Tue, 2 Apr 2024 12:38:44 +0300 Subject: [PATCH] Add new files and update existing files --- .changeset/lovely-stingrays-perform.md | 5 - .env.local => .env.examble | 0 .github/ISSUE_TEMPLATE/bug_report.md | 39 + .github/ISSUE_TEMPLATE/feature_request.md | 19 + .github/pull_request_template.md | 10 + .github/workflows/main.yml | 6 +- .github/workflows/publish.yml | 17 +- .gitignore | 57 +- .husky/pre-commit | 1 + .mailmap | 1 + .prettierignore | 8 + .prettierrc | 10 + CHANGELOG.md | 10 + CODE_OF_CONDUCT.md | 76 + README.md | 18 +- __tests__/README.md | 10 + package.json | 30 +- pnpm-lock.yaml | 3791 +++++++++++++++---- src/env.ts | 18 +- src/index.ts | 14 +- src/next/QrCodeDisplay.tsx | 24 +- src/next/index.ts | 2 +- src/react/QrCodeDisplay.tsx | 10 +- src/react/index.ts | 2 +- src/types/types.ts | 4015 ++++++++++----------- src/utils/index.ts | 2 +- src/utils/utils.ts | 18 +- src/wrapper-fns/access-token.ts | 18 +- src/wrapper-fns/index.ts | 6 +- src/wrapper-fns/stk-push.ts | 22 +- src/wrapper-fns/wrapper-fns.ts | 100 +- tailwind.config.js | 22 +- tsconfig.json | 10 +- tsup.config.ts | 22 +- 34 files changed, 5521 insertions(+), 2892 deletions(-) delete mode 100644 .changeset/lovely-stingrays-perform.md rename .env.local => .env.examble (100%) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/pull_request_template.md create mode 100644 .husky/pre-commit create mode 100644 .mailmap create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 CODE_OF_CONDUCT.md create mode 100644 __tests__/README.md diff --git a/.changeset/lovely-stingrays-perform.md b/.changeset/lovely-stingrays-perform.md deleted file mode 100644 index 983ab90..0000000 --- a/.changeset/lovely-stingrays-perform.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"bridgewaveconnect": patch ---- - -publishinisse diff --git a/.env.local b/.env.examble similarity index 100% rename from .env.local rename to .env.examble diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..5ed6624 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,39 @@ +--- +name: Bug report +about: Create a bug report +title: '' +labels: bug, needs triage +assignees: '' +--- + + + +**Description:** +A clear and concise description of what the bug is. + +**Action version:** +Specify the action version + +**Platform:** + +- [ ] Ubuntu +- [ ] macOS +- [ ] Windows + +**Runner type:** + +- [ ] Hosted +- [ ] Self-hosted + +**Tools version:** + + + +**Repro steps:** +A description with steps to reproduce the issue. If you have a public example or repo to share, please provide the link. + +**Expected behavior:** +A description of what you expected to happen. + +**Actual behavior:** +A description of what is actually happening. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..cdbf12f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: feature request, needs triage +assignees: '' +--- + + + +**Description:** +Describe your proposal. + +**Justification:** +Justification or a use case for your proposal. + +**Are you willing to submit a PR?** + + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..77714eb --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,10 @@ +**Description:** +Describe your changes. + +**Related issue:** +Add link to the related issue. + +**Check list:** + +- [ ] Mark if documentation changes are required. +- [ ] Mark if tests were added or updated to cover the changes. diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8bf3096..ab703ee 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,7 +2,7 @@ name: CI on: push: branches: - - "**" + - '**' jobs: build: @@ -14,8 +14,8 @@ jobs: version: 8 - uses: actions/setup-node@v4 with: - node-version: "20.x" - cache: "pnpm" + node-version: '20.x' + cache: 'pnpm' - run: pnpm install --frozen-lockfile - run: pnpm run lint && pnpm run build diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 417c38a..ec4e90f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,12 +1,12 @@ name: Publish on: workflow_run: - workflows: ["CI"] + workflows: ['CI'] types: - completed push: branches: - - "main" + - 'main' concurrency: ${{ github.workflow }}-${{ github.ref }} @@ -25,10 +25,19 @@ jobs: - name: Setup Node.js 20 uses: actions/setup-node@v4 with: - node-version: "20.x" - cache: "pnpm" + node-version: '20.x' + cache: 'pnpm' - run: pnpm install --frozen-lockfile + + - name: Creating .npmrc + run: | + cat << EOF > "$HOME/.npmrc" + //registry.npmjs.org/:_authToken=$NPM_TOKEN + EOF + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + - name: Create Release Pull Request or Publish id: changesets uses: changesets/action@v1 diff --git a/.gitignore b/.gitignore index 0bf769c..34b8403 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,57 @@ node_modules/ -dist \ No newline at end of file +dist +lib/ +__tests__/runner/* +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# nyc test coverage +.nyc_output + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + + +# parcel-bundler cache (https://parceljs.org/) +.cache \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..5ee7abd --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +pnpm exec lint-staged diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..08dd30e --- /dev/null +++ b/.mailmap @@ -0,0 +1 @@ +Lewis Odero \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..9f0dad9 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +# Ignore list +./dist +coverage + +# Do not ignore these folders: +!__tests__/ +!.github/ +!src/ \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..4febbc0 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,10 @@ +{ + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 80, + "useTabs": false, + "bracketSpacing": false, + "arrowParens": "avoid" +} diff --git a/CHANGELOG.md b/CHANGELOG.md index c4ca42d..b8783d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # BridgewaveConnect +## 1.1.0 + +### Minor Changes + +- Added types + +### Patch Changes + +- 26888ac: publish + ## 1.0.0 ### Major Changes diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..5f1b1c6 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, and it also applies when +an individual is representing the project or its community in public spaces. +Examples of representing a project or community include using an official +project e-mail address, posting via an official social media account, or acting +as an appointed representative at an online or offline event. Representation of +a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at opensource@github.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/README.md b/README.md index 76d4e63..6c3d168 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,13 @@ Bridgewave Connector is a versatile library designed to seamlessly integrate wit ## Table of Contents -- [Installation](#installation) -- [Usage](#usage) -- [Features](#features) -- [Contributing](#contributing) -- [License](#license) +- [Bridgewave Connect](#bridgewave-connect) + - [Table of Contents](#table-of-contents) + - [Installation](#installation) + - [Usage](#usage) + - [Features](#features) + - [Contributing](#contributing) + - [License](#license) ## Installation @@ -17,14 +19,15 @@ To install BridgeWaveConnector, you can use npm , yarn or pnpm: ```bash npm install bridgewaveconnect ``` + ```bash yarn add bridgewaveconnect ``` + ```bash pnpm install bridgewaveconnect ``` - ## Usage Once installed, you can import BridgeWaveConnector into your project and start using it to integrate with the M-Pesa Daraja API. Here's a basic example: @@ -63,4 +66,5 @@ For detailed usage instructions and API documentation, please refer to the full Contributions are welcome! Please feel free to submit issues and pull requests. ## License -This project is licensed under the MIT License - see the [License](#license) file for details. \ No newline at end of file + +This project is licensed under the MIT License - see the [License](#license) file for details. diff --git a/__tests__/README.md b/__tests__/README.md new file mode 100644 index 0000000..bda75d1 --- /dev/null +++ b/__tests__/README.md @@ -0,0 +1,10 @@ +Files located in data directory are used only for testing purposes. + +## Here the list of files in the data directory + +- `.nvmrc`, `.tools-versions` and `package.json` are used to test node-version-file logic +- `package-lock.json`, `pnpm-lock.yaml` and `yarn.lock` are used to test cache logic +- `versions-manifest.json` is used for unit testing to check downloading Node.js versions from the node-versions repository. +- `node-dist-index.json` is used for unit testing to check downloading Node.js versions from the official site. The file was constructed from https://nodejs.org/dist/index.json +- `node-rc-index.json` is used for unit testing to check downloading Node.js rc versions from the official site. The file was constructed from https://nodejs.org/download/rc/index.json +- `node-nightly-index.json` is used for unit testing to check downloading Node.js nightly builds from the official site. The file was constructed from https://nodejs.org/download/nightly/index.json diff --git a/package.json b/package.json index 72d7076..c122458 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,21 @@ { "name": "bridgewaveconnect", - "version": "1.0.0", + "version": "1.1.0", "description": "BridgeWaveConnect: Seamlessly integrate M-Pesa Daraja API & enhance connectivity. Simplify mobile finance development.", "private": false, - "main": ",./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", + "main": "dist/index.js", + "module": "dist/index.cjs", + "types": "dist/index.d.ts", "scripts": { - "dev": "vitest", - "test": "vitest run", - "build": "tsup src/index.ts --format cjs,esm --dts", + "build": "tsup", "lint": "tsc", - "release": "pnpm run lint && pnpm run build && changeset publish" + "release": "pnpm run lint && pnpm run build && changeset publish", + "format": "prettier --no-error-on-unmatched-pattern warm --config ./.prettierrc --write \"**/*.{ts,yml,yaml,js,json,tsx}\"", + "prepare": "husky" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/levos-snr/bridgewaveconnect.git" }, "keywords": [ "BridgewaveConnect", @@ -24,10 +28,13 @@ "publishConfig": { "access": "public" }, + "lint-staged": { + "**/*": "prettier --write --ignore-unknown" + }, "bugs": { - "url": "https://github.com/levos-snr/BridgewaveConnect/issues" + "url": "https://github.com/levos-snr/bridgewaveconnect/issues" }, - "homepage": "https://github.com/levos-snr/BridgewaveConnect#readme", + "homepage": "https://github.com/levos-snr/bridgewaveconnect#readme", "type": "module", "author": "Lewis Odero", "license": "MIT", @@ -48,7 +55,10 @@ "@types/node": "^20.11.30", "@types/react": "^18.2.67", "css-loader": "^6.10.0", + "husky": "^9.0.11", + "lint-staged": "^15.2.2", "postcss-loader": "^8.1.1", + "prettier": "3.2.5", "react": "^18.2.0", "style-loader": "^3.3.4", "tailwindcss": "^3.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea345a2..0259155 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,16 +42,25 @@ devDependencies: version: 1.0.2 '@types/node': specifier: ^20.11.30 - version: 20.11.30 + version: 20.12.2 '@types/react': specifier: ^18.2.67 version: 18.2.73 css-loader: specifier: ^6.10.0 version: 6.10.0(webpack@5.91.0) + husky: + specifier: ^9.0.11 + version: 9.0.11 + lint-staged: + specifier: ^15.2.2 + version: 15.2.2 postcss-loader: specifier: ^8.1.1 version: 8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0) + prettier: + specifier: 3.2.5 + version: 3.2.5 react: specifier: ^18.2.0 version: 18.2.0 @@ -78,14 +87,19 @@ devDependencies: version: 5.0.4(webpack-cli@5.1.4)(webpack@5.91.0) packages: - /@alloc/quick-lru@5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + } engines: {node: '>=10'} dev: true /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + resolution: + { + integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + } engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.24.2 @@ -93,12 +107,18 @@ packages: dev: true /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + resolution: + { + integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + } engines: {node: '>=6.9.0'} dev: true /@babel/highlight@7.24.2: - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + resolution: + { + integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA== + } engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -108,13 +128,19 @@ packages: dev: true /@babel/runtime@7.24.1: - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + resolution: + { + integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ== + } engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 /@changesets/apply-release-plan@7.0.0: - resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} + resolution: + { + integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/config': 3.0.0 @@ -132,7 +158,10 @@ packages: dev: true /@changesets/assemble-release-plan@6.0.0: - resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} + resolution: + { + integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/errors': 0.2.0 @@ -143,13 +172,19 @@ packages: dev: true /@changesets/changelog-git@0.2.0: - resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + resolution: + { + integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ== + } dependencies: '@changesets/types': 6.0.0 dev: true /@changesets/cli@2.27.1: - resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} + resolution: + { + integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ== + } hasBin: true dependencies: '@babel/runtime': 7.24.1 @@ -187,7 +222,10 @@ packages: dev: true /@changesets/config@3.0.0: - resolution: {integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==} + resolution: + { + integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA== + } dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.0.0 @@ -199,13 +237,19 @@ packages: dev: true /@changesets/errors@0.2.0: - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + resolution: + { + integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow== + } dependencies: extendable-error: 0.1.7 dev: true /@changesets/get-dependents-graph@2.0.0: - resolution: {integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==} + resolution: + { + integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA== + } dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -215,7 +259,10 @@ packages: dev: true /@changesets/get-release-plan@4.0.0: - resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} + resolution: + { + integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/assemble-release-plan': 6.0.0 @@ -227,11 +274,17 @@ packages: dev: true /@changesets/get-version-range-type@0.4.0: - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + resolution: + { + integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ== + } dev: true /@changesets/git@3.0.0: - resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} + resolution: + { + integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/errors': 0.2.0 @@ -243,20 +296,29 @@ packages: dev: true /@changesets/logger@0.1.0: - resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} + resolution: + { + integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g== + } dependencies: chalk: 2.4.2 dev: true /@changesets/parse@0.4.0: - resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + resolution: + { + integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw== + } dependencies: '@changesets/types': 6.0.0 js-yaml: 3.14.1 dev: true /@changesets/pre@2.0.0: - resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} + resolution: + { + integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/errors': 0.2.0 @@ -266,7 +328,10 @@ packages: dev: true /@changesets/read@0.6.0: - resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} + resolution: + { + integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/git': 3.0.0 @@ -279,15 +344,24 @@ packages: dev: true /@changesets/types@4.1.0: - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + resolution: + { + integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== + } dev: true /@changesets/types@6.0.0: - resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + resolution: + { + integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ== + } dev: true /@changesets/write@0.3.0: - resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} + resolution: + { + integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/types': 6.0.0 @@ -297,12 +371,18 @@ packages: dev: true /@discoveryjs/json-ext@0.5.7: - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + resolution: + { + integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + } engines: {node: '>=10.0.0'} dev: true /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + resolution: + { + integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + } engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -311,7 +391,10 @@ packages: optional: true /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + resolution: + { + integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + } engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -320,7 +403,10 @@ packages: optional: true /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + resolution: + { + integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + } engines: {node: '>=12'} cpu: [arm] os: [android] @@ -329,7 +415,10 @@ packages: optional: true /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + resolution: + { + integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + } engines: {node: '>=12'} cpu: [x64] os: [android] @@ -338,7 +427,10 @@ packages: optional: true /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + resolution: + { + integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + } engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -347,7 +439,10 @@ packages: optional: true /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + resolution: + { + integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + } engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -356,7 +451,10 @@ packages: optional: true /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + resolution: + { + integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + } engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -365,7 +463,10 @@ packages: optional: true /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + resolution: + { + integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + } engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -374,7 +475,10 @@ packages: optional: true /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + resolution: + { + integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + } engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -383,7 +487,10 @@ packages: optional: true /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + resolution: + { + integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + } engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -392,7 +499,10 @@ packages: optional: true /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + resolution: + { + integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + } engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -401,7 +511,10 @@ packages: optional: true /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + resolution: + { + integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + } engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -410,7 +523,10 @@ packages: optional: true /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + resolution: + { + integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + } engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -419,7 +535,10 @@ packages: optional: true /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + resolution: + { + integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + } engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -428,7 +547,10 @@ packages: optional: true /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + resolution: + { + integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + } engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -437,7 +559,10 @@ packages: optional: true /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + resolution: + { + integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + } engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -446,7 +571,10 @@ packages: optional: true /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + resolution: + { + integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + } engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -455,7 +583,10 @@ packages: optional: true /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + resolution: + { + integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + } engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -464,7 +595,10 @@ packages: optional: true /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + resolution: + { + integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + } engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -473,7 +607,10 @@ packages: optional: true /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + resolution: + { + integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + } engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -482,7 +619,10 @@ packages: optional: true /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + resolution: + { + integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + } engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -491,7 +631,10 @@ packages: optional: true /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + resolution: + { + integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + } engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -500,7 +643,10 @@ packages: optional: true /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + resolution: + { + integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + } engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -509,13 +655,19 @@ packages: optional: true /@fortawesome/fontawesome-common-types@6.5.1: - resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==} + resolution: + { + integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A== + } engines: {node: '>=6'} requiresBuild: true dev: false /@fortawesome/fontawesome-svg-core@6.5.1: - resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==} + resolution: + { + integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ== + } engines: {node: '>=6'} requiresBuild: true dependencies: @@ -523,7 +675,10 @@ packages: dev: false /@fortawesome/free-regular-svg-icons@6.5.1: - resolution: {integrity: sha512-m6ShXn+wvqEU69wSP84coxLbNl7sGVZb+Ca+XZq6k30SzuP3X4TfPqtycgUh9ASwlNh5OfQCd8pDIWxl+O+LlQ==} + resolution: + { + integrity: sha512-m6ShXn+wvqEU69wSP84coxLbNl7sGVZb+Ca+XZq6k30SzuP3X4TfPqtycgUh9ASwlNh5OfQCd8pDIWxl+O+LlQ== + } engines: {node: '>=6'} requiresBuild: true dependencies: @@ -531,7 +686,10 @@ packages: dev: false /@fortawesome/free-solid-svg-icons@6.5.1: - resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==} + resolution: + { + integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ== + } engines: {node: '>=6'} requiresBuild: true dependencies: @@ -539,7 +697,10 @@ packages: dev: false /@fortawesome/react-fontawesome@0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0): - resolution: {integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==} + resolution: + { + integrity: sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw== + } peerDependencies: '@fortawesome/fontawesome-svg-core': ~1 || ~6 react: '>=16.3' @@ -550,7 +711,10 @@ packages: dev: false /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + } engines: {node: '>=12'} dependencies: string-width: 5.1.2 @@ -562,7 +726,10 @@ packages: dev: true /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + resolution: + { + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + } engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 @@ -571,39 +738,60 @@ packages: dev: true /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + } engines: {node: '>=6.0.0'} dev: true /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + resolution: + { + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + } engines: {node: '>=6.0.0'} dev: true /@jridgewell/source-map@0.3.6: - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + resolution: + { + integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + } dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + resolution: + { + integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + } dev: true /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + resolution: + { + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + } dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@leichtgewicht/ip-codec@2.0.5: - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + resolution: + { + integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== + } dev: true /@manypkg/find-root@1.1.0: - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + resolution: + { + integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== + } dependencies: '@babel/runtime': 7.24.1 '@types/node': 12.20.55 @@ -612,7 +800,10 @@ packages: dev: true /@manypkg/get-packages@1.1.3: - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + resolution: + { + integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== + } dependencies: '@babel/runtime': 7.24.1 '@changesets/types': 4.1.0 @@ -623,7 +814,10 @@ packages: dev: true /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + } engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -631,12 +825,18 @@ packages: dev: true /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + } engines: {node: '>= 8'} dev: true /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + } engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 @@ -644,14 +844,20 @@ packages: dev: true /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + } engines: {node: '>=14'} requiresBuild: true dev: true optional: true /@rollup/rollup-android-arm-eabi@4.13.2: - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} + resolution: + { + integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g== + } cpu: [arm] os: [android] requiresBuild: true @@ -659,7 +865,10 @@ packages: optional: true /@rollup/rollup-android-arm64@4.13.2: - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} + resolution: + { + integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ== + } cpu: [arm64] os: [android] requiresBuild: true @@ -667,7 +876,10 @@ packages: optional: true /@rollup/rollup-darwin-arm64@4.13.2: - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} + resolution: + { + integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA== + } cpu: [arm64] os: [darwin] requiresBuild: true @@ -675,7 +887,10 @@ packages: optional: true /@rollup/rollup-darwin-x64@4.13.2: - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} + resolution: + { + integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A== + } cpu: [x64] os: [darwin] requiresBuild: true @@ -683,7 +898,10 @@ packages: optional: true /@rollup/rollup-linux-arm-gnueabihf@4.13.2: - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} + resolution: + { + integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ== + } cpu: [arm] os: [linux] requiresBuild: true @@ -691,7 +909,10 @@ packages: optional: true /@rollup/rollup-linux-arm64-gnu@4.13.2: - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} + resolution: + { + integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ== + } cpu: [arm64] os: [linux] requiresBuild: true @@ -699,7 +920,10 @@ packages: optional: true /@rollup/rollup-linux-arm64-musl@4.13.2: - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} + resolution: + { + integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA== + } cpu: [arm64] os: [linux] requiresBuild: true @@ -707,7 +931,10 @@ packages: optional: true /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} + resolution: + { + integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ== + } cpu: [ppc64le] os: [linux] requiresBuild: true @@ -715,7 +942,10 @@ packages: optional: true /@rollup/rollup-linux-riscv64-gnu@4.13.2: - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} + resolution: + { + integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw== + } cpu: [riscv64] os: [linux] requiresBuild: true @@ -723,7 +953,10 @@ packages: optional: true /@rollup/rollup-linux-s390x-gnu@4.13.2: - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} + resolution: + { + integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg== + } cpu: [s390x] os: [linux] requiresBuild: true @@ -731,7 +964,10 @@ packages: optional: true /@rollup/rollup-linux-x64-gnu@4.13.2: - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} + resolution: + { + integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A== + } cpu: [x64] os: [linux] requiresBuild: true @@ -739,7 +975,10 @@ packages: optional: true /@rollup/rollup-linux-x64-musl@4.13.2: - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} + resolution: + { + integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA== + } cpu: [x64] os: [linux] requiresBuild: true @@ -747,7 +986,10 @@ packages: optional: true /@rollup/rollup-win32-arm64-msvc@4.13.2: - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} + resolution: + { + integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA== + } cpu: [arm64] os: [win32] requiresBuild: true @@ -755,7 +997,10 @@ packages: optional: true /@rollup/rollup-win32-ia32-msvc@4.13.2: - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} + resolution: + { + integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw== + } cpu: [ia32] os: [win32] requiresBuild: true @@ -763,7 +1008,10 @@ packages: optional: true /@rollup/rollup-win32-x64-msvc@4.13.2: - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} + resolution: + { + integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ== + } cpu: [x64] os: [win32] requiresBuild: true @@ -771,64 +1019,94 @@ packages: optional: true /@types/base-64@1.0.2: - resolution: {integrity: sha512-uPgKMmM9fmn7I+Zi6YBqctOye4SlJsHKcisjHIMWpb2YKZRc36GpKyNuQ03JcT+oNXg1m7Uv4wU94EVltn8/cw==} + resolution: + { + integrity: sha512-uPgKMmM9fmn7I+Zi6YBqctOye4SlJsHKcisjHIMWpb2YKZRc36GpKyNuQ03JcT+oNXg1m7Uv4wU94EVltn8/cw== + } dev: true /@types/body-parser@1.19.5: - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + resolution: + { + integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + } dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/bonjour@3.5.13: - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + resolution: + { + integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== + } dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/connect-history-api-fallback@1.5.4: - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + resolution: + { + integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== + } dependencies: '@types/express-serve-static-core': 4.17.43 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/connect@3.4.38: - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + resolution: + { + integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + } dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + resolution: + { + integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + } dependencies: - '@types/eslint': 8.56.6 + '@types/eslint': 8.56.7 '@types/estree': 1.0.5 dev: true - /@types/eslint@8.56.6: - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + /@types/eslint@8.56.7: + resolution: + { + integrity: sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA== + } dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 dev: true /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + resolution: + { + integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + } dev: true /@types/express-serve-static-core@4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + resolution: + { + integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== + } dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 dev: true /@types/express@4.17.21: - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + resolution: + { + integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + } dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.17.43 @@ -837,136 +1115,220 @@ packages: dev: true /@types/http-errors@2.0.4: - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + resolution: + { + integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + } dev: true /@types/http-proxy@1.17.14: - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + resolution: + { + integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w== + } dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + } dev: true /@types/memory-cache@0.2.5: - resolution: {integrity: sha512-OIKRDDZUFeKT/rsko7/CGnR5qE8xTU8ogzyaaSDSHGkKwlSB/E6RopSF5fReo89khCAcGIoqSi723tDqUe6gYw==} + resolution: + { + integrity: sha512-OIKRDDZUFeKT/rsko7/CGnR5qE8xTU8ogzyaaSDSHGkKwlSB/E6RopSF5fReo89khCAcGIoqSi723tDqUe6gYw== + } dev: false /@types/mime@1.3.5: - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + resolution: + { + integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + } dev: true - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + /@types/mime@4.0.0: + resolution: + { + integrity: sha512-5eEkJZ/BLvTE3vXGKkWlyTSUVZuzj23Wj8PoyOq2lt5I3CYbiLBOPb3XmCW6QcuOibIUE6emHXHt9E/F/rCa6w== + } + deprecated: This is a stub types definition. mime provides its own type definitions, so you do not need this installed. + dependencies: + mime: 4.0.1 dev: true /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + resolution: + { + integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + } dev: true /@types/node-forge@1.3.11: - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + resolution: + { + integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + } dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + resolution: + { + integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + } dev: true - /@types/node@20.11.30: - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + /@types/node@20.12.2: + resolution: + { + integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ== + } dependencies: undici-types: 5.26.5 dev: true /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + resolution: + { + integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + } dev: true /@types/prop-types@15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + resolution: + { + integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + } dev: true /@types/qs@6.9.14: - resolution: {integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==} + resolution: + { + integrity: sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA== + } dev: true /@types/range-parser@1.2.7: - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + resolution: + { + integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + } dev: true /@types/react@18.2.73: - resolution: {integrity: sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA==} + resolution: + { + integrity: sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA== + } dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 dev: true /@types/retry@0.12.2: - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + resolution: + { + integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== + } dev: true /@types/semver@7.5.8: - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + resolution: + { + integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + } dev: true /@types/send@0.17.4: - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + resolution: + { + integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + } dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/serve-index@1.9.4: - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + resolution: + { + integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== + } dependencies: '@types/express': 4.17.21 dev: true /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + resolution: + { + integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== + } dependencies: '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 20.11.30 + '@types/mime': 4.0.0 + '@types/node': 20.12.2 dev: true /@types/sockjs@0.3.36: - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + resolution: + { + integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== + } dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@types/ws@8.5.10: - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + resolution: + { + integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + } dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 dev: true /@webassemblyjs/ast@1.12.1: - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + resolution: + { + integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== + } dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 dev: true /@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + resolution: + { + integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== + } dev: true /@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + resolution: + { + integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== + } dev: true /@webassemblyjs/helper-buffer@1.12.1: - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + resolution: + { + integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== + } dev: true /@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + resolution: + { + integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== + } dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.6 '@webassemblyjs/helper-api-error': 1.11.6 @@ -974,11 +1336,17 @@ packages: dev: true /@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + resolution: + { + integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== + } dev: true /@webassemblyjs/helper-wasm-section@1.12.1: - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + resolution: + { + integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== + } dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -987,23 +1355,35 @@ packages: dev: true /@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + resolution: + { + integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== + } dependencies: '@xtuc/ieee754': 1.2.0 dev: true /@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + resolution: + { + integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== + } dependencies: '@xtuc/long': 4.2.2 dev: true /@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + resolution: + { + integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== + } dev: true /@webassemblyjs/wasm-edit@1.12.1: - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + resolution: + { + integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== + } dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -1016,7 +1396,10 @@ packages: dev: true /@webassemblyjs/wasm-gen@1.12.1: - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + resolution: + { + integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + } dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -1026,7 +1409,10 @@ packages: dev: true /@webassemblyjs/wasm-opt@1.12.1: - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + resolution: + { + integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== + } dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-buffer': 1.12.1 @@ -1035,7 +1421,10 @@ packages: dev: true /@webassemblyjs/wasm-parser@1.12.1: - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + resolution: + { + integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== + } dependencies: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 @@ -1046,14 +1435,20 @@ packages: dev: true /@webassemblyjs/wast-printer@1.12.1: - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + resolution: + { + integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== + } dependencies: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 dev: true /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + resolution: + { + integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw== + } engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x @@ -1064,7 +1459,10 @@ packages: dev: true /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + resolution: + { + integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A== + } engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x @@ -1075,7 +1473,10 @@ packages: dev: true /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + resolution: + { + integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== + } engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x @@ -1091,15 +1492,24 @@ packages: dev: true /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + resolution: + { + integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + } dev: true /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + resolution: + { + integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + } dev: true /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + } engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 @@ -1107,7 +1517,10 @@ packages: dev: true /acorn-import-assertions@1.9.0(acorn@8.11.3): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + resolution: + { + integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== + } peerDependencies: acorn: ^8 dependencies: @@ -1115,13 +1528,19 @@ packages: dev: true /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + resolution: + { + integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + } engines: {node: '>=0.4.0'} hasBin: true dev: true /ajv-formats@2.1.1(ajv@8.12.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + resolution: + { + integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + } peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -1132,7 +1551,10 @@ packages: dev: true /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + resolution: + { + integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + } peerDependencies: ajv: ^6.9.1 dependencies: @@ -1140,7 +1562,10 @@ packages: dev: true /ajv-keywords@5.1.0(ajv@8.12.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + resolution: + { + integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + } peerDependencies: ajv: ^8.8.2 dependencies: @@ -1149,7 +1574,10 @@ packages: dev: true /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + } dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -1158,7 +1586,10 @@ packages: dev: true /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + resolution: + { + integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + } dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -1167,51 +1598,86 @@ packages: dev: true /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + } engines: {node: '>=6'} dev: true + /ansi-escapes@6.2.1: + resolution: + { + integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig== + } + engines: {node: '>=14.16'} + dev: true + /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + resolution: + { + integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + } engines: {'0': node >= 0.8.0} hasBin: true dev: true /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + } engines: {node: '>=8'} dev: true /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + } engines: {node: '>=12'} dev: true /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + } engines: {node: '>=4'} dependencies: color-convert: 1.9.3 dev: true /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + } engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + } engines: {node: '>=12'} dev: true /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + } dev: true /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + } engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 @@ -1219,21 +1685,33 @@ packages: dev: true /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + } dev: true /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + } dependencies: sprintf-js: 1.0.3 dev: true /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + } dev: true /array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + resolution: + { + integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -1241,32 +1719,44 @@ packages: dev: true /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + resolution: + { + integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + } dev: true /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + } engines: {node: '>=8'} dev: true /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + resolution: + { + integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true /arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + resolution: + { + integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + } engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -1274,23 +1764,35 @@ packages: dev: true /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + resolution: + { + integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + } engines: {node: '>=0.10.0'} dev: true /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + } dev: false /available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + resolution: + { + integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + } engines: {node: '>= 0.4'} dependencies: possible-typed-array-names: 1.0.0 dev: true /axios@1.6.8: - resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + resolution: + { + integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== + } dependencies: follow-redirects: 1.15.6 form-data: 4.0.0 @@ -1300,31 +1802,49 @@ packages: dev: false /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + } dev: true /base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + resolution: + { + integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg== + } dev: false /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + resolution: + { + integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + } dev: true /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + resolution: + { + integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== + } engines: {node: '>=4'} dependencies: is-windows: 1.0.2 dev: true /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + } engines: {node: '>=8'} dev: true /body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + resolution: + { + integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + } engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -1344,55 +1864,79 @@ packages: dev: true /bonjour-service@1.2.1: - resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + resolution: + { + integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== + } dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 dev: true /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + } dependencies: balanced-match: 1.0.2 dev: true /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + } engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true /breakword@1.0.6: - resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + resolution: + { + integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw== + } dependencies: wcwidth: 1.0.1 dev: true /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + resolution: + { + integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + } engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001600 - electron-to-chromium: 1.4.721 + caniuse-lite: 1.0.30001605 + electron-to-chromium: 1.4.723 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + } dev: true /bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + resolution: + { + integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== + } engines: {node: '>=18'} dependencies: run-applescript: 7.0.0 dev: true /bundle-require@4.0.2(esbuild@0.19.12): - resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} + resolution: + { + integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag== + } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' @@ -1402,22 +1946,34 @@ packages: dev: true /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + resolution: + { + integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + } engines: {node: '>= 0.8'} dev: true /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + resolution: + { + integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + } engines: {node: '>= 0.8'} dev: true /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + } engines: {node: '>=8'} dev: true /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + resolution: + { + integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + } engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 @@ -1428,17 +1984,26 @@ packages: dev: true /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + } engines: {node: '>=6'} dev: true /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + } engines: {node: '>= 6'} dev: true /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + resolution: + { + integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + } engines: {node: '>=8'} dependencies: camelcase: 5.3.1 @@ -1447,16 +2012,25 @@ packages: dev: true /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + } engines: {node: '>=6'} dev: true - /caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + /caniuse-lite@1.0.30001605: + resolution: + { + integrity: sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ== + } dev: true /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + } engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 @@ -1465,19 +2039,36 @@ packages: dev: true /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + } engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 dev: true + /chalk@5.3.0: + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + } + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + } dev: true /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + } engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 @@ -1492,17 +2083,47 @@ packages: dev: true /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + resolution: + { + integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + } engines: {node: '>=6.0'} dev: true /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + resolution: + { + integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + } engines: {node: '>=8'} dev: true + /cli-cursor@4.0.0: + resolution: + { + integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + } + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-truncate@4.0.0: + resolution: + { + integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + } + engines: {node: '>=18'} + dependencies: + slice-ansi: 5.0.0 + string-width: 7.1.0 + dev: true + /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + resolution: + { + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + } dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 @@ -1510,7 +2131,10 @@ packages: dev: true /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + } engines: {node: '>=12'} dependencies: string-width: 4.2.3 @@ -1519,7 +2143,10 @@ packages: dev: true /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + resolution: + { + integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + } engines: {node: '>=6'} dependencies: is-plain-object: 2.0.4 @@ -1528,65 +2155,109 @@ packages: dev: true /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + } engines: {node: '>=0.8'} dev: true /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + } dependencies: color-name: 1.1.3 dev: true /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + } engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + } dev: true /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + } dev: true /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + resolution: + { + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + } dev: true /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + } engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: false /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + resolution: + { + integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + } engines: {node: '>=14'} dev: true + /commander@11.1.0: + resolution: + { + integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + } + engines: {node: '>=16'} + dev: true + /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + } dev: true /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + } engines: {node: '>= 6'} dev: true /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + resolution: + { + integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + } engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: true /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + resolution: + { + integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + } engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 @@ -1601,37 +2272,58 @@ packages: dev: true /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + resolution: + { + integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + } engines: {node: '>=0.8'} dev: true /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + resolution: + { + integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + } engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 dev: true /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + resolution: + { + integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + } engines: {node: '>= 0.6'} dev: true /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + resolution: + { + integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + } dev: true /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + resolution: + { + integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + } engines: {node: '>= 0.6'} dev: true /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + } dev: true /cosmiconfig@9.0.0(typescript@5.4.3): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + resolution: + { + integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + } engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -1647,7 +2339,10 @@ packages: dev: true /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + resolution: + { + integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + } dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 @@ -1655,7 +2350,10 @@ packages: dev: true /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + } engines: {node: '>= 8'} dependencies: path-key: 3.1.1 @@ -1664,7 +2362,10 @@ packages: dev: true /css-loader@6.10.0(webpack@5.91.0): - resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + resolution: + { + integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw== + } engines: {node: '>= 12.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -1687,29 +2388,47 @@ packages: dev: true /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + } engines: {node: '>=4'} hasBin: true dev: true /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + } dev: true /csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + resolution: + { + integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw== + } dev: true /csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + resolution: + { + integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== + } dev: true /csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + resolution: + { + integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== + } dev: true /csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + resolution: + { + integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== + } engines: {node: '>= 0.1.90'} dependencies: csv-generate: 3.4.3 @@ -1719,7 +2438,10 @@ packages: dev: true /data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + resolution: + { + integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -1728,7 +2450,10 @@ packages: dev: true /data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + resolution: + { + integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -1737,7 +2462,10 @@ packages: dev: true /data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + resolution: + { + integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -1746,7 +2474,10 @@ packages: dev: true /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -1757,7 +2488,10 @@ packages: dev: true /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + } engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1769,7 +2503,10 @@ packages: dev: true /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + resolution: + { + integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + } engines: {node: '>=0.10.0'} dependencies: decamelize: 1.2.0 @@ -1777,17 +2514,26 @@ packages: dev: true /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + resolution: + { + integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + } engines: {node: '>=0.10.0'} dev: true /default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + resolution: + { + integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== + } engines: {node: '>=18'} dev: true /default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + resolution: + { + integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== + } engines: {node: '>=18'} dependencies: bundle-name: 4.1.0 @@ -1795,20 +2541,29 @@ packages: dev: true /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + resolution: + { + integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + } engines: {node: '>= 10'} dependencies: execa: 5.1.1 dev: true /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + } dependencies: clone: 1.0.4 dev: true /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + resolution: + { + integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + } engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 @@ -1817,12 +2572,18 @@ packages: dev: true /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + resolution: + { + integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== + } engines: {node: '>=12'} dev: true /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + } engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -1831,83 +2592,141 @@ packages: dev: true /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + } engines: {node: '>=0.4.0'} dev: false /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + resolution: + { + integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + } engines: {node: '>= 0.6'} dev: true /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + } engines: {node: '>= 0.8'} dev: true /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + } engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + resolution: + { + integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + } engines: {node: '>=8'} dev: true /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + resolution: + { + integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + } dev: true /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + } dev: true /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + } engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + } dev: true /dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + resolution: + { + integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== + } engines: {node: '>=6'} dependencies: '@leichtgewicht/ip-codec': 2.0.5 dev: true /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + } dev: true /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + } + dev: true + + /electron-to-chromium@1.4.723: + resolution: + { + integrity: sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw== + } dev: true - /electron-to-chromium@1.4.721: - resolution: {integrity: sha512-k1x2r6foI8iJOp+1qTxbbrrWMsOiHkzGBYwYigaq+apO1FSqtn44KTo3Sy69qt7CRr7149zTcsDvH7MUKsOuIQ==} + /emoji-regex@10.3.0: + resolution: + { + integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + } dev: true /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + } dev: true /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + } dev: true /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + } engines: {node: '>= 0.8'} dev: true /enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + resolution: + { + integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== + } engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -1915,7 +2734,10 @@ packages: dev: true /enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + resolution: + { + integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + } engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 @@ -1923,24 +2745,36 @@ packages: dev: true /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + resolution: + { + integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + } engines: {node: '>=6'} dev: true /envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + resolution: + { + integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg== + } engines: {node: '>=4'} hasBin: true dev: true /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + } dependencies: is-arrayish: 0.2.1 dev: true - /es-abstract@1.23.2: - resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + /es-abstract@1.23.3: + resolution: + { + integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + } engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 @@ -1992,30 +2826,45 @@ packages: dev: true /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + resolution: + { + integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + } engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 dev: true /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + resolution: + { + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + } engines: {node: '>= 0.4'} dev: true /es-module-lexer@1.5.0: - resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} + resolution: + { + integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw== + } dev: true /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + resolution: + { + integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + } engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 dev: true /es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + resolution: + { + integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + } engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 @@ -2024,13 +2873,19 @@ packages: dev: true /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + resolution: + { + integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + } dependencies: hasown: 2.0.2 dev: true /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + } engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 @@ -2039,7 +2894,10 @@ packages: dev: true /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + resolution: + { + integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + } engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -2070,21 +2928,33 @@ packages: dev: true /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + resolution: + { + integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + } engines: {node: '>=6'} dev: true /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + } dev: true /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + } engines: {node: '>=0.8.0'} dev: true /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + resolution: + { + integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + } engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 @@ -2092,44 +2962,75 @@ packages: dev: true /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + } engines: {node: '>=4'} hasBin: true dev: true /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + } engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + resolution: + { + integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + } engines: {node: '>=4.0'} dev: true /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + } engines: {node: '>=4.0'} dev: true /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + resolution: + { + integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + } engines: {node: '>= 0.6'} dev: true /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + resolution: + { + integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + } + dev: true + + /eventemitter3@5.0.1: + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + } dev: true /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + resolution: + { + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + } engines: {node: '>=0.8.x'} dev: true /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + } engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 @@ -2143,8 +3044,29 @@ packages: strip-final-newline: 2.0.0 dev: true + /execa@8.0.1: + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + } + engines: {node: '>=16.17'} + 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.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + resolution: + { + integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + } engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 @@ -2183,11 +3105,17 @@ packages: dev: true /extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + resolution: + { + integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== + } dev: true /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + } engines: {node: '>=4'} dependencies: chardet: 0.7.0 @@ -2196,11 +3124,17 @@ packages: dev: true /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + } dev: true /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + } engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2211,36 +3145,54 @@ packages: dev: true /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + } dev: true /fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + resolution: + { + integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + } engines: {node: '>= 4.9.1'} dev: true /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + resolution: + { + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + } dependencies: reusify: 1.0.4 dev: true /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + resolution: + { + integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + } engines: {node: '>=0.8.0'} dependencies: websocket-driver: 0.7.4 dev: true /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + } engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + resolution: + { + integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + } engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 @@ -2255,7 +3207,10 @@ packages: dev: true /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + } engines: {node: '>=8'} dependencies: locate-path: 5.0.0 @@ -2263,7 +3218,10 @@ packages: dev: true /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + } engines: {node: '>=10'} dependencies: locate-path: 6.0.0 @@ -2271,19 +3229,28 @@ packages: dev: true /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + resolution: + { + integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== + } dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 dev: true /flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + resolution: + { + integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + } hasBin: true dev: true /follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + resolution: + { + integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + } engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -2292,13 +3259,19 @@ packages: optional: true /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + } dependencies: is-callable: 1.2.7 dev: true /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + resolution: + { + integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + } engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 @@ -2306,7 +3279,10 @@ packages: dev: true /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + resolution: + { + integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + } engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 @@ -2315,17 +3291,26 @@ packages: dev: false /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + resolution: + { + integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + } engines: {node: '>= 0.6'} dev: true /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + } engines: {node: '>= 0.6'} dev: true /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + resolution: + { + integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + } engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 @@ -2334,7 +3319,10 @@ packages: dev: true /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + resolution: + { + integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + } engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 @@ -2343,7 +3331,10 @@ packages: dev: true /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + } engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -2351,30 +3342,53 @@ packages: optional: true /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + } dev: true /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + resolution: + { + integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 functions-have-names: 1.2.3 dev: true /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + } dev: true /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + } engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-east-asian-width@1.2.0: + resolution: + { + integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + } + engines: {node: '>=18'} + dev: true + /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + resolution: + { + integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + } engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 @@ -2385,12 +3399,26 @@ packages: dev: true /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + } engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + } + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + resolution: + { + integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -2399,25 +3427,37 @@ packages: dev: true /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + } engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + } engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + resolution: + { + integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + } dev: true /glob@10.3.12: - resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + resolution: + { + integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== + } engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: @@ -2429,14 +3469,20 @@ packages: dev: true /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + resolution: + { + integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + } engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 dev: true /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + } engines: {node: '>=10'} dependencies: array-union: 2.1.0 @@ -2448,78 +3494,123 @@ packages: dev: true /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + } dependencies: get-intrinsic: 1.2.4 dev: true /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + } dev: true /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + resolution: + { + integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + } dev: true /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + resolution: + { + integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + } dev: true /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + resolution: + { + integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + } engines: {node: '>=6'} dev: true /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + } dev: true /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + } engines: {node: '>=4'} dev: true /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + } engines: {node: '>=8'} dev: true /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + resolution: + { + integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + } dependencies: es-define-property: 1.0.0 dev: true /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + resolution: + { + integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + } engines: {node: '>= 0.4'} dev: true /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + } engines: {node: '>= 0.4'} dev: true /has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + resolution: + { + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + } engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + } engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 dev: true /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + resolution: + { + integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + } dev: true /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + resolution: + { + integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + } dependencies: inherits: 2.0.4 obuf: 1.1.2 @@ -2528,15 +3619,24 @@ packages: dev: true /html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + resolution: + { + integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + } dev: true /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + resolution: + { + integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + } dev: true /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + resolution: + { + integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + } engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 @@ -2546,7 +3646,10 @@ packages: dev: true /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + } engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 @@ -2557,11 +3660,17 @@ packages: dev: true /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + resolution: + { + integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + } dev: true /http-proxy-middleware@2.0.6(@types/express@4.17.21): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + resolution: + { + integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + } engines: {node: '>=12.0.0'} peerDependencies: '@types/express': ^4.17.13 @@ -2580,7 +3689,10 @@ packages: dev: true /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + resolution: + { + integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + } engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 @@ -2591,23 +3703,52 @@ packages: dev: true /human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + resolution: + { + integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw== + } dev: true /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + } engines: {node: '>=10.17.0'} dev: true + /human-signals@5.0.0: + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + } + engines: {node: '>=16.17.0'} + dev: true + + /husky@9.0.11: + resolution: + { + integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== + } + engines: {node: '>=18'} + hasBin: true + dev: true + /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + } engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true /icss-utils@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + resolution: + { + integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + } engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -2616,12 +3757,18 @@ packages: dev: true /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + resolution: + { + integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + } engines: {node: '>= 4'} dev: true /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + } engines: {node: '>=6'} dependencies: parent-module: 1.0.1 @@ -2629,7 +3776,10 @@ packages: dev: true /import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + resolution: + { + integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + } engines: {node: '>=8'} hasBin: true dependencies: @@ -2638,20 +3788,32 @@ packages: dev: true /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + } engines: {node: '>=8'} dev: true /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + resolution: + { + integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + } dev: true /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + } dev: true /internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + resolution: + { + integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + } engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 @@ -2660,22 +3822,34 @@ packages: dev: true /interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + resolution: + { + integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + } engines: {node: '>=10.13.0'} dev: true /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + resolution: + { + integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + } engines: {node: '>= 0.10'} dev: true /ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + resolution: + { + integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + } engines: {node: '>= 10'} dev: true /is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + resolution: + { + integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -2683,24 +3857,36 @@ packages: dev: true /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + } dev: true /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + } dependencies: has-bigints: 1.0.2 dev: true /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + } engines: {node: '>=8'} dependencies: binary-extensions: 2.3.0 dev: true /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -2708,55 +3894,100 @@ packages: dev: true /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + } engines: {node: '>= 0.4'} dev: true /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + resolution: + { + integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + } dependencies: hasown: 2.0.2 dev: true /is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + resolution: + { + integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + } engines: {node: '>= 0.4'} dependencies: is-typed-array: 1.1.13 dev: true /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + } engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 dev: true /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== + } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true dev: true /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + } engines: {node: '>=0.10.0'} dev: true /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + } engines: {node: '>=8'} dev: true + /is-fullwidth-code-point@4.0.0: + resolution: + { + integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + } + engines: {node: '>=12'} + dev: true + + /is-fullwidth-code-point@5.0.0: + resolution: + { + integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + } + engines: {node: '>=18'} + dependencies: + get-east-asian-width: 1.2.0 + dev: true + /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + } engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + } engines: {node: '>=14.16'} hasBin: true dependencies: @@ -2764,46 +3995,70 @@ packages: dev: true /is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + resolution: + { + integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + } engines: {node: '>= 0.4'} dev: true /is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + resolution: + { + integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g== + } engines: {node: '>=16'} dev: true /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + } engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 dev: true /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + } engines: {node: '>=0.12.0'} dev: true /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + resolution: + { + integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + } engines: {node: '>=0.10.0'} dev: true /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + resolution: + { + integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + } engines: {node: '>=10'} dev: true /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + resolution: + { + integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + } engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 dev: true /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -2811,82 +4066,132 @@ packages: dev: true /is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + resolution: + { + integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 dev: true /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + } engines: {node: '>=8'} dev: true + /is-stream@3.0.0: + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + } + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + } engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 dev: true /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + resolution: + { + integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== + } engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 dev: true /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + } engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true /is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + resolution: + { + integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + } engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.15 dev: true /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + } dependencies: call-bind: 1.0.7 dev: true /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + } engines: {node: '>=0.10.0'} dev: true /is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + resolution: + { + integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + } engines: {node: '>=16'} dependencies: is-inside-container: 1.0.0 dev: true /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + } dev: true /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + } dev: true /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + } dev: true /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + resolution: + { + integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + } engines: {node: '>=0.10.0'} dev: true /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + resolution: + { + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + } engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -2895,29 +4200,44 @@ packages: dev: true /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + resolution: + { + integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + } engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.30 + '@types/node': 20.12.2 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + resolution: + { + integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + } hasBin: true dev: true /joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + resolution: + { + integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== + } engines: {node: '>=10'} dev: true /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + } /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + } hasBin: true dependencies: argparse: 1.0.10 @@ -2925,68 +4245,152 @@ packages: dev: true /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + } hasBin: true dependencies: argparse: 2.0.1 dev: true /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + } dev: true /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + } dev: true /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + } dev: true /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + resolution: + { + integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + } optionalDependencies: graceful-fs: 4.2.11 dev: true /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + resolution: + { + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + } engines: {node: '>=0.10.0'} dev: true /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + } engines: {node: '>=6'} dev: true /launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + resolution: + { + integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw== + } dependencies: picocolors: 1.0.0 shell-quote: 1.8.1 dev: true /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + } engines: {node: '>=10'} dev: true + /lilconfig@3.0.0: + resolution: + { + integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + } + engines: {node: '>=14'} + dev: true + /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + resolution: + { + integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + } engines: {node: '>=14'} dev: true /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + } + dev: true + + /lint-staged@15.2.2: + resolution: + { + integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw== + } + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2@8.0.1: + resolution: + { + integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA== + } + engines: {node: '>=18.0.0'} + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.1 + wrap-ansi: 9.0.0 dev: true /load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + resolution: + { + integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== + } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + resolution: + { + integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== + } engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 @@ -2996,85 +4400,144 @@ packages: dev: true /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + resolution: + { + integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + } engines: {node: '>=6.11.5'} dev: true /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + } engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: true /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + } engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + resolution: + { + integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + } dev: true /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + resolution: + { + integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + } + dev: true + + /log-update@6.0.0: + resolution: + { + integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== + } + engines: {node: '>=18'} + dependencies: + ansi-escapes: 6.2.1 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 dev: true /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + } hasBin: true dependencies: js-tokens: 4.0.0 /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + resolution: + { + integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + } engines: {node: 14 || >=16.14} dev: true /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + resolution: + { + integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + } dependencies: pseudomap: 1.0.2 yallist: 2.1.2 dev: true /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + } engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + resolution: + { + integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + } engines: {node: '>=0.10.0'} dev: true /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + resolution: + { + integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + } engines: {node: '>=8'} dev: true /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + resolution: + { + integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + } engines: {node: '>= 0.6'} dev: true - /memfs@4.8.0: - resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} + /memfs@4.8.1: + resolution: + { + integrity: sha512-7q/AdPzf2WpwPlPL4v1kE2KsJsHl7EF4+hAeVzlyanr2+YnR21NVn9mDqo+7DEaKDRsQy8nvxPlKH4WqMtiO0w== + } engines: {node: '>= 4.0.0'} dependencies: tslib: 2.6.2 dev: true /memory-cache@0.2.0: - resolution: {integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==} + resolution: + { + integrity: sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA== + } dev: false /meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + resolution: + { + integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== + } engines: {node: '>=8'} dependencies: '@types/minimist': 1.2.5 @@ -3091,25 +4554,40 @@ packages: dev: true /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + resolution: + { + integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + } dev: true /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + } dev: true /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + } engines: {node: '>= 8'} dev: true /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + resolution: + { + integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + } engines: {node: '>= 0.6'} dev: true /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + } engines: {node: '>=8.6'} dependencies: braces: 3.0.2 @@ -3117,44 +4595,85 @@ packages: dev: true /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + } engines: {node: '>= 0.6'} /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + } engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + } engines: {node: '>=4'} hasBin: true dev: true + /mime@4.0.1: + resolution: + { + integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA== + } + engines: {node: '>=16'} + hasBin: true + dev: true + /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + } engines: {node: '>=6'} dev: true + /mimic-fn@4.0.0: + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + } + engines: {node: '>=12'} + dev: true + /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + resolution: + { + integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + } engines: {node: '>=4'} dev: true /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + resolution: + { + integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + } dev: true /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + resolution: + { + integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + } engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + resolution: + { + integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + } engines: {node: '>= 6'} dependencies: arrify: 1.0.1 @@ -3163,29 +4682,47 @@ packages: dev: true /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + resolution: + { + integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + } engines: {node: '>=16 || 14 >=14.17'} dev: true /mixme@0.5.10: - resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} + resolution: + { + integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q== + } engines: {node: '>= 8.0.0'} dev: true /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + } dev: true /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + } dev: true /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + } dev: true /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + resolution: + { + integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + } hasBin: true dependencies: dns-packet: 5.6.1 @@ -3193,7 +4730,10 @@ packages: dev: true /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + } dependencies: any-promise: 1.3.0 object-assign: 4.1.1 @@ -3201,31 +4741,49 @@ packages: dev: true /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + } engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + } engines: {node: '>= 0.6'} dev: true /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + resolution: + { + integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + } dev: true /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + resolution: + { + integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + } engines: {node: '>= 6.13.0'} dev: true /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + resolution: + { + integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + } dev: true /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + resolution: + { + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + } dependencies: hosted-git-info: 2.8.9 resolve: 1.22.8 @@ -3234,37 +4792,68 @@ packages: dev: true /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + } engines: {node: '>=0.10.0'} dev: true /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + } engines: {node: '>=8'} dependencies: path-key: 3.1.1 dev: true + /npm-run-path@5.3.0: + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + } + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + } engines: {node: '>=0.10.0'} /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + } engines: {node: '>= 6'} dev: true /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + resolution: + { + integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + } dev: true /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + } engines: {node: '>= 0.4'} dev: true /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + resolution: + { + integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -3274,30 +4863,55 @@ packages: dev: true /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + resolution: + { + integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + } dev: true /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + } engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 dev: true /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + resolution: + { + integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + } engines: {node: '>= 0.8'} dev: true /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + } engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 dev: true + /onetime@6.0.0: + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + } + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + /open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + resolution: + { + integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== + } engines: {node: '>=18'} dependencies: default-browser: 5.2.1 @@ -3307,56 +4921,83 @@ packages: dev: true /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + } engines: {node: '>=0.10.0'} dev: true /outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + resolution: + { + integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== + } dev: true /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + resolution: + { + integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== + } engines: {node: '>=8'} dependencies: p-map: 2.1.0 dev: true /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + } engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: true /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + } engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + } engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: true /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + } engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + resolution: + { + integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + } engines: {node: '>=6'} dev: true /p-retry@6.2.0: - resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + resolution: + { + integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA== + } engines: {node: '>=16.17'} dependencies: '@types/retry': 0.12.2 @@ -3365,19 +5006,28 @@ packages: dev: true /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + } engines: {node: '>=6'} dev: true /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + } engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + } engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.24.2 @@ -3387,26 +5037,49 @@ packages: dev: true /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + } engines: {node: '>= 0.8'} dev: true /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + } engines: {node: '>=8'} dev: true /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + } engines: {node: '>=8'} dev: true + /path-key@4.0.0: + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + } + engines: {node: '>=12'} + dev: true + /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + } dev: true /path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + resolution: + { + integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== + } engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.2.0 @@ -3414,52 +5087,91 @@ packages: dev: true /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + resolution: + { + integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + } dev: true /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + } engines: {node: '>=8'} dev: true /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + } dev: true /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + } engines: {node: '>=8.6'} dev: true + /pidtree@0.6.0: + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + } + engines: {node: '>=0.10'} + hasBin: true + dev: true + /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + } engines: {node: '>=0.10.0'} dev: true /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + resolution: + { + integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + } engines: {node: '>=6'} dev: true /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + } engines: {node: '>= 6'} dev: true /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + resolution: + { + integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + } engines: {node: '>=8'} dependencies: find-up: 4.1.0 dev: true /possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + resolution: + { + integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + } engines: {node: '>= 0.4'} dev: true /postcss-import@15.1.0(postcss@8.4.38): - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + } engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 @@ -3471,7 +5183,10 @@ packages: dev: true /postcss-js@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + } engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 @@ -3481,7 +5196,10 @@ packages: dev: true /postcss-load-config@4.0.2(postcss@8.4.38): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + resolution: + { + integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + } engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' @@ -3498,7 +5216,10 @@ packages: dev: true /postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.3)(webpack@5.91.0): - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + resolution: + { + integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ== + } engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -3520,7 +5241,10 @@ packages: dev: true /postcss-modules-extract-imports@3.0.0(postcss@8.4.38): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + resolution: + { + integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + } engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -3529,7 +5253,10 @@ packages: dev: true /postcss-modules-local-by-default@4.0.4(postcss@8.4.38): - resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + resolution: + { + integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q== + } engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -3541,7 +5268,10 @@ packages: dev: true /postcss-modules-scope@3.1.1(postcss@8.4.38): - resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + resolution: + { + integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA== + } engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -3551,7 +5281,10 @@ packages: dev: true /postcss-modules-values@4.0.0(postcss@8.4.38): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + resolution: + { + integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + } engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -3561,7 +5294,10 @@ packages: dev: true /postcss-nested@6.0.1(postcss@8.4.38): - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + resolution: + { + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + } engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 @@ -3571,7 +5307,10 @@ packages: dev: true /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + resolution: + { + integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== + } engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -3579,11 +5318,17 @@ packages: dev: true /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + } dev: true /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + resolution: + { + integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + } engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -3592,7 +5337,10 @@ packages: dev: true /preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + resolution: + { + integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w== + } engines: {node: '>=10'} dependencies: find-up: 5.0.0 @@ -3602,17 +5350,35 @@ packages: dev: true /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + resolution: + { + integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + } engines: {node: '>=10.13.0'} hasBin: true dev: true + /prettier@3.2.5: + resolution: + { + integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + } + engines: {node: '>=14'} + hasBin: true + dev: true + /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + } dev: true /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + } dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 @@ -3620,7 +5386,10 @@ packages: dev: false /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + resolution: + { + integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + } engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 @@ -3628,47 +5397,74 @@ packages: dev: true /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: + { + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + } dev: false /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + resolution: + { + integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + } dev: true /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + } engines: {node: '>=6'} dev: true /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + resolution: + { + integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + } engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 dev: true /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + } dev: true /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + resolution: + { + integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + } engines: {node: '>=8'} dev: true /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + } dependencies: safe-buffer: 5.2.1 dev: true /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + } engines: {node: '>= 0.6'} dev: true /raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + resolution: + { + integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + } engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 @@ -3678,23 +5474,35 @@ packages: dev: true /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + } dev: false /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + resolution: + { + integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + } engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + } dependencies: pify: 2.3.0 dev: true /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + resolution: + { + integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + } engines: {node: '>=8'} dependencies: find-up: 4.1.0 @@ -3703,7 +5511,10 @@ packages: dev: true /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + resolution: + { + integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + } engines: {node: '>=8'} dependencies: '@types/normalize-package-data': 2.4.4 @@ -3713,7 +5524,10 @@ packages: dev: true /read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + resolution: + { + integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== + } engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 @@ -3723,7 +5537,10 @@ packages: dev: true /readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + } dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -3735,7 +5552,10 @@ packages: dev: true /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + } engines: {node: '>= 6'} dependencies: inherits: 2.0.4 @@ -3744,21 +5564,30 @@ packages: dev: true /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + } engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: true /rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + resolution: + { + integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + } engines: {node: '>= 10.13.0'} dependencies: resolve: 1.22.8 dev: true /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + resolution: + { + integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + } engines: {node: '>=8'} dependencies: indent-string: 4.0.0 @@ -3766,10 +5595,16 @@ packages: dev: true /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + resolution: + { + integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + } /regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + resolution: + { + integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -3779,42 +5614,66 @@ packages: dev: true /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + } engines: {node: '>=0.10.0'} dev: true /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + } engines: {node: '>=0.10.0'} dev: true /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + resolution: + { + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + } dev: true /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolution: + { + integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + } dev: true /resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + resolution: + { + integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + } engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 dev: true /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + } engines: {node: '>=4'} dev: true /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + } engines: {node: '>=8'} dev: true /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + } hasBin: true dependencies: is-core-module: 2.13.1 @@ -3822,18 +5681,45 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true + /restore-cursor@4.0.0: + resolution: + { + integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + } + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + resolution: + { + integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + } engines: {node: '>= 4'} dev: true /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + } engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true + /rfdc@1.3.1: + resolution: + { + integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + } + dev: true + /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + resolution: + { + integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + } engines: {node: '>=14'} hasBin: true dependencies: @@ -3841,7 +5727,10 @@ packages: dev: true /rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} + resolution: + { + integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g== + } engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: @@ -3866,18 +5755,27 @@ packages: dev: true /run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + resolution: + { + integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== + } engines: {node: '>=18'} dev: true /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + } dependencies: queue-microtask: 1.2.3 dev: true /safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + resolution: + { + integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + } engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 @@ -3887,15 +5785,24 @@ packages: dev: true /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + } dev: true /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + } dev: true /safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + resolution: + { + integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -3904,11 +5811,17 @@ packages: dev: true /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + } dev: true /schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + resolution: + { + integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + } engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.15 @@ -3917,7 +5830,10 @@ packages: dev: true /schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + resolution: + { + integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + } engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.15 @@ -3927,11 +5843,17 @@ packages: dev: true /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + resolution: + { + integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + } dev: true /selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + resolution: + { + integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + } engines: {node: '>=10'} dependencies: '@types/node-forge': 1.3.11 @@ -3939,12 +5861,18 @@ packages: dev: true /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: + { + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + } hasBin: true dev: true /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + resolution: + { + integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + } engines: {node: '>=10'} hasBin: true dependencies: @@ -3952,7 +5880,10 @@ packages: dev: true /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + resolution: + { + integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + } engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 @@ -3973,13 +5904,19 @@ packages: dev: true /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + resolution: + { + integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + } dependencies: randombytes: 2.1.0 dev: true /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + resolution: + { + integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + } engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 @@ -3994,7 +5931,10 @@ packages: dev: true /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + resolution: + { + integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + } engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 @@ -4006,11 +5946,17 @@ packages: dev: true /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + } dev: true /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + resolution: + { + integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + } engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -4022,7 +5968,10 @@ packages: dev: true /set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + resolution: + { + integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + } engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -4032,50 +5981,77 @@ packages: dev: true /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + resolution: + { + integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + } dev: true /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + } dev: true /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + resolution: + { + integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + } engines: {node: '>=8'} dependencies: kind-of: 6.0.3 dev: true /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + resolution: + { + integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + } engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 dev: true /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + } engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + resolution: + { + integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + } engines: {node: '>=0.10.0'} dev: true /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + } engines: {node: '>=8'} dev: true /shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + resolution: + { + integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + } dev: true /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + resolution: + { + integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -4085,21 +6061,55 @@ packages: dev: true /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + } dev: true /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + } engines: {node: '>=14'} dev: true /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + } engines: {node: '>=8'} dev: true + /slice-ansi@5.0.0: + resolution: + { + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + } + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /slice-ansi@7.1.0: + resolution: + { + integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + } + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + dev: true + /smartwrap@2.0.2: - resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + resolution: + { + integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA== + } engines: {node: '>=6'} hasBin: true dependencies: @@ -4112,7 +6122,10 @@ packages: dev: true /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + resolution: + { + integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + } dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 @@ -4120,60 +6133,90 @@ packages: dev: true /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + resolution: + { + integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + } engines: {node: '>=0.10.0'} dev: true /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + } dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + } engines: {node: '>=0.10.0'} dev: true /source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + resolution: + { + integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + } engines: {node: '>= 8'} dependencies: whatwg-url: 7.1.0 dev: true /spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + resolution: + { + integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA== + } dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 dev: true /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + } dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 dev: true /spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + resolution: + { + integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + } dev: true /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + } dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 dev: true /spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + resolution: + { + integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== + } dev: true /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + resolution: + { + integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + } dependencies: debug: 4.3.4 detect-node: 2.1.0 @@ -4186,7 +6229,10 @@ packages: dev: true /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + resolution: + { + integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + } engines: {node: '>=6.0.0'} dependencies: debug: 4.3.4 @@ -4199,27 +6245,50 @@ packages: dev: true /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + } dev: true /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + resolution: + { + integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + } engines: {node: '>= 0.6'} dev: true /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + } engines: {node: '>= 0.8'} dev: true /stream-transform@2.1.3: - resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + resolution: + { + integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ== + } dependencies: mixme: 0.5.10 dev: true + /string-argv@0.3.2: + resolution: + { + integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + } + engines: {node: '>=0.6.19'} + dev: true + /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + } engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 @@ -4228,7 +6297,10 @@ packages: dev: true /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + } engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 @@ -4236,18 +6308,36 @@ packages: strip-ansi: 7.1.0 dev: true + /string-width@7.1.0: + resolution: + { + integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw== + } + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + /string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + resolution: + { + integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.2 + es-abstract: 1.23.3 es-object-atoms: 1.0.0 dev: true /string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + resolution: + { + integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + } dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -4255,7 +6345,10 @@ packages: dev: true /string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + resolution: + { + integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -4264,50 +6357,82 @@ packages: dev: true /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + } dependencies: safe-buffer: 5.1.2 dev: true /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + } dependencies: safe-buffer: 5.2.1 dev: true /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + } engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + } engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 dev: true /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + } engines: {node: '>=4'} dev: true /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + } engines: {node: '>=6'} dev: true + /strip-final-newline@3.0.0: + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + } + engines: {node: '>=12'} + dev: true + /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + resolution: + { + integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + } engines: {node: '>=8'} dependencies: min-indent: 1.0.1 dev: true /style-loader@3.3.4(webpack@5.91.0): - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + resolution: + { + integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== + } engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 @@ -4316,7 +6441,10 @@ packages: dev: true /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + resolution: + { + integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + } engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: @@ -4330,39 +6458,57 @@ packages: dev: true /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + } engines: {node: '>=4'} dependencies: has-flag: 3.0.0 dev: true /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + } engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + resolution: + { + integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + } engines: {node: '>=10'} dependencies: has-flag: 4.0.0 dev: true /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + } engines: {node: '>= 0.4'} dev: true /tailwind-merge@2.2.2: - resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==} + resolution: + { + integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw== + } dependencies: '@babel/runtime': 7.24.1 dev: false /tailwindcss@3.4.3: - resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} + resolution: + { + integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== + } engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -4393,17 +6539,26 @@ packages: dev: true /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + resolution: + { + integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + } engines: {node: '>=6'} dev: true /term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + resolution: + { + integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + } engines: {node: '>=8'} dev: true /terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.91.0): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + resolution: + { + integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + } engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -4423,12 +6578,15 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.30.0 + terser: 5.30.1 webpack: 5.91.0(esbuild@0.19.12)(webpack-cli@5.1.4) dev: true - /terser@5.30.0: - resolution: {integrity: sha512-Y/SblUl5kEyEFzhMAQdsxVHh+utAxd4IuRNJzKywY/4uzSogh3G219jqbDDxYu4MXO9CzY3tSEqmZvW6AoEDJw==} + /terser@5.30.1: + resolution: + { + integrity: sha512-PJhOnRttZqqmIujxOQOMu4QuFGvh43lR7Youln3k6OJvmxwZ5FxK5rbCEh8XABRCpLf7ZnhrZuclCNCASsScnA== + } engines: {node: '>=10'} hasBin: true dependencies: @@ -4439,67 +6597,103 @@ packages: dev: true /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + } engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 dev: true /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + } dependencies: any-promise: 1.3.0 dev: true /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + resolution: + { + integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + } dev: true /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + } engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 dev: true /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + } engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + } engines: {node: '>=0.6'} dev: true /tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + resolution: + { + integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + } dependencies: punycode: 2.3.1 dev: true /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + } hasBin: true dev: true /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + resolution: + { + integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + } engines: {node: '>=8'} dev: true /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + } dev: true /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + resolution: + { + integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + } dev: true /tsup@8.0.2(postcss@8.4.38)(typescript@5.4.3): - resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} + resolution: + { + integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ== + } engines: {node: '>=18'} hasBin: true peerDependencies: @@ -4539,7 +6733,10 @@ packages: dev: true /tty-table@4.2.3: - resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} + resolution: + { + integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA== + } engines: {node: '>=8.0.0'} hasBin: true dependencies: @@ -4553,22 +6750,34 @@ packages: dev: true /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + resolution: + { + integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + } engines: {node: '>=10'} dev: true /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + resolution: + { + integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + } engines: {node: '>=8'} dev: true /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + resolution: + { + integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + } engines: {node: '>=8'} dev: true /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + resolution: + { + integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + } engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 @@ -4576,7 +6785,10 @@ packages: dev: true /typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + resolution: + { + integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -4585,7 +6797,10 @@ packages: dev: true /typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + resolution: + { + integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -4596,7 +6811,10 @@ packages: dev: true /typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + resolution: + { + integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + } engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 @@ -4608,7 +6826,10 @@ packages: dev: true /typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + resolution: + { + integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + } engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -4620,13 +6841,19 @@ packages: dev: true /typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + resolution: + { + integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== + } engines: {node: '>=14.17'} hasBin: true dev: true /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + } dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 @@ -4635,21 +6862,33 @@ packages: dev: true /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + } dev: true /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + resolution: + { + integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + } engines: {node: '>= 4.0.0'} dev: true /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + resolution: + { + integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + } engines: {node: '>= 0.8'} dev: true /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + resolution: + { + integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + } hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -4660,39 +6899,60 @@ packages: dev: true /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + } dependencies: punycode: 2.3.1 dev: true /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + } dev: true /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + resolution: + { + integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + } engines: {node: '>= 0.4.0'} dev: true /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + } hasBin: true dev: true /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + } dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 dev: true /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + } engines: {node: '>= 0.8'} dev: true /watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + resolution: + { + integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== + } engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 @@ -4700,23 +6960,35 @@ packages: dev: true /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + resolution: + { + integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + } dependencies: minimalistic-assert: 1.0.1 dev: true /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + } dependencies: defaults: 1.0.4 dev: true /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + resolution: + { + integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + } dev: true /webpack-cli@5.1.4(webpack-dev-server@5.0.4)(webpack@5.91.0): - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + resolution: + { + integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg== + } engines: {node: '>=14.15.0'} hasBin: true peerDependencies: @@ -4750,7 +7022,10 @@ packages: dev: true /webpack-dev-middleware@7.2.0(webpack@5.91.0): - resolution: {integrity: sha512-VLzmsjJrf+3UVf3QsT3E7xZ9F9bdhUhQFGRxyl6bmYR+W519UWnK6/teZeqAFFjWEtpVs+JqNPCVqB/s7P4tGg==} + resolution: + { + integrity: sha512-VLzmsjJrf+3UVf3QsT3E7xZ9F9bdhUhQFGRxyl6bmYR+W519UWnK6/teZeqAFFjWEtpVs+JqNPCVqB/s7P4tGg== + } engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.0.0 @@ -4759,7 +7034,7 @@ packages: optional: true dependencies: colorette: 2.0.20 - memfs: 4.8.0 + memfs: 4.8.1 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 @@ -4768,7 +7043,10 @@ packages: dev: true /webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.91.0): - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + resolution: + { + integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA== + } engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: @@ -4820,7 +7098,10 @@ packages: dev: true /webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + resolution: + { + integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== + } engines: {node: '>=10.0.0'} dependencies: clone-deep: 4.0.1 @@ -4829,12 +7110,18 @@ packages: dev: true /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + resolution: + { + integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + } engines: {node: '>=10.13.0'} dev: true /webpack@5.91.0(esbuild@0.19.12)(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + resolution: + { + integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== + } engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -4875,7 +7162,10 @@ packages: dev: true /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + resolution: + { + integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + } engines: {node: '>=0.8.0'} dependencies: http-parser-js: 0.5.8 @@ -4884,12 +7174,18 @@ packages: dev: true /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + resolution: + { + integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + } engines: {node: '>=0.8.0'} dev: true /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + resolution: + { + integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + } dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 @@ -4897,7 +7193,10 @@ packages: dev: true /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + } dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 @@ -4907,11 +7206,17 @@ packages: dev: true /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + resolution: + { + integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + } dev: true /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + resolution: + { + integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== + } engines: {node: '>=8.15'} dependencies: load-yaml-file: 0.2.0 @@ -4919,7 +7224,10 @@ packages: dev: true /which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + resolution: + { + integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + } engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 @@ -4930,14 +7238,20 @@ packages: dev: true /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + resolution: + { + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + } hasBin: true dependencies: isexe: 2.0.0 dev: true /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + } engines: {node: '>= 8'} hasBin: true dependencies: @@ -4945,11 +7259,17 @@ packages: dev: true /wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + resolution: + { + integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + } dev: true /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + } engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 @@ -4958,7 +7278,10 @@ packages: dev: true /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + } engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 @@ -4967,7 +7290,10 @@ packages: dev: true /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + } engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 @@ -4975,8 +7301,23 @@ packages: strip-ansi: 7.1.0 dev: true + /wrap-ansi@9.0.0: + resolution: + { + integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + } + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + string-width: 7.1.0 + strip-ansi: 7.1.0 + dev: true + /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + resolution: + { + integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + } engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -4989,30 +7330,56 @@ packages: dev: true /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + resolution: + { + integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + } dev: true /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + } engines: {node: '>=10'} dev: true /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + resolution: + { + integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + } dev: true /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + } + dev: true + + /yaml@2.3.4: + resolution: + { + integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + } + engines: {node: '>= 14'} dev: true /yaml@2.4.1: - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + resolution: + { + integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + } engines: {node: '>= 14'} hasBin: true dev: true /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + resolution: + { + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + } engines: {node: '>=6'} dependencies: camelcase: 5.3.1 @@ -5020,12 +7387,18 @@ packages: dev: true /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + } engines: {node: '>=12'} dev: true /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + resolution: + { + integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + } engines: {node: '>=8'} dependencies: cliui: 6.0.0 @@ -5042,7 +7415,10 @@ packages: dev: true /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + } engines: {node: '>=12'} dependencies: cliui: 8.0.1 @@ -5055,6 +7431,9 @@ packages: dev: true /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + } engines: {node: '>=10'} dev: true diff --git a/src/env.ts b/src/env.ts index 03c18c9..4e10c9c 100644 --- a/src/env.ts +++ b/src/env.ts @@ -1,36 +1,36 @@ export const ENVIRONMENT = assertValue( process.env.ENVIRONMENT, - "Missing environment variable: ENVIRONMENT" + 'Missing variable: ENVIRONMENT' ); export const BASE_URL = - ENVIRONMENT === "production" - ? "https://api.safaricom.co.ke" - : "https://sandbox.safaricom.co.ke"; + ENVIRONMENT === 'production' + ? 'https://api.safaricom.co.ke' + : 'https://sandbox.safaricom.co.ke'; export const CONSUMER_KEY = assertValue( process.env.MPESA_CONSUMER_KEY, - "Missing environment variable: MPESA_CONSUMER_KEY" + 'Missing variable: MPESA_CONSUMER_KEY' ); export const CONSUMER_SECRET = assertValue( process.env.MPESA_CONSUMER_SECRET, - "Missing environment variable: MPESA_CONSUMER_SECRET" + 'Missing variable: MPESA_CONSUMER_SECRET' ); export const BUSINESS_SHORT_CODE = assertValue( process.env.MPESA_BUSINESS_SHORT_CODE, - "Missing environment variable: MPESA_BUSINESS_SHORT_CODE" + 'Missing variable: MPESA_BUSINESS_SHORT_CODE' ); export const MPESA_TRANSACTION_TYPE = assertValue( process.env.MPESA_TRANSACTION_TYPE, - "Missing environment variable: MPESA_TRANSACTION_TYPE" + 'Missing variable: MPESA_TRANSACTION_TYPE' ); export const PASSKEY = assertValue( process.env.MPESA_API_PASS_KEY, - "Missing environment variable: PASSKEY" + 'Missing variable: PASSKEY' ); function assertValue(v: T | undefined, errorMessage: string): T { diff --git a/src/index.ts b/src/index.ts index c86c95b..116d320 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,8 @@ -import "../index.css"; +import '../index.css'; -export * from "./types/types"; -export * from "./wrapper-fns"; -export * from "./env"; -export * from "./utils"; -export * from "./next"; -export * from "./react"; +export * from './types/types'; +export * from './wrapper-fns'; +export * from './env'; +export * from './utils'; +export * from './next'; +export * from './react'; diff --git a/src/next/QrCodeDisplay.tsx b/src/next/QrCodeDisplay.tsx index 2165525..60f7976 100644 --- a/src/next/QrCodeDisplay.tsx +++ b/src/next/QrCodeDisplay.tsx @@ -1,27 +1,27 @@ -"use server"; +'use server'; -import { faCircleNotch } from "@fortawesome/free-solid-svg-icons"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import React from "react"; -import { twMerge } from "tailwind-merge"; -import { fetchQrCode } from "../wrapper-fns/wrapper-fns"; -import { ScannableQrParamsInternal } from "../types/types"; -import { BUSINESS_SHORT_CODE } from "../env"; +import {faCircleNotch} from '@fortawesome/free-solid-svg-icons'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import React from 'react'; +import {twMerge} from 'tailwind-merge'; +import {fetchQrCode} from '../wrapper-fns/wrapper-fns'; +import {ScannableQrParamsInternal} from '../types/types'; +import {BUSINESS_SHORT_CODE} from '../env'; -export type ScannableQrParams = Omit; +export type ScannableQrParams = Omit; export const QrCodeDisplay = async ({ className, - scannableQRParams, + scannableQRParams }: { className?: string; scannableQRParams: ScannableQrParams; }) => { const res = await fetchQrCode({ ...scannableQRParams, - CPI: BUSINESS_SHORT_CODE, + CPI: BUSINESS_SHORT_CODE }); - const { QRCode } = res; + const {QRCode} = res; return (
diff --git a/src/next/index.ts b/src/next/index.ts index 9b31c9d..0f06129 100644 --- a/src/next/index.ts +++ b/src/next/index.ts @@ -1 +1 @@ -export { QrCodeDisplay, ScannableQrParams } from "./QrCodeDisplay"; +export {QrCodeDisplay, ScannableQrParams} from './QrCodeDisplay'; diff --git a/src/react/QrCodeDisplay.tsx b/src/react/QrCodeDisplay.tsx index 0f30627..ed1ef05 100644 --- a/src/react/QrCodeDisplay.tsx +++ b/src/react/QrCodeDisplay.tsx @@ -1,11 +1,11 @@ -import { faCircleNotch } from "@fortawesome/free-solid-svg-icons"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import React from "react"; -import { twMerge } from "tailwind-merge"; +import {faCircleNotch} from '@fortawesome/free-solid-svg-icons'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import React from 'react'; +import {twMerge} from 'tailwind-merge'; export const QrCodeDisplay = ({ className, - qrString, + qrString }: { className?: string; qrString: string; diff --git a/src/react/index.ts b/src/react/index.ts index d4b77c1..37b0526 100644 --- a/src/react/index.ts +++ b/src/react/index.ts @@ -1 +1 @@ -export { QrCodeDisplay as QRCodeDisplayReact } from "./QrCodeDisplay"; +export {QrCodeDisplay as QRCodeDisplayReact} from './QrCodeDisplay'; diff --git a/src/types/types.ts b/src/types/types.ts index 15de8f7..67e0c84 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -1,2225 +1,2224 @@ export interface ContextData { - accessToken: string | null; - mode: "development" | "production"; - businessShortCode: BusinessShortCode | null; - baseURL: string; - productionPassKey: string | null; - } - - export type InitOptions = { - consumerKey: string; - consumerSecret: string; - }; - - export interface AccessTokenResponse { - access_token: string; - expires_in: string; - } - - /** - * Type alias for the organization's shortcode (Paybill or Buygoods - A 5 to 6-digit account number) + accessToken: string | null; + mode: 'development' | 'production'; + businessShortCode: BusinessShortCode | null; + baseURL: string; + productionPassKey: string | null; +} + +export type InitOptions = { + consumerKey: string; + consumerSecret: string; +}; + +export interface AccessTokenResponse { + access_token: string; + expires_in: string; +} + +/** + * Type alias for the organization's shortcode (Paybill or Buygoods - A 5 to 6-digit account number) + * used to identify an organization and receive the transaction. + * @typedef {string} BusinessShortCode + * @example "654321" + */ +export type BusinessShortCode = string; + +/** + * Scannable QR Parameters + */ +export interface ScannableQrParamsInternal { + /** + * Name of the Company/M-Pesa Merchant Name + */ + MerchantName: string; + + /** + * Transaction Reference + */ + RefNo: string; + + /** + * The total amount for the sale/transaction. + */ + Amount: number; + + /** + * Transaction Type. The supported types are: + * - BG: Pay Merchant (Buy Goods). + * - WA: Withdraw Cash at Agent Till. + * - PB: Paybill or Business number. + * - SM: Send Money(Mobile number) + * - SB: Sent to Business. Business number CPI in MSISDN format. + */ + TrxCode: 'BG' | 'WA' | 'PB' | 'SM' | 'SB'; + + /** + * Credit Party Identifier. Can be a Mobile Number, Business Number, Agent Till, Paybill or Business number, or Merchant Buy Goods. + */ + CPI: string; + + /** + * Size of the QR code image in pixels. QR code image will always be a square image. + */ + Size: string; +} + +export interface ScannableQrCodeResponse { + ResponseCode: string; + RequestID: string; + ResponseDescription: string; + QRCode: string; +} + +/** + * Request Parameter Definition + * @interface StateOfALNMOnlinePaymentBody + */ +export interface StateOfALNMOnlinePaymentBody { + /** + * This is the organization's shortcode (Paybill or Buygoods - a 5 to 7-digit account number) * used to identify an organization and receive the transaction. - * @typedef {string} BusinessShortCode + * @type {string} * @example "654321" */ - export type BusinessShortCode = string; - + BusinessShortCode: string; + /** - * Scannable QR Parameters + * This is the password used for encrypting the request sent: a base64 encoded string. + * (The base64 string is a combination of Shortcode+Passkey+Timestamp). + * @type {string} + * @example "base64.encode(Shortcode+Passkey+Timestamp)" */ - export interface ScannableQrParamsInternal { - /** - * Name of the Company/M-Pesa Merchant Name - */ - MerchantName: string; - - /** - * Transaction Reference - */ - RefNo: string; - - /** - * The total amount for the sale/transaction. - */ - Amount: number; - - /** - * Transaction Type. The supported types are: - * - BG: Pay Merchant (Buy Goods). - * - WA: Withdraw Cash at Agent Till. - * - PB: Paybill or Business number. - * - SM: Send Money(Mobile number) - * - SB: Sent to Business. Business number CPI in MSISDN format. - */ - TrxCode: "BG" | "WA" | "PB" | "SM" | "SB"; - - /** - * Credit Party Identifier. Can be a Mobile Number, Business Number, Agent Till, Paybill or Business number, or Merchant Buy Goods. - */ - CPI: string; - - /** - * Size of the QR code image in pixels. QR code image will always be a square image. - */ - Size: string; - } - - export interface ScannableQrCodeResponse { - ResponseCode: string; - RequestID: string; - ResponseDescription: string; - QRCode: string; - } - - /** - * Request Parameter Definition - * @interface StateOfALNMOnlinePaymentBody - */ - export interface StateOfALNMOnlinePaymentBody { - /** - * This is the organization's shortcode (Paybill or Buygoods - a 5 to 7-digit account number) - * used to identify an organization and receive the transaction. - * @type {string} - * @example "654321" - */ - BusinessShortCode: string; - - /** - * This is the password used for encrypting the request sent: a base64 encoded string. - * (The base64 string is a combination of Shortcode+Passkey+Timestamp). - * @type {string} - * @example "base64.encode(Shortcode+Passkey+Timestamp)" - */ - Password: string; - - /** - * This is the Timestamp of the transaction, normally in the format of YEAR+MONTH+DATE+HOUR+MINUTE+SECOND (YYYYMMDDHHMMSS). - * Each part should be at least two digits, apart from the year which takes four digits. - * @type {string} - * @example "YYYYMMDDHHmmss" - */ - Timestamp: string; - - /** - * This is a global unique identifier of the processed checkout transaction request. - * @type {string} - * @example "ws_CO_DMZ_123212312_23423" - */ - CheckoutRequestID: string; - } - + Password: string; + /** - * @type {StateOfALNMOnlinePaymentResponse} + * This is the Timestamp of the transaction, normally in the format of YEAR+MONTH+DATE+HOUR+MINUTE+SECOND (YYYYMMDDHHMMSS). + * Each part should be at least two digits, apart from the year which takes four digits. + * @type {string} + * @example "YYYYMMDDHHmmss" */ - export interface StateOfALNMOnlinePaymentResponse { - /** - * This is a numeric status code that indicates the status of the transaction submission. - * 0 means successful submission and any other code means an error occurred. - * @type {string} - * @example "0" - */ - ResponseCode: string; - - /** - * Response description is an acknowledgment message from the API that gives the status of the request submission usually maps to a specific ResponseCode value. - * It can be a "Success" submission message or an error description. - * @type {string} - * @example "The service request has failed." - */ - ResponseDescription: string; - - /** - * This is a global unique Identifier for any submitted payment request. - * @type {string} - * @example "16813-1590513-1" - */ - MerchantRequestID: string; - - /** - * This is a global unique identifier of the processed checkout transaction request. - * @type {string} - * @example "ws_CO_DMZ_123212312_2342347678234" - */ - CheckoutRequestID: string; - - /** - * This is a numeric status code that indicates the status of the transaction processing. - * 0 means successful processing and any other code means an error occurred or the transaction failed. - * @type {string} - * @example "0" - */ - ResultCode: string; - - /** - * Result description is a message from the API that gives the status of the request processing, usually maps to a specific ResultCode value. - * It can be a success processing message or an error description message. - * @type {string} - * @example "0: The service request is processed successfully." - */ - ResultDesc: string; - } - + Timestamp: string; + /** - * This is the transaction type that is used to identify the transaction when sending the request to M-PESA. - * The transaction type for M-PESA Express is "CustomerPayBillOnline" for PayBill Numbers and "CustomerBuyGoodsOnline" for Till Numbers. - * @type {"CustomerPayBillOnline" | "CustomerBuyGoodsOnline"} - * @example "CustomerPayBillOnline" + * This is a global unique identifier of the processed checkout transaction request. + * @type {string} + * @example "ws_CO_DMZ_123212312_23423" */ - export type TransactionType = - | "CustomerPayBillOnline" - | "CustomerBuyGoodsOnline"; - + CheckoutRequestID: string; +} + +/** + * @type {StateOfALNMOnlinePaymentResponse} + */ +export interface StateOfALNMOnlinePaymentResponse { /** - * The Mobile Number to receive the STK Pin Prompt. This number can be the same as PartyA value above. + * This is a numeric status code that indicates the status of the transaction submission. + * 0 means successful submission and any other code means an error occurred. * @type {string} - * @example "2547XXXXXXXX" + * @example "0" */ - export type PhoneNumber = string; - + ResponseCode: string; + /** - * This is the Amount transacted normally a numeric value. Money that the customer pays to the Shortcode. - * Only whole numbers are supported. + * Response description is an acknowledgment message from the API that gives the status of the request submission usually maps to a specific ResponseCode value. + * It can be a "Success" submission message or an error description. * @type {string} - * @example "10" + * @example "The service request has failed." */ - export type Amount = string; - + ResponseDescription: string; + /** - * A CallBack URL is a valid secure URL that is used to receive notifications from M-Pesa API. - * It is the endpoint to which the results will be sent by M-Pesa API. + * This is a global unique Identifier for any submitted payment request. * @type {string} - * @example "https://mydomain.com/path" + * @example "16813-1590513-1" */ - export type CallBackURL = string; - + MerchantRequestID: string; + /** - * This is any additional information/comment that can be sent along with the request from your system. - * Maximum of 13 Characters. + * This is a global unique identifier of the processed checkout transaction request. * @type {string} - * @example "Payment for Order" + * @example "ws_CO_DMZ_123212312_2342347678234" */ - export type TransactionDesc = string; - + CheckoutRequestID: string; + /** - * Account Reference: This is an Alpha-Numeric parameter that is defined by your system as an Identifier - * of the transaction for the CustomerPayBillOnline transaction type. - * Along with the business name, this value is also displayed to the customer in the STK Pin Prompt message. - * Maximum of 12 characters. + * This is a numeric status code that indicates the status of the transaction processing. + * 0 means successful processing and any other code means an error occurred or the transaction failed. * @type {string} - * @example "ABC123456789" + * @example "0" */ - export type AccountReference = string; - + ResultCode: string; + /** - * Request Parameter Description - * @interface STKPushBody + * Result description is a message from the API that gives the status of the request processing, usually maps to a specific ResultCode value. + * It can be a success processing message or an error description message. + * @type {string} + * @example "0: The service request is processed successfully." */ - export interface STKPushBody { - BusinessShortCode: BusinessShortCode; - - /** - * This is the password used for encrypting the request sent: A base64 encoded string. - * (The base64 string is a combination of Shortcode+Passkey+Timestamp) - * @type {string} - * @example "base64.encode(Shortcode+Passkey+Timestamp)" - */ - Password: string; - - /** - * This is the Timestamp of the transaction, normally in the format of YEAR+MONTH+DATE+HOUR+MINUTE+SECOND (YYYYMMDDHHMMSS) - * Each part should be at least two digits apart from the year which takes four digits. - * @type {string} - * @example "YYYYMMDDHHmmss" - */ - Timestamp: string; - - TransactionType: TransactionType; - - Amount: Amount; - - /** - * The phone number sending money. The parameter expected is a Valid Safaricom Mobile Number that is M-PESA registered - * in the format 2547XXXXXXXX - * @type {string} - * @example "2547XXXXXXXX" - */ - PartyA: string; - - /** - * The organization that receives the funds. The parameter expected is a 5 to 6-digit as defined in the Shortcode description above. - * This can be the same as the BusinessShortCode value above. - * @type {string} - * @example "654321" - */ - PartyB: string; - - PhoneNumber: PhoneNumber; - - CallBackURL: CallBackURL; - - AccountReference: AccountReference; - - TransactionDesc: TransactionDesc; - } - - /** - * Response Parameter Description - * @interface STKPushResponse - */ - export interface STKPushResponse { - /** - * This is a global unique Identifier for any submitted payment request. - * @type {string} - * @example "16813-1590513-1" - */ - MerchantRequestID: string; - - /** - * This is a global unique identifier of the processed checkout transaction request. - * @type {string} - * @example "ws_CO_DMZ_12321_23423476" - */ - CheckoutRequestID: string; - - /** - * Response description is an acknowledgment message from the API that gives the status of the request submission. - * It usually maps to a specific ResponseCode value. It can be a Success submission message or an error description. - * @type {string} - * @example "-The service request has failed" - * @example "-The service request has been accepted successfully." - * @example "- Invalid Access Token" - */ - ResponseDescription: string; - - /** - * This is a Numeric status code that indicates the status of the transaction submission. - * 0 means successful submission and any other code means an error occurred. - * @type {string} - * @example "0" - * @example "404.001.03" - */ - ResponseCode: string; - - /** - * This is a message that your system can display to the customer as an acknowledgment of the payment request submission. - * @type {string} - * @example "Success. Request accepted for processing." - */ - CustomerMessage: string; - } - + ResultDesc: string; +} + +/** + * This is the transaction type that is used to identify the transaction when sending the request to M-PESA. + * The transaction type for M-PESA Express is "CustomerPayBillOnline" for PayBill Numbers and "CustomerBuyGoodsOnline" for Till Numbers. + * @type {"CustomerPayBillOnline" | "CustomerBuyGoodsOnline"} + * @example "CustomerPayBillOnline" + */ +export type TransactionType = + | 'CustomerPayBillOnline' + | 'CustomerBuyGoodsOnline'; + +/** + * The Mobile Number to receive the STK Pin Prompt. This number can be the same as PartyA value above. + * @type {string} + * @example "2547XXXXXXXX" + */ +export type PhoneNumber = string; + +/** + * This is the Amount transacted normally a numeric value. Money that the customer pays to the Shortcode. + * Only whole numbers are supported. + * @type {string} + * @example "10" + */ +export type Amount = string; + +/** + * A CallBack URL is a valid secure URL that is used to receive notifications from M-Pesa API. + * It is the endpoint to which the results will be sent by M-Pesa API. + * @type {string} + * @example "https://mydomain.com/path" + */ +export type CallBackURL = string; + +/** + * This is any additional information/comment that can be sent along with the request from your system. + * Maximum of 13 Characters. + * @type {string} + * @example "Payment for Order" + */ +export type TransactionDesc = string; + +/** + * Account Reference: This is an Alpha-Numeric parameter that is defined by your system as an Identifier + * of the transaction for the CustomerPayBillOnline transaction type. + * Along with the business name, this value is also displayed to the customer in the STK Pin Prompt message. + * Maximum of 12 characters. + * @type {string} + * @example "ABC123456789" + */ +export type AccountReference = string; + +/** + * Request Parameter Description + * @interface STKPushBody + */ +export interface STKPushBody { + BusinessShortCode: BusinessShortCode; + /** - * Results Parameter Description - * @interface STKPushSuccessfulCallbackBody + * This is the password used for encrypting the request sent: A base64 encoded string. + * (The base64 string is a combination of Shortcode+Passkey+Timestamp) + * @type {string} + * @example "base64.encode(Shortcode+Passkey+Timestamp)" */ - export interface STKPushSuccessfulCallbackBody { - /** - * This is the root key for the entire Callback message. - * @type {Object} - * @property {Object} stkCallback - This is the first child of the Body. - */ - Body: { - stkCallback: { - /** - * This is a global unique Identifier for any submitted payment request. - * This is the same value returned in the acknowledgment message of the initial request. - * @type {string} - * @example "29115-34620561-1" - */ - MerchantRequestID: string; - - /** - * This is a globally unique identifier of the processed checkout transaction request. - * This is the same value returned in the acknowledgment message of the initial request. - * @type {string} - * @example "ws_CO_191220191020363925" - */ - CheckoutRequestID: string; - - /** - * This is a numeric status code that indicates the status of the transaction processing. - * 0 means successful processing and any other code means an error occurred or the transaction failed. - * @type {number} - * @example 0 - * @example 1032 - */ - ResultCode: number; - - /** - * The result description is a message from the API that gives the status of the request processing. - * It usually maps to a specific ResultCode value. It can be a Success processing message or an error description message. - * @type {string} - * @example "0: The service request is processed successfully." - * @example "1032: Request canceled by the user" - */ - ResultDesc: string; - - /** - * This is the JSON object that holds more details for the transaction. - * It is only returned for successful transactions. - * @type {Object} - * @property {Object[]} Item - This is a JSON Array, within the CallbackMetadata, that holds additional transaction details in JSON objects. - */ - CallbackMetadata: { - Item: { - /** - * This is the Amount that was transacted. - * @type {number} - * @example 10500.5 - */ - Amount?: number; - - /** - * This is the unique M-PESA transaction ID for the payment request. - * The same value is sent to the customer by SMS upon successful processing. - * @type {string} - * @example "LHG31AA5TX" - */ - MpesaReceiptNumber?: string; - - /** - * This is the Balance of the account for the shortcode used as partyB. - * @type {number} - * @example 32009.9 - */ - Balance?: number; - - /** - * This is a timestamp that represents the date and time that the transaction was completed in the format YYYYMMDDHHmmss. - * @type {string} - * @example "20170827163400" - */ - TransactionDate?: string; - - /** - * This is the number of the customer who made the payment. - * @type {string} - * @example "0722000000" - */ - PhoneNumber?: string; - }[]; - }; - }; - }; - } - + Password: string; + /** - * Unsuccessful results body structure. - * Whenever you receive an error in your callback URL, the unsuccessful transaction will have a body results as below, - * and the error details will be captured under the Items ResultCode and ResultDesc. - * You can view a list of possible Lipa na M-PESA online errors on the errors tab. - * @interface STKPushErrorCallbackBody + * This is the Timestamp of the transaction, normally in the format of YEAR+MONTH+DATE+HOUR+MINUTE+SECOND (YYYYMMDDHHMMSS) + * Each part should be at least two digits apart from the year which takes four digits. + * @type {string} + * @example "YYYYMMDDHHmmss" */ - export interface STKPushErrorCallbackBody { - /** - * This is the root key for the entire Callback message. - * @type {Object} - * @property {Object} stkCallback - This is the first child of the Body. - */ - Body: { - stkCallback: { - /** - * This is a global unique Identifier for any submitted payment request. - * @type {string} - * @example "29115-34620561-1" - */ - MerchantRequestID: string; - - /** - * This is a globally unique identifier of the processed checkout transaction request. - * @type {string} - * @example "ws_CO_191220191020363925" - */ - CheckoutRequestID: string; - - /** - * This is a numeric status code that indicates the status of the transaction processing. - * 0 means successful processing and any other code means an error occurred or the transaction failed. - * @type {number} - * @example 1032 - */ - ResultCode: number; - - /** - * The result description is a message from the API that gives the status of the request processing. - * It usually maps to a specific ResultCode value. It can be an error description message. - * @type {string} - * @example "Request canceled by user." - */ - ResultDesc: string; - }; - }; - } - + Timestamp: string; + + TransactionType: TransactionType; + + Amount: Amount; + /** - * Request Parameter Definition - * @interface RegisterUrlBody + * The phone number sending money. The parameter expected is a Valid Safaricom Mobile Number that is M-PESA registered + * in the format 2547XXXXXXXX + * @type {string} + * @example "2547XXXXXXXX" */ - export interface RegisterUrlBody { - /** - * This is the URL that receives the validation request from the API upon payment submission. - * The validation URL is only called if the external validation on the registered shortcode is enabled. - * (By default External Validation is disabled). - * @type {string} - * @example "https://mydomain.com/validation" - */ - ValidationURL?: string; - - /** - * This is the URL that receives the confirmation request from API upon payment completion. - * @type {string} - * @example "https://mydomain.com/confirmation" - */ - ConfirmationURL?: string; - - /** - * This parameter specifies what is to happen if for any reason the validation URL is not reachable. - * Note that, this is the default action value that determines what M-PESA will do in the scenario that your endpoint is unreachable or is unable to respond on time. - * Only two values are allowed: Completed or Cancelled. - * Completed means M-PESA will automatically complete your transaction, whereas Cancelled means M-PESA will automatically cancel the transaction, - * in the event M-PESA is unable to reach your Validation URL. - * @type {"Cancelled" | "Completed"} - * @example "Cancelled" - * @example "Completed" - */ - ResponseType: "Cancelled" | "Completed"; - } - // /** - // * Usually, a unique number is tagged to an M-PESA pay bill/till number of the organization. - // * @type {string} - // * @example "123456" - // */ - // ShortCode: string; - - /** - * Response Parameters Definition - * @interface RegisterUrlResponse - */ - export interface RegisterUrlResponse { - /** - * This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. - * @type {string} - * @example "abc123" - */ - OriginatorCoversationID: string; - - /** - * It indicates whether Mobile Money accepts the request or not. - * @type {string} - * @example "0" - */ - ResponseCode: string; - - /** - * This is the status of the request. - * @type {string} - * @example "success" - */ - ResponseDescription: string; - } - + PartyA: string; + /** - * Results Parameter Definition - * @interface ValidationRequest + * The organization that receives the funds. The parameter expected is a 5 to 6-digit as defined in the Shortcode description above. + * This can be the same as the BusinessShortCode value above. + * @type {string} + * @example "654321" */ - export interface ValidationOrConfirmationRequest { - /** - * The transaction type specified during the payment request. - * @type {string} - * @example "Buy Goods or Pay Bill" - */ - TransactionType: string; - - /** - * This is the unique M-Pesa transaction ID for every payment request. - * This is sent to both the call-back messages and a confirmation SMS sent to the customer. - * @type {string} - * @example "LHG31AA5TX" - */ - TransID: string; - - /** - * This is the Timestamp of the transaction, normally in the format of YEAR+MONTH+DATE+HOUR+MINUTE+SECOND (YYYYMMDDHHMMSS). - * Each part should be at least two digits apart from the year which takes four digits. - * @type {string} - * @example "20170813154301" - */ - TransTime: string; - - /** - * This is the amount transacted (normally a numeric value), money that the customer pays to the Shortcode. - * Only whole numbers are supported. - * @type {string} - * @example "100" - */ - TransAmount: string; - - /** - * This is the organization's shortcode (Paybill or Buygoods - a 5 to 6-digit account number) - * used to identify an organization and receive the transaction. - * @type {string} - * @example "654321" - */ - BusinessShortCode: string; - - /** - * This is the account number for which the customer is making the payment. - * This is only applicable to Customer PayBill Transactions. - * @type {string} - * @example "ABC123456" - */ - BillRefNumber: string; - - /** - * The current utility account balance of the payment-receiving organization shortcode. - * For validation requests, this field is usually blank whereas, for the confirmation message, - * the value represents the new balance after the payment has been received. - * @type {string} - * @example "30671" - */ - OrgAccountBalance: string; - - /** - * This is a transaction ID that the partner can use to identify the transaction. - * When a validation request is sent, the partner can respond with ThirdPartyTransID, - * and this will be sent back with the Confirmation notification. - * @type {string} - * @example "1234567890" - */ - ThirdPartyTransID: string; - - /** - * This is a masked mobile number of the customer making the payment. - * @type {string} - * @example "25470****149" - */ - MSISDN: string; - - /** - * The customer's first name is as per the M-Pesa register. This parameter can be empty. - * @type {string} - * @example "John" - */ - FirstName: string; - - /** - * The customer's middle name is as per the M-Pesa register. This parameter can be empty. - * @type {string} - * @example "Doe" - */ - MiddleName: string; - - /** - * The customer's last name is as per the M-Pesa register. This parameter can be empty. - * @type {string} - * @example "Smith" - */ - LastName: string; - } - + PartyB: string; + + PhoneNumber: PhoneNumber; + + CallBackURL: CallBackURL; + + AccountReference: AccountReference; + + TransactionDesc: TransactionDesc; +} + +/** + * Response Parameter Description + * @interface STKPushResponse + */ +export interface STKPushResponse { /** - * Validation Response - Expected from your validation URL. - * @interface ValidationResponse + * This is a global unique Identifier for any submitted payment request. + * @type {string} + * @example "16813-1590513-1" */ - export interface ValidationResponse { - /** - * A code indicating whether to complete the transaction. - * 0(Zero) always means complete. Other values mean canceling the transaction, - * which also determines the customer notification SMS type. - * @type {string} - * @example "0" - */ - ResultCode: string; - - /** - * Short validation result description. - * @type {string} - * @example "Validation successful." - */ - ResultDesc: string; - - /** - * An optional value that can be used to identify the payment during a confirmation callback. - * If a value is set, it would be passed back in a confirmation callback. - * @type {string} - * @example "1234567890" - */ - ThirdPartyTransID?: string; - } - + MerchantRequestID: string; + /** - * Confirmation acknowledgment - Expected from your Confirmation URL. - * @interface ConfirmationResponse + * This is a global unique identifier of the processed checkout transaction request. + * @type {string} + * @example "ws_CO_DMZ_12321_23423476" */ - export interface ConfirmationResponse { - /** - * A code indicating the receipt status of the confirmation callback. Always 0(zero). - * @type {string} - * @example "0" - */ - ResultCode: "0"; - - /** - * A short confirmation receipt description. Usually "Success". - * @type {string} - * @example "Success" - */ - ResultDesc: string | "Success"; - } - + CheckoutRequestID: string; + /** - * Validation or Confirmation Error Response. - * @interface ValidationOrConfirmationErrorResponse + * Response description is an acknowledgment message from the API that gives the status of the request submission. + * It usually maps to a specific ResponseCode value. It can be a Success submission message or an error description. + * @type {string} + * @example "-The service request has failed" + * @example "-The service request has been accepted successfully." + * @example "- Invalid Access Token" */ - export interface ValidationOrConfirmationErrorResponse { - /** - * The error code indicating the reason for the rejection. - * - */ - ResultCode: - | "C2B00011" - | "C2B00012" - | "C2B00013" - | "C2B00014" - | "C2B00015" - | "C2B00016"; - - /** - * The description of the error result. Always "Rejected" for error responses. - * @type {string} - * @example "Rejected" - */ - ResultDesc: string | "Rejected"; - } - + ResponseDescription: string; + /** - * Represents the request body for M-Pesa B2C (Business to Customer) transactions. - * @interface B2CRequestBody + * This is a Numeric status code that indicates the status of the transaction submission. + * 0 means successful submission and any other code means an error occurred. + * @type {string} + * @example "0" + * @example "404.001.03" */ - export interface B2CRequestBody { - /* - The username of the M-Pesa B2C account API operator. - NOTE: The access channel for this operator must be API, and the account must be in active status. - @type {string} - @example "initiator_1" - @example "John_Doe" - */ - InitiatorName: string; - /** - - This is the value obtained after encrypting the API initiator password. - The process for encrypting the initiator password has been described under docs, - and an online encryption process is available under get test credential. - @type {string} - @example "32SzVdmCvjpmQfw3X2RK8UAv7xuhh304dXxFC5+3lslkk2TDJY/Lh6ESVwtqMxJzF7qA==" - */ - SecurityCredential: string; - /** - - This is a unique command that specifies the B2C transaction type. - "SalaryPayment": Supports sending money to both registered and unregistered M-Pesa customers. - "BusinessPayment": A normal business to customer payment, supports only M-Pesa registered customers. - "PromotionPayment": A promotional payment to customers. The M-Pesa notification message is a congratulatory message. Supports only M-Pesa registered customers. - @type {string} - @example "SalaryPayment" - */ - CommandID: string; - /** - - The amount of money being sent to the customer. - @type {number} - @example 30671 - */ - Amount: number; - /** - - This is the B2C organization shortcode from which the money is to be sent. - @type {number} - @example 123454 - */ - PartyA: number; - /** - - This is the customer mobile number to receive the amount. - The number should have the country code (254) without the plus sign. - @type {number} - @example 254722000000 - */ - PartyB: number; - /** - - Any additional information to be associated with the transaction. - @type {string} - @example "Payment for services" - */ - Remarks: string; - /** - - This is the URL to be specified in your request that will be used by the API Proxy - to send a notification in case the payment request is timed out while awaiting processing in the queue. - @type {string} - @example "https://example.com/queue-timeout" - */ - QueueTimeOutURL: string; - /** - - This is the URL to be specified in your request that will be used by M-Pesa to send a notification - upon processing of the payment request. - @type {string} - @example "https://example.com/payment-result" - */ - ResultURL: string; - /** - - Any additional information to be associated with the transaction. - @type {string} - @example "Monthly salary payment" - */ - Occasion: string; - } - + ResponseCode: string; + /** - * @interface B2CRequestResponse + * This is a message that your system can display to the customer as an acknowledgment of the payment request submission. + * @type {string} + * @example "Success. Request accepted for processing." */ - export interface B2CRequestResponse { - /* - This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. - @type {string} - @example "29115-34620561-1" - */ - OriginatorConversationID: string; - /** - - This is a global unique identifier for the transaction request returned by M-Pesa upon successful request submission. - @type {string} - @example "ws_CO_191220191020363925" - */ - ConversationID: string; - /** - - This is the status of the request. - @type {string} - @example "Success" - */ - ResponseDescription: string; - } - + CustomerMessage: string; +} + +/** + * Results Parameter Description + * @interface STKPushSuccessfulCallbackBody + */ +export interface STKPushSuccessfulCallbackBody { /** - * Represents the response body for M-Pesa B2C (Business to Customer) transaction request errors. - * @interface B2CRequestError + * This is the root key for the entire Callback message. + * @type {Object} + * @property {Object} stkCallback - This is the first child of the Body. */ - export interface B2CRequestError { - /* - This is a unique requestID for the payment request. - @type {string} - @example "29115-34620561-1" - */ - requestId: string; - /** - - This is a predefined code that indicates the reason for request failure. The error codes are defined in the Response Error Details. - @type {string} - @example "404.001.04" - */ - errorCode: string; - /** - - This is a short descriptive message of the failure reason. - @type {string} - @example "Invalid Access Token" - */ - errorMessage: string; - } - - /** - * Represents the response result of the B2C transaction. - */ - export interface B2CRequestResult { - Result: { + Body: { + stkCallback: { + /** + * This is a global unique Identifier for any submitted payment request. + * This is the same value returned in the acknowledgment message of the initial request. + * @type {string} + * @example "29115-34620561-1" + */ + MerchantRequestID: string; + /** - * This is a global unique identifier for the transaction request returned by the M-Pesa upon successful request submission. + * This is a globally unique identifier of the processed checkout transaction request. + * This is the same value returned in the acknowledgment message of the initial request. + * @type {string} + * @example "ws_CO_191220191020363925" */ - ConversationId: string; + CheckoutRequestID: string; + /** - * This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. + * This is a numeric status code that indicates the status of the transaction processing. + * 0 means successful processing and any other code means an error occurred or the transaction failed. + * @type {number} + * @example 0 + * @example 1032 */ - OriginatorConversationId: string; + ResultCode: number; + /** - * This is a message from the API that gives the status of the request processing and usually maps to a specific result code value. + * The result description is a message from the API that gives the status of the request processing. + * It usually maps to a specific ResultCode value. It can be a Success processing message or an error description message. + * @type {string} + * @example "0: The service request is processed successfully." + * @example "1032: Request canceled by the user" */ ResultDesc: string; + /** - * This is a status code that indicates whether the transaction was already sent to your listener. Usual value is 0. + * This is the JSON object that holds more details for the transaction. + * It is only returned for successful transactions. + * @type {Object} + * @property {Object[]} Item - This is a JSON Array, within the CallbackMetadata, that holds additional transaction details in JSON objects. */ - ResultType: number; + CallbackMetadata: { + Item: { + /** + * This is the Amount that was transacted. + * @type {number} + * @example 10500.5 + */ + Amount?: number; + + /** + * This is the unique M-PESA transaction ID for the payment request. + * The same value is sent to the customer by SMS upon successful processing. + * @type {string} + * @example "LHG31AA5TX" + */ + MpesaReceiptNumber?: string; + + /** + * This is the Balance of the account for the shortcode used as partyB. + * @type {number} + * @example 32009.9 + */ + Balance?: number; + + /** + * This is a timestamp that represents the date and time that the transaction was completed in the format YYYYMMDDHHmmss. + * @type {string} + * @example "20170827163400" + */ + TransactionDate?: string; + + /** + * This is the number of the customer who made the payment. + * @type {string} + * @example "0722000000" + */ + PhoneNumber?: string; + }[]; + }; + }; + }; +} + +/** + * Unsuccessful results body structure. + * Whenever you receive an error in your callback URL, the unsuccessful transaction will have a body results as below, + * and the error details will be captured under the Items ResultCode and ResultDesc. + * You can view a list of possible Lipa na M-PESA online errors on the errors tab. + * @interface STKPushErrorCallbackBody + */ +export interface STKPushErrorCallbackBody { + /** + * This is the root key for the entire Callback message. + * @type {Object} + * @property {Object} stkCallback - This is the first child of the Body. + */ + Body: { + stkCallback: { /** - * This is a numeric status code that indicates the status of the transaction processing. 0 means success and any other code means an error occurred or the transaction failed. + * This is a global unique Identifier for any submitted payment request. + * @type {string} + * @example "29115-34620561-1" */ - ResultCode: number; + MerchantRequestID: string; + /** - * This is a unique M-PESA transaction ID for every payment request. Same value is sent to customer over SMS upon successful processing. + * This is a globally unique identifier of the processed checkout transaction request. + * @type {string} + * @example "ws_CO_191220191020363925" */ - TransactionID: string; + CheckoutRequestID: string; + /** - * This is a JSON object that holds more details for the transaction. + * This is a numeric status code that indicates the status of the transaction processing. + * 0 means successful processing and any other code means an error occurred or the transaction failed. + * @type {number} + * @example 1032 */ - ResultParameters: { - /** - * This is a JSON array within the ResultParameters that holds additional transaction details as JSON objects. - */ - ResultParameter: B2CResultParameter[]; - }; + ResultCode: number; + + /** + * The result description is a message from the API that gives the status of the request processing. + * It usually maps to a specific ResultCode value. It can be an error description message. + * @type {string} + * @example "Request canceled by user." + */ + ResultDesc: string; }; - /** - * This is a unique M-PESA transaction ID for every payment request. Same value is sent to customer over SMS upon successful processing. It is usually returned under the ResultParameter array. - */ - TransactionReceipt: string; - /** - * This is the amount that was transacted. It is usually returned under the ResultParameter array. - */ - TransactionAmount: number; - /** - * This is the available balance of the Working account under the B2C shortcode used in the transaction. - */ - B2CWorkingAccountAvailableFunds: number; - /** - * This is the available balance of the Utility account under the B2C shortcode used in the transaction. - */ - B2CUtilityAccountAvailableFunds: number; - /** - * This is the date and time that the transaction completed M-PESA. - */ - TransactionCompletedDateTime: string; - /** - * This is the name and phone number of the customer who received the payment. - */ - ReceiverPartyPublicName: string; - /** - * This is the available balance of the Charges Paid account under the B2C shortcode used in the transaction. - */ - B2CChargesPaidAccountAvailableFunds: number; - /** - * This is a key that indicates whether the customer is a M-PESA registered customer or not. - * "Y" for Yes, "N" for No. - */ - B2CRecipientIsRegisteredCustomer: "Y" | "N"; - } - + }; +} + +/** + * Request Parameter Definition + * @interface RegisterUrlBody + */ +export interface RegisterUrlBody { /** - * Interface representing the JSON objects within the ResultParameter array of the B2C request result. + * This is the URL that receives the validation request from the API upon payment submission. + * The validation URL is only called if the external validation on the registered shortcode is enabled. + * (By default External Validation is disabled). + * @type {string} + * @example "https://mydomain.com/validation" */ - export interface B2CResultParameter { - /** - * Unique M-PESA transaction ID for every payment request. Same value is sent to customer over SMS upon successful processing. - */ - TransactionReceipt: string; - /** - * Amount that was transacted. - */ - TransactionAmount: number; - /** - * Available balance of the Working account under the B2C shortcode used in the transaction. - */ - B2CWorkingAccountAvailableFunds: number; - /** - * Available balance of the Utility account under the B2C shortcode used in the transaction. - */ - B2CUtilityAccountAvailableFunds: number; - /** - * Date and time that the transaction completed M-PESA. - */ - TransactionCompletedDateTime: string; - /** - * Name and phone number of the customer who received the payment. - */ - ReceiverPartyPublicName: string; - /** - * Available balance of the Charges Paid account under the B2C shortcode used in the transaction. - */ - B2CChargesPaidAccountAvailableFunds: number; - /** - * Key that indicates whether the customer is a M-PESA registered customer or not ("Y" for Yes, "N" for No). - */ - B2CRecipientIsRegisteredCustomer: "Y" | "N"; - } - + ValidationURL?: string; + /** - * Interface representing the request parameters for querying transaction status. + * This is the URL that receives the confirmation request from API upon payment completion. + * @type {string} + * @example "https://mydomain.com/confirmation" */ - export interface TransactionStatusBody { - /** - * The name of the initiator initiating the request. - */ - Initiator: string; - /** - * Encrypted credential of the user getting transaction status. - */ - SecurityCredential: string; - /** - * Takes only the 'TransactionStatusQuery' Command ID. - */ - "Command ID": "TransactionStatusQuery"; - /** - * Unique identifier to identify a transaction on Mpesa. - */ - "Transaction ID": string; - /** - * This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. If you don’t have the M-PESA transaction ID you can use this to query. - */ - OriginatorConversationID: string; - /** - * Organization/MSISDN receiving the transaction. - */ - PartyA: string; - /** - * Type of organization receiving the transaction. - * 4 – Organization shortcode - */ - IdentifierType: string; - /** - * The path that stores information of a transaction. - */ - ResultURL: string; - /** - * The path that stores information of timeout transaction. - */ - QueueTimeOutURL: string; - /** - * Comments that are sent along with the transaction. - */ - Remarks: string; - /** - * Optional parameter. - */ - Occasion: string; - } - + ConfirmationURL?: string; + /** - * Interface representing the response parameters for the transaction status query. + * This parameter specifies what is to happen if for any reason the validation URL is not reachable. + * Note that, this is the default action value that determines what M-PESA will do in the scenario that your endpoint is unreachable or is unable to respond on time. + * Only two values are allowed: Completed or Cancelled. + * Completed means M-PESA will automatically complete your transaction, whereas Cancelled means M-PESA will automatically cancel the transaction, + * in the event M-PESA is unable to reach your Validation URL. + * @type {"Cancelled" | "Completed"} + * @example "Cancelled" + * @example "Completed" */ - export interface TransactionStatusResponse { + ResponseType: 'Cancelled' | 'Completed'; +} +// /** +// * Usually, a unique number is tagged to an M-PESA pay bill/till number of the organization. +// * @type {string} +// * @example "123456" +// */ +// ShortCode: string; + +/** + * Response Parameters Definition + * @interface RegisterUrlResponse + */ +export interface RegisterUrlResponse { + /** + * This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. + * @type {string} + * @example "abc123" + */ + OriginatorCoversationID: string; + + /** + * It indicates whether Mobile Money accepts the request or not. + * @type {string} + * @example "0" + */ + ResponseCode: string; + + /** + * This is the status of the request. + * @type {string} + * @example "success" + */ + ResponseDescription: string; +} + +/** + * Results Parameter Definition + * @interface ValidationRequest + */ +export interface ValidationOrConfirmationRequest { + /** + * The transaction type specified during the payment request. + * @type {string} + * @example "Buy Goods or Pay Bill" + */ + TransactionType: string; + + /** + * This is the unique M-Pesa transaction ID for every payment request. + * This is sent to both the call-back messages and a confirmation SMS sent to the customer. + * @type {string} + * @example "LHG31AA5TX" + */ + TransID: string; + + /** + * This is the Timestamp of the transaction, normally in the format of YEAR+MONTH+DATE+HOUR+MINUTE+SECOND (YYYYMMDDHHMMSS). + * Each part should be at least two digits apart from the year which takes four digits. + * @type {string} + * @example "20170813154301" + */ + TransTime: string; + + /** + * This is the amount transacted (normally a numeric value), money that the customer pays to the Shortcode. + * Only whole numbers are supported. + * @type {string} + * @example "100" + */ + TransAmount: string; + + /** + * This is the organization's shortcode (Paybill or Buygoods - a 5 to 6-digit account number) + * used to identify an organization and receive the transaction. + * @type {string} + * @example "654321" + */ + BusinessShortCode: string; + + /** + * This is the account number for which the customer is making the payment. + * This is only applicable to Customer PayBill Transactions. + * @type {string} + * @example "ABC123456" + */ + BillRefNumber: string; + + /** + * The current utility account balance of the payment-receiving organization shortcode. + * For validation requests, this field is usually blank whereas, for the confirmation message, + * the value represents the new balance after the payment has been received. + * @type {string} + * @example "30671" + */ + OrgAccountBalance: string; + + /** + * This is a transaction ID that the partner can use to identify the transaction. + * When a validation request is sent, the partner can respond with ThirdPartyTransID, + * and this will be sent back with the Confirmation notification. + * @type {string} + * @example "1234567890" + */ + ThirdPartyTransID: string; + + /** + * This is a masked mobile number of the customer making the payment. + * @type {string} + * @example "25470****149" + */ + MSISDN: string; + + /** + * The customer's first name is as per the M-Pesa register. This parameter can be empty. + * @type {string} + * @example "John" + */ + FirstName: string; + + /** + * The customer's middle name is as per the M-Pesa register. This parameter can be empty. + * @type {string} + * @example "Doe" + */ + MiddleName: string; + + /** + * The customer's last name is as per the M-Pesa register. This parameter can be empty. + * @type {string} + * @example "Smith" + */ + LastName: string; +} + +/** + * Validation Response - Expected from your validation URL. + * @interface ValidationResponse + */ +export interface ValidationResponse { + /** + * A code indicating whether to complete the transaction. + * 0(Zero) always means complete. Other values mean canceling the transaction, + * which also determines the customer notification SMS type. + * @type {string} + * @example "0" + */ + ResultCode: string; + + /** + * Short validation result description. + * @type {string} + * @example "Validation successful." + */ + ResultDesc: string; + + /** + * An optional value that can be used to identify the payment during a confirmation callback. + * If a value is set, it would be passed back in a confirmation callback. + * @type {string} + * @example "1234567890" + */ + ThirdPartyTransID?: string; +} + +/** + * Confirmation acknowledgment - Expected from your Confirmation URL. + * @interface ConfirmationResponse + */ +export interface ConfirmationResponse { + /** + * A code indicating the receipt status of the confirmation callback. Always 0(zero). + * @type {string} + * @example "0" + */ + ResultCode: '0'; + + /** + * A short confirmation receipt description. Usually "Success". + * @type {string} + * @example "Success" + */ + ResultDesc: string | 'Success'; +} + +/** + * Validation or Confirmation Error Response. + * @interface ValidationOrConfirmationErrorResponse + */ +export interface ValidationOrConfirmationErrorResponse { + /** + * The error code indicating the reason for the rejection. + * + */ + ResultCode: + | 'C2B00011' + | 'C2B00012' + | 'C2B00013' + | 'C2B00014' + | 'C2B00015' + | 'C2B00016'; + + /** + * The description of the error result. Always "Rejected" for error responses. + * @type {string} + * @example "Rejected" + */ + ResultDesc: string | 'Rejected'; +} + +/** + * Represents the request body for M-Pesa B2C (Business to Customer) transactions. + * @interface B2CRequestBody + */ +export interface B2CRequestBody { + /* + The username of the M-Pesa B2C account API operator. + NOTE: The access channel for this operator must be API, and the account must be in active status. + @type {string} + @example "initiator_1" + @example "John_Doe" + */ + InitiatorName: string; + /** + + This is the value obtained after encrypting the API initiator password. + The process for encrypting the initiator password has been described under docs, + and an online encryption process is available under get test credential. + @type {string} + @example "32SzVdmCvjpmQfw3X2RK8UAv7xuhh304dXxFC5+3lslkk2TDJY/Lh6ESVwtqMxJzF7qA==" + */ + SecurityCredential: string; + /** + + This is a unique command that specifies the B2C transaction type. + "SalaryPayment": Supports sending money to both registered and unregistered M-Pesa customers. + "BusinessPayment": A normal business to customer payment, supports only M-Pesa registered customers. + "PromotionPayment": A promotional payment to customers. The M-Pesa notification message is a congratulatory message. Supports only M-Pesa registered customers. + @type {string} + @example "SalaryPayment" + */ + CommandID: string; + /** + + The amount of money being sent to the customer. + @type {number} + @example 30671 + */ + Amount: number; + /** + + This is the B2C organization shortcode from which the money is to be sent. + @type {number} + @example 123454 + */ + PartyA: number; + /** + + This is the customer mobile number to receive the amount. + The number should have the country code (254) without the plus sign. + @type {number} + @example 254722000000 + */ + PartyB: number; + /** + + Any additional information to be associated with the transaction. + @type {string} + @example "Payment for services" + */ + Remarks: string; + /** + + This is the URL to be specified in your request that will be used by the API Proxy + to send a notification in case the payment request is timed out while awaiting processing in the queue. + @type {string} + @example "https://example.com/queue-timeout" + */ + QueueTimeOutURL: string; + /** + + This is the URL to be specified in your request that will be used by M-Pesa to send a notification + upon processing of the payment request. + @type {string} + @example "https://example.com/payment-result" + */ + ResultURL: string; + /** + + Any additional information to be associated with the transaction. + @type {string} + @example "Monthly salary payment" + */ + Occasion: string; +} + +/** + * @interface B2CRequestResponse + */ +export interface B2CRequestResponse { + /* + This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. + @type {string} + @example "29115-34620561-1" + */ + OriginatorConversationID: string; + /** + + This is a global unique identifier for the transaction request returned by M-Pesa upon successful request submission. + @type {string} + @example "ws_CO_191220191020363925" + */ + ConversationID: string; + /** + + This is the status of the request. + @type {string} + @example "Success" + */ + ResponseDescription: string; +} + +/** + * Represents the response body for M-Pesa B2C (Business to Customer) transaction request errors. + * @interface B2CRequestError + */ +export interface B2CRequestError { + /* + This is a unique requestID for the payment request. + @type {string} + @example "29115-34620561-1" + */ + requestId: string; + /** + + This is a predefined code that indicates the reason for request failure. The error codes are defined in the Response Error Details. + @type {string} + @example "404.001.04" + */ + errorCode: string; + /** + + This is a short descriptive message of the failure reason. + @type {string} + @example "Invalid Access Token" + */ + errorMessage: string; +} + +/** + * Represents the response result of the B2C transaction. + */ +export interface B2CRequestResult { + Result: { /** - * The unique request ID for tracking a transaction. - * Alpha-Numeric String of less than 20 characters e.g: 1236-7134259-1 + * This is a global unique identifier for the transaction request returned by the M-Pesa upon successful request submission. */ - OriginatorConversationID: string; + ConversationId: string; /** - * The unique request ID returned by M-PESA for each request made. - * Alpha Numeric String of less than 20 characters e.g: AG_20210709_1234409f86436c583e3f + * This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. */ - ConversationID: string; + OriginatorConversationId: string; /** - * The numeric status code indicating the status of the transaction processing. - * 0 means success and any other code means an error occurred or the transaction failed. - * Sample values: 0, 1, 2001, 21 + * This is a message from the API that gives the status of the request processing and usually maps to a specific result code value. */ - ResponseCode: string; + ResultDesc: string; /** - * Response description message. - * Sample value: "Accept the service request successfully" + * This is a status code that indicates whether the transaction was already sent to your listener. Usual value is 0. */ - ResponseDescription: string; - } - - /** - * Interface representing the result of the transaction status query. - */ - export interface TransactionStatusResult { + ResultType: number; /** - * The unique identifier generated by M-PESA for a request. - * Sample value: "AG_20180223_0000493344ae97d86f75" + * This is a numeric status code that indicates the status of the transaction processing. 0 means success and any other code means an error occurred or the transaction failed. */ - ConversationID: string; + ResultCode: number; /** - * The unique identifier of the request message. - * This is auto-generated by M-PESA for third-party/Organizations. - * Its value comes from the response message and can be used to check the status of the transaction. - * Sample value: "3213-416199-2" + * This is a unique M-PESA transaction ID for every payment request. Same value is sent to customer over SMS upon successful processing. */ - OriginatorConversationID: string; + TransactionID: string; /** - * Reference data that M-PESA needs not analyze but needs to record into the transaction log. + * This is a JSON object that holds more details for the transaction. */ - ReferenceData?: { + ResultParameters: { /** - * Reference data item that carries some reference data that M-PESA needs not analyze but needs to record in the transaction log. + * This is a JSON array within the ResultParameters that holds additional transaction details as JSON objects. */ - ReferenceItem?: { - /** - * The parameter name indicating the reference data key. - * Sample value: "Occasion" - */ - Key: string; - }; + ResultParameter: B2CResultParameter[]; }; + }; + /** + * This is a unique M-PESA transaction ID for every payment request. Same value is sent to customer over SMS upon successful processing. It is usually returned under the ResultParameter array. + */ + TransactionReceipt: string; + /** + * This is the amount that was transacted. It is usually returned under the ResultParameter array. + */ + TransactionAmount: number; + /** + * This is the available balance of the Working account under the B2C shortcode used in the transaction. + */ + B2CWorkingAccountAvailableFunds: number; + /** + * This is the available balance of the Utility account under the B2C shortcode used in the transaction. + */ + B2CUtilityAccountAvailableFunds: number; + /** + * This is the date and time that the transaction completed M-PESA. + */ + TransactionCompletedDateTime: string; + /** + * This is the name and phone number of the customer who received the payment. + */ + ReceiverPartyPublicName: string; + /** + * This is the available balance of the Charges Paid account under the B2C shortcode used in the transaction. + */ + B2CChargesPaidAccountAvailableFunds: number; + /** + * This is a key that indicates whether the customer is a M-PESA registered customer or not. + * "Y" for Yes, "N" for No. + */ + B2CRecipientIsRegisteredCustomer: 'Y' | 'N'; +} + +/** + * Interface representing the JSON objects within the ResultParameter array of the B2C request result. + */ +export interface B2CResultParameter { + /** + * Unique M-PESA transaction ID for every payment request. Same value is sent to customer over SMS upon successful processing. + */ + TransactionReceipt: string; + /** + * Amount that was transacted. + */ + TransactionAmount: number; + /** + * Available balance of the Working account under the B2C shortcode used in the transaction. + */ + B2CWorkingAccountAvailableFunds: number; + /** + * Available balance of the Utility account under the B2C shortcode used in the transaction. + */ + B2CUtilityAccountAvailableFunds: number; + /** + * Date and time that the transaction completed M-PESA. + */ + TransactionCompletedDateTime: string; + /** + * Name and phone number of the customer who received the payment. + */ + ReceiverPartyPublicName: string; + /** + * Available balance of the Charges Paid account under the B2C shortcode used in the transaction. + */ + B2CChargesPaidAccountAvailableFunds: number; + /** + * Key that indicates whether the customer is a M-PESA registered customer or not ("Y" for Yes, "N" for No). + */ + B2CRecipientIsRegisteredCustomer: 'Y' | 'N'; +} + +/** + * Interface representing the request parameters for querying transaction status. + */ +export interface TransactionStatusBody { + /** + * The name of the initiator initiating the request. + */ + Initiator: string; + /** + * Encrypted credential of the user getting transaction status. + */ + SecurityCredential: string; + /** + * Takes only the 'TransactionStatusQuery' Command ID. + */ + 'Command ID': 'TransactionStatusQuery'; + /** + * Unique identifier to identify a transaction on Mpesa. + */ + 'Transaction ID': string; + /** + * This is a global unique identifier for the transaction request returned by the API proxy upon successful request submission. If you don’t have the M-PESA transaction ID you can use this to query. + */ + OriginatorConversationID: string; + /** + * Organization/MSISDN receiving the transaction. + */ + PartyA: string; + /** + * Type of organization receiving the transaction. + * 4 – Organization shortcode + */ + IdentifierType: string; + /** + * The path that stores information of a transaction. + */ + ResultURL: string; + /** + * The path that stores information of timeout transaction. + */ + QueueTimeOutURL: string; + /** + * Comments that are sent along with the transaction. + */ + Remarks: string; + /** + * Optional parameter. + */ + Occasion: string; +} + +/** + * Interface representing the response parameters for the transaction status query. + */ +export interface TransactionStatusResponse { + /** + * The unique request ID for tracking a transaction. + * Alpha-Numeric String of less than 20 characters e.g: 1236-7134259-1 + */ + OriginatorConversationID: string; + /** + * The unique request ID returned by M-PESA for each request made. + * Alpha Numeric String of less than 20 characters e.g: AG_20210709_1234409f86436c583e3f + */ + ConversationID: string; + /** + * The numeric status code indicating the status of the transaction processing. + * 0 means success and any other code means an error occurred or the transaction failed. + * Sample values: 0, 1, 2001, 21 + */ + ResponseCode: string; + /** + * Response description message. + * Sample value: "Accept the service request successfully" + */ + ResponseDescription: string; +} + +/** + * Interface representing the result of the transaction status query. + */ +export interface TransactionStatusResult { + /** + * The unique identifier generated by M-PESA for a request. + * Sample value: "AG_20180223_0000493344ae97d86f75" + */ + ConversationID: string; + /** + * The unique identifier of the request message. + * This is auto-generated by M-PESA for third-party/Organizations. + * Its value comes from the response message and can be used to check the status of the transaction. + * Sample value: "3213-416199-2" + */ + OriginatorConversationID: string; + /** + * Reference data that M-PESA needs not analyze but needs to record into the transaction log. + */ + ReferenceData?: { /** - * Indicates whether M-PESA processes the request successfully or not. - * Sample value: "0" - */ - ResultCode: string; - /** - * A description of the parameter ResultCode. - * Sample value: "The service request is processed successfully." - */ - ResultDesc: string; - /** - * Specific parameters for reversals API. + * Reference data item that carries some reference data that M-PESA needs not analyze but needs to record in the transaction log. */ - ResultParameters?: { + ReferenceItem?: { /** - * Array of result parameters. + * The parameter name indicating the reference data key. + * Sample value: "Occasion" */ - ResultParameter: { - /** - * The parameter name. - * Sample value: "DebitPartyName" - */ - Key: string; - /** - * The parameter value. - * Sample value: "600310 - Safaricom333" - */ - Value: string; - }[]; + Key: string; }; - /** - * Indicates the status of the transaction. - * 0: completed, 1: waiting for further messages. - * Sample value: 0 - */ - ResultType: number; - /** - * Unique identifier for the transaction (only for transactions). - * When the request is a transaction request, M-PESA will generate a unique identifier for the transaction. - * Sample value: "MBN0000000" - */ - TransactionID?: string; - } - + }; /** - * Interface representing the request body parameters for querying account balance. + * Indicates whether M-PESA processes the request successfully or not. + * Sample value: "0" */ - export interface AccountBalanceBody { - /** - * The credential/username used to authenticate the transaction request. - * Sample value: "Testapi772" - */ - Initiator: string; - /** - * Base64 encoded string of the M-PESA short code and password, encrypted using M-PESA public key. - * It validates the transaction on the M-PESA Core system and must match the inputted value of the parameter IdentifierType. - * Sample value: "EToK4lNRxdIhQjhPXi/FGxt061viOjh4hfAAwb17gaeP1JfKu4T/ui/6qB9IW9IfN/Y6S1O8U/c2s/ZqKxe+6WrFMFeYMC803hVgULln/8taf+8NE5JAib5B6qULSo7KcM2Uu5teiGTZOBL/Dy39DDeprNrtxcaYPmLcOfRDmU4hiMwZ6GLy95uVsOvGJGcK1OwTkPLIo5VKAnKaFe2C0DXXAdZRua0l4pCto17JM6OKihM2KIcPXQ8H4nr0fammyy502DvCQ==" - */ - SecurityCredential: string; - /** - * A unique command passed to the M-PESA system to query the account balance. - * Max length is 64. - * Sample value: "AccountBalance" - */ - "Command ID": string; - /** - * The shortcode of the organization querying for the account balance. - * Numeric value. - * Sample value: "600772" - */ - PartyA: string; - /** - * Type of organization querying for the account balance. - * Numeric value (Till Number Organization shortcode). - * Sample value: 4 - */ - IdentifierType: string; - /** - * Comments that are sent along with the transaction. - * String sequence of characters up to 100. - * Sample value: "tests" - */ - Remarks: string; - /** - * The end-point that receives a timeout message. - * Sample value: "https://ip:port/path" or "domain:port/path" - */ - QueueTimeOutURL: string; - /** - * The destination URL to which Daraja should send the result message. - * Sample value: "https://ip:port/path" or "domain:port/path" - */ - ResultURL: string; - } - + ResultCode: string; /** - * Interface representing the response parameters for the account balance query. + * A description of the parameter ResultCode. + * Sample value: "The service request is processed successfully." */ - export interface AccountBalanceResponse { - /** - * The unique identifier of the request message. - * This is auto-generated by M-PESA for a third party/Organization. - * It can be used to check the status of the transaction. - * Must be unique for every transaction. - * Max length is 128. - * Sample value: "515-5258779-3" - */ - OriginatorConversationID: string; - /** - * The unique identifier generated by M-Pesa for a previous request message. - * It is used to support communication multiple times between the third party and M-Pesa for one operation/transaction. - * Sample value: "AG_20200123_0000417fed8ed666e976" - */ - ConversationID: string; - /** - * It indicates whether Mobile Money accepts the request or not. - * Sample value: "0" - */ - ResponseCode: string; - /** - * A description of the parameter Response Code. - * Sample value: "Accept the service request successfully" - */ - ResponseDescription: string; - } - + ResultDesc: string; /** - * Interface representing the response parameters for the account balance query result. + * Specific parameters for reversals API. */ - export interface AccountBalanceResult { - /** - * It indicates whether Mobile Money accepts the request or not. - * 0: completed, 1: waiting for further messages. - * Sample value: 0 - */ - ResultType: number; - /** - * It indicates whether Mobile Money processes the request successfully or not. - * Max length is 10. - * Sample value: "0" - */ - ResultCode: string; + ResultParameters?: { /** - * A description of the result code. - * Max length is 1024. - * Sample value: "The service request is processed successfully" - */ - ResultDesc: string; - /** - * The unique identifier of the request message. - * This is auto-generated by M-PESA for third-party/Organizations. - * Its value comes from the response message and can be used to check the status of the transaction. - * Max length is 128. - * Sample value: "16917-22577599-3" - */ - OriginatorConversationID: string; - /** - * The unique identifier generated by M-Pesa for the request. - * Max length is 256. - * Sample value: "AG_20200206_00005e091a8ec6b9eac5" - */ - ConversationID: string; - /** - * It’s only for transactions. When the request is a transaction request, M-Pesa will generate a unique identifier for the transaction. - * Max length is 100. - * Sample value: "OA90000000" - */ - TransactionID: string; - /** - * It is used to carry specific parameters for the account balance query. + * Array of result parameters. */ ResultParameter: { /** - * It indicates a parameter name. - * Sample value: "AccountBalance" + * The parameter name. + * Sample value: "DebitPartyName" */ Key: string; /** - * It indicates a parameter value. - * Format: ||||| - * Sample value: "Working Account|KES|700000.00|700000.00|0.00|0.00&Float Account|KES|0.00|0.00|0.00|0.00&Utility Account|KES|228037.00|228037.00|0.00|0.00&Charges Paid Account|KES|-1540.00|-1540.00|0.00|0.00&Organization Settlement Account|KES|0.00|0.00|0.00|0.00" + * The parameter value. + * Sample value: "600310 - Safaricom333" */ Value: string; }[]; - /** - * It is used to carry some reference data that M-Pesa needs to record in the transactions log. - */ - ReferenceData: { - /** - * It is used to carry some reference data that M-Pesa need not analyze but needs to record in the transaction log. - */ - ReferenceItem: { - /** - * It indicates a parameter name. - * Sample value: "QueueTimeoutURL" - */ - Key: string; - /** - * It indicates a parameter value. - * Sample value: "https://internalsandbox.safaricom.co.ke/mpesa/abresults/v1/submit" - */ - Value: string; - }; - }; - } - + }; /** - * Interface for the ReverseC2BTransaction request body. + * Indicates the status of the transaction. + * 0: completed, 1: waiting for further messages. + * Sample value: 0 */ - export interface ReverseC2BTransactionBody { - /** - * TransactionID - Organization Receiving the funds. - * - * String - * Example: "LKXXXX1234" - */ - TransactionID: string; - - /** - * Amount - The transaction amount. - * - * String - * Example: "100.00" - */ - Amount: string; - - /** - * ReceiverParty - The organization that receives the transaction. - * - * Numeric - * Example: "123456789" (Shortcode with 6-9 digits) - */ - ReceiverParty: string; - - /** - * Initiator - The name of the initiator to initiate the request. - * - * Alpha-Numeric - * Example: "JohnDoe123" - */ - Initiator?: string; - - /** - * SecurityCredential - Encrypted Credential of the user getting the transaction amount. - * - * String - * Example: "********" (Encrypted password for the initiator to authenticate the transaction request) - */ - SecurityCredential?: string; - - /** - * CommandID - Takes only the 'TransactionReversal' Command id. - * - * String - * Example: "TransactionReversal" - */ - CommandID?: string; - - /** - * ReceiverIdentifierType - Type of organization that receives the transaction. - * - * String - * Example: "11" - */ - ReceiverIdentifierType?: string; - - /** - * ResultURL - The path that stores information about the transaction. - * - * URL - * Example: "https://ip or domain:port/path" - */ - ResultURL?: string; - - /** - * QueueTimeOutURL - The path that stores information about the time-out transaction. - * - * URL - * Example: "https://ip or domain:port/path" - */ - QueueTimeOutURL?: string; - - /** - * Remarks - Comments that are sent along with the transaction. - * - * String - * Example: "test" - */ - Remarks?: string; - - /** - * Occasion - Optional Parameter. - * - * String - * Example: "Special Occasion" - */ - Occasion?: string; - } - + ResultType: number; /** - * Interface for the ReverseC2BTransaction response body. + * Unique identifier for the transaction (only for transactions). + * When the request is a transaction request, M-PESA will generate a unique identifier for the transaction. + * Sample value: "MBN0000000" */ - export interface ReverseC2BTransactionResponse { - /** - * OriginatorConversationID - The unique request ID for tracking a transaction. - * - * Alpha-Numeric - * Example: "71840-27539181-07" (an alpha-numeric string of less than 20 characters) - */ - OriginatorConversationID: string; - - /** - * ConversationID - The unique request ID returned by mpesa for each request made. - * - * Alpha-Numeric - * Example: "AG_20210709_12346c8e6f8858d7b70a" - */ - ConversationID: string; - + TransactionID?: string; +} + +/** + * Interface representing the request body parameters for querying account balance. + */ +export interface AccountBalanceBody { + /** + * The credential/username used to authenticate the transaction request. + * Sample value: "Testapi772" + */ + Initiator: string; + /** + * Base64 encoded string of the M-PESA short code and password, encrypted using M-PESA public key. + * It validates the transaction on the M-PESA Core system and must match the inputted value of the parameter IdentifierType. + * Sample value: "EToK4lNRxdIhQjhPXi/FGxt061viOjh4hfAAwb17gaeP1JfKu4T/ui/6qB9IW9IfN/Y6S1O8U/c2s/ZqKxe+6WrFMFeYMC803hVgULln/8taf+8NE5JAib5B6qULSo7KcM2Uu5teiGTZOBL/Dy39DDeprNrtxcaYPmLcOfRDmU4hiMwZ6GLy95uVsOvGJGcK1OwTkPLIo5VKAnKaFe2C0DXXAdZRua0l4pCto17JM6OKihM2KIcPXQ8H4nr0fammyy502DvCQ==" + */ + SecurityCredential: string; + /** + * A unique command passed to the M-PESA system to query the account balance. + * Max length is 64. + * Sample value: "AccountBalance" + */ + 'Command ID': string; + /** + * The shortcode of the organization querying for the account balance. + * Numeric value. + * Sample value: "600772" + */ + PartyA: string; + /** + * Type of organization querying for the account balance. + * Numeric value (Till Number Organization shortcode). + * Sample value: 4 + */ + IdentifierType: string; + /** + * Comments that are sent along with the transaction. + * String sequence of characters up to 100. + * Sample value: "tests" + */ + Remarks: string; + /** + * The end-point that receives a timeout message. + * Sample value: "https://ip:port/path" or "domain:port/path" + */ + QueueTimeOutURL: string; + /** + * The destination URL to which Daraja should send the result message. + * Sample value: "https://ip:port/path" or "domain:port/path" + */ + ResultURL: string; +} + +/** + * Interface representing the response parameters for the account balance query. + */ +export interface AccountBalanceResponse { + /** + * The unique identifier of the request message. + * This is auto-generated by M-PESA for a third party/Organization. + * It can be used to check the status of the transaction. + * Must be unique for every transaction. + * Max length is 128. + * Sample value: "515-5258779-3" + */ + OriginatorConversationID: string; + /** + * The unique identifier generated by M-Pesa for a previous request message. + * It is used to support communication multiple times between the third party and M-Pesa for one operation/transaction. + * Sample value: "AG_20200123_0000417fed8ed666e976" + */ + ConversationID: string; + /** + * It indicates whether Mobile Money accepts the request or not. + * Sample value: "0" + */ + ResponseCode: string; + /** + * A description of the parameter Response Code. + * Sample value: "Accept the service request successfully" + */ + ResponseDescription: string; +} + +/** + * Interface representing the response parameters for the account balance query result. + */ +export interface AccountBalanceResult { + /** + * It indicates whether Mobile Money accepts the request or not. + * 0: completed, 1: waiting for further messages. + * Sample value: 0 + */ + ResultType: number; + /** + * It indicates whether Mobile Money processes the request successfully or not. + * Max length is 10. + * Sample value: "0" + */ + ResultCode: string; + /** + * A description of the result code. + * Max length is 1024. + * Sample value: "The service request is processed successfully" + */ + ResultDesc: string; + /** + * The unique identifier of the request message. + * This is auto-generated by M-PESA for third-party/Organizations. + * Its value comes from the response message and can be used to check the status of the transaction. + * Max length is 128. + * Sample value: "16917-22577599-3" + */ + OriginatorConversationID: string; + /** + * The unique identifier generated by M-Pesa for the request. + * Max length is 256. + * Sample value: "AG_20200206_00005e091a8ec6b9eac5" + */ + ConversationID: string; + /** + * It’s only for transactions. When the request is a transaction request, M-Pesa will generate a unique identifier for the transaction. + * Max length is 100. + * Sample value: "OA90000000" + */ + TransactionID: string; + /** + * It is used to carry specific parameters for the account balance query. + */ + ResultParameter: { /** - * ResponseCode - Response code indicating the result of the service request. - * - * Numeric - * Example: "0" + * It indicates a parameter name. + * Sample value: "AccountBalance" */ - ResponseCode: string; - + Key: string; /** - * ResponseDescription - Response Description message. - * - * String - * Example: "Accept the service request successfully." + * It indicates a parameter value. + * Format: ||||| + * Sample value: "Working Account|KES|700000.00|700000.00|0.00|0.00&Float Account|KES|0.00|0.00|0.00|0.00&Utility Account|KES|228037.00|228037.00|0.00|0.00&Charges Paid Account|KES|-1540.00|-1540.00|0.00|0.00&Organization Settlement Account|KES|0.00|0.00|0.00|0.00" */ - ResponseDescription: string; - } - + Value: string; + }[]; /** - * Interface for the ReverseC2BTransactionResult response body. + * It is used to carry some reference data that M-Pesa needs to record in the transactions log. */ - export interface Result { + ReferenceData: { /** - * Result - Contains information about the result of the transaction. + * It is used to carry some reference data that M-Pesa need not analyze but needs to record in the transaction log. */ - Result: { - /** - * ResultType - Indicates the result type. - * - * Integer - * Example: 0 (completed) or 1 (waiting for further messages) - */ - ResultType: number; - - /** - * ResultCode - Indicates whether M-PESA processes the request successfully or not. - * - * String (max length: 10) - * Example: "0" - */ - ResultCode: string; - - /** - * ResultDesc - Provides a description of the ResultCode. - * - * String (max length: 1024) - * Example: "The service request is processed successfully." - */ - ResultDesc: string; - + ReferenceItem: { /** - * OriginatorConversationID - The unique identifier of the request message. - * - * String - * Example: "8521-4298025-1" - */ - OriginatorConversationID: string; - - /** - * ConversationID - The unique identifier generated by M-PESA for a request. - * - * String - * Example: "AG_20181005_00004d7ee675c0c7ee0b" - */ - ConversationID: string; - - /** - * TransactionID - Unique identifier for the transaction. - * - * String - * Example: "MJ561H6X5O" - */ - TransactionID: string; - - /** - * ResultParameters - Contains specific parameters for reversals API. + * It indicates a parameter name. + * Sample value: "QueueTimeoutURL" */ - ResultParameters: { - ResultParameter: { - /** - * Key - Indicates a parameter name. - * - * String - * Example: "DebitAccountBalance" - */ - Key: string; - - /** - * Value - Indicates a parameter value. - * - * String - * Example: "Utility Account|KES|51661.00|51661.00|0.00|0.00" - */ - Value: string; - }[]; - }; - + Key: string; /** - * ReferenceData - Contains reference data for transaction logging. + * It indicates a parameter value. + * Sample value: "https://internalsandbox.safaricom.co.ke/mpesa/abresults/v1/submit" */ - ReferenceData: { - ReferenceItem: { - /** - * Key - Indicates a reference data parameter name. - * - * String - * Example: "QueueTimeoutURL" - */ - Key: string; - - /** - * Value - Indicates a reference data parameter value. - * - * String - * Example: "https://internalsandbox.safaricom.co.ke/mpesa/reversalresults/v1/submit" - */ - Value: string; - }; - }; + Value: string; }; - } - + }; +} + +/** + * Interface for the ReverseC2BTransaction request body. + */ +export interface ReverseC2BTransactionBody { /** - * Interface for the tax remittance request body. + * TransactionID - Organization Receiving the funds. + * + * String + * Example: "LKXXXX1234" */ - export interface TaxRemittanceBody { - /** - * Initiator - The M-Pesa API operator username. - * - * String - * Example: "TaxPayer" - */ - Initiator: string; - - /** - * SecurityCredential - The encrypted password of the M-Pesa API operator. - * - * String - * Example: "32SzVdmCvjpmQfw3X2RK8UAv7xuhhkgjfgHAJSGFH..." - */ - SecurityCredential: string; - - /** - * CommandID - Specifies the type of transaction. - * - * String - * Example: "PayTaxToKRA" - */ - CommandID: string; - - /** - * SenderIdentifierType - The type of shortcode from which money is deducted. - * - * Number - * Example: 4 - */ - SenderIdentifierType: number; - - /** - * RecieverIdentifierType - The type of shortcode to which money is credited. - * - * Number - * Example: 4 - */ - RecieverIdentifierType: number; - - /** - * Amount - The transaction amount. - * - * Number - * Example: 239 - */ - Amount: number; - - /** - * PartyA - Your own shortcode from which the money will be deducted. - * - * Number - * Example: 888880 - */ - PartyA: number; - - /** - * PartyB - The account to which money will be credited. - * - * Number - * Example: 572572 - */ - PartyB: number; - - /** - * AccountReference - The payment registration number (PRN) issued by KRA. - * - * String - * Example: "PRN1234XN" - */ - AccountReference: string; - - /** - * Remarks - Any additional information to be associated with the transaction. - * - * String - * Example: "OK" - */ - Remarks: string; - - /** - * QueueTimeOutURL - A URL that will be used to notify your system in case the request times out before processing. - * - * URL - * Example: "https://mydomain.com/b2b/remittax/queue/" - */ - QueueTimeOutURL: string; - - /** - * ResultURL - A URL that will be used to send transaction results after processing. - * - * URL - * Example: "https://mydomain.com/b2b/remittax/result/" - */ - ResultURL: string; - } - + TransactionID: string; + /** - * Interface for the tax remittance response body. + * Amount - The transaction amount. + * + * String + * Example: "100.00" */ - export interface TaxRemittanceResponse { - /** - * OriginatorConversationID - Unique request identifier assigned by Daraja upon successful request submission. - * - * String - * Example: "5118-111210482-1" (a string of fewer than 20 characters) - */ - OriginatorConversationID: string; - + Amount: string; + + /** + * ReceiverParty - The organization that receives the transaction. + * + * Numeric + * Example: "123456789" (Shortcode with 6-9 digits) + */ + ReceiverParty: string; + + /** + * Initiator - The name of the initiator to initiate the request. + * + * Alpha-Numeric + * Example: "JohnDoe123" + */ + Initiator?: string; + + /** + * SecurityCredential - Encrypted Credential of the user getting the transaction amount. + * + * String + * Example: "********" (Encrypted password for the initiator to authenticate the transaction request) + */ + SecurityCredential?: string; + + /** + * CommandID - Takes only the 'TransactionReversal' Command id. + * + * String + * Example: "TransactionReversal" + */ + CommandID?: string; + + /** + * ReceiverIdentifierType - Type of organization that receives the transaction. + * + * String + * Example: "11" + */ + ReceiverIdentifierType?: string; + + /** + * ResultURL - The path that stores information about the transaction. + * + * URL + * Example: "https://ip or domain:port/path" + */ + ResultURL?: string; + + /** + * QueueTimeOutURL - The path that stores information about the time-out transaction. + * + * URL + * Example: "https://ip or domain:port/path" + */ + QueueTimeOutURL?: string; + + /** + * Remarks - Comments that are sent along with the transaction. + * + * String + * Example: "test" + */ + Remarks?: string; + + /** + * Occasion - Optional Parameter. + * + * String + * Example: "Special Occasion" + */ + Occasion?: string; +} + +/** + * Interface for the ReverseC2BTransaction response body. + */ +export interface ReverseC2BTransactionResponse { + /** + * OriginatorConversationID - The unique request ID for tracking a transaction. + * + * Alpha-Numeric + * Example: "71840-27539181-07" (an alpha-numeric string of less than 20 characters) + */ + OriginatorConversationID: string; + + /** + * ConversationID - The unique request ID returned by mpesa for each request made. + * + * Alpha-Numeric + * Example: "AG_20210709_12346c8e6f8858d7b70a" + */ + ConversationID: string; + + /** + * ResponseCode - Response code indicating the result of the service request. + * + * Numeric + * Example: "0" + */ + ResponseCode: string; + + /** + * ResponseDescription - Response Description message. + * + * String + * Example: "Accept the service request successfully." + */ + ResponseDescription: string; +} + +/** + * Interface for the ReverseC2BTransactionResult response body. + */ +export interface Result { + /** + * Result - Contains information about the result of the transaction. + */ + Result: { /** - * ConversationID - Unique request identifier assigned by M-Pesa upon successful request submission. + * ResultType - Indicates the result type. * - * String - * Example: "AG_20230420_2010759fd5662ef6d054" + * Integer + * Example: 0 (completed) or 1 (waiting for further messages) */ - ConversationID: string; - + ResultType: number; + /** - * ResponseCode - Status code for request submission. 0 (zero) indicates successful request submission. + * ResultCode - Indicates whether M-PESA processes the request successfully or not. * - * String + * String (max length: 10) * Example: "0" */ - ResponseCode: string; - - /** - * ResponseDescription - A descriptive message of the request submission status. - * - * String - * Example: "Accept the service request successfully." - */ - ResponseDescription: string; - } - - /** - * Interface for the BusinessPaybill request body. - */ - export interface BusinessRequestBody { + ResultCode: string; + /** - * Initiator - The M-Pesa API operator username. This user needs Org Business Pay Bill API initiator role on M-Pesa. + * ResultDesc - Provides a description of the ResultCode. * - * String - * Example: "API_Usename" + * String (max length: 1024) + * Example: "The service request is processed successfully." */ - Initiator: string; - + ResultDesc: string; + /** - * SecurityCredential - The encrypted password of the M-Pesa API operator. + * OriginatorConversationID - The unique identifier of the request message. * * String - * Example: "32SzVdmCvjpmQfw3X2RK8UAv7xuhhkgjfgHAJSGFHJgagfagF..." + * Example: "8521-4298025-1" */ - SecurityCredential: string; - + OriginatorConversationID: string; + /** - * CommandID - Specifies the type of transaction. For this API, use "BusinessPayBill" only. + * ConversationID - The unique identifier generated by M-PESA for a request. * * String - * Example: "BusinessPayBill" - */ - CommandID: "BusinessPayBill"; - - /** - * SenderIdentifierType - The type of shortcode from which money is deducted. For this API, only 4 is allowed. - * - * Number - * Example: 4 - */ - SenderIdentifierType: 4; - - /** - * ReceiverIdentifierType - The type of shortcode to which money is credited. For this API, only 4 is allowed. - * - * Number - * Example: 4 - */ - ReceiverIdentifierType: 4; - - /** - * Amount - The transaction amount. - * - * Number - * Example: 239 - */ - Amount: number; - - /** - * PartyA - Your shortcode. The shortcode from which money will be deducted. - * - * Number (5-6 digits) - * Example: 123456 - */ - PartyA: number; - - /** - * PartyB - The shortcode to which money will be moved. - * - * Number (5-6 digits) - * Example: 000000 - */ - PartyB: number; - - /** - * Requester - Optional. The consumer’s mobile number on behalf of whom you are paying. - * - * Mobile Number - * Example: 254700000000 + * Example: "AG_20181005_00004d7ee675c0c7ee0b" */ - Requester?: number; - + ConversationID: string; + /** - * AccountReference - The account number to be associated with the payment. Up to 13 characters. + * TransactionID - Unique identifier for the transaction. * * String - * Example: "ACC#03929/4yu" - */ - AccountReference: string; - - /** - * Remarks - Any additional information to be associated with the transaction. - * - * String (Up to 100 characters) - * Example: "OK" + * Example: "MJ561H6X5O" */ - Remarks: string; - - /** - * QueueTimeOutURL - A URL that will be used to notify your system in case the request times out before processing. - * - * URL - * Example: "https://ip or domain:port/path" - */ - QueueTimeOutURL: string; - + TransactionID: string; + /** - * ResultURL - A URL that will be used to send transaction results after processing. - * - * URL - * Example: "https://ip or domain:port/path" + * ResultParameters - Contains specific parameters for reversals API. */ - ResultURL: string; - + ResultParameters: { + ResultParameter: { + /** + * Key - Indicates a parameter name. + * + * String + * Example: "DebitAccountBalance" + */ + Key: string; + + /** + * Value - Indicates a parameter value. + * + * String + * Example: "Utility Account|KES|51661.00|51661.00|0.00|0.00" + */ + Value: string; + }[]; + }; + /** - * Occasion - Any additional information to be associated with the transaction. - * - * String (Up to 100 characters) - * Example: "Special Occasion" + * ReferenceData - Contains reference data for transaction logging. */ - Occasion?: string; - } - + ReferenceData: { + ReferenceItem: { + /** + * Key - Indicates a reference data parameter name. + * + * String + * Example: "QueueTimeoutURL" + */ + Key: string; + + /** + * Value - Indicates a reference data parameter value. + * + * String + * Example: "https://internalsandbox.safaricom.co.ke/mpesa/reversalresults/v1/submit" + */ + Value: string; + }; + }; + }; +} + +/** + * Interface for the tax remittance request body. + */ +export interface TaxRemittanceBody { + /** + * Initiator - The M-Pesa API operator username. + * + * String + * Example: "TaxPayer" + */ + Initiator: string; + + /** + * SecurityCredential - The encrypted password of the M-Pesa API operator. + * + * String + * Example: "32SzVdmCvjpmQfw3X2RK8UAv7xuhhkgjfgHAJSGFH..." + */ + SecurityCredential: string; + + /** + * CommandID - Specifies the type of transaction. + * + * String + * Example: "PayTaxToKRA" + */ + CommandID: string; + + /** + * SenderIdentifierType - The type of shortcode from which money is deducted. + * + * Number + * Example: 4 + */ + SenderIdentifierType: number; + + /** + * RecieverIdentifierType - The type of shortcode to which money is credited. + * + * Number + * Example: 4 + */ + RecieverIdentifierType: number; + + /** + * Amount - The transaction amount. + * + * Number + * Example: 239 + */ + Amount: number; + + /** + * PartyA - Your own shortcode from which the money will be deducted. + * + * Number + * Example: 888880 + */ + PartyA: number; + + /** + * PartyB - The account to which money will be credited. + * + * Number + * Example: 572572 + */ + PartyB: number; + + /** + * AccountReference - The payment registration number (PRN) issued by KRA. + * + * String + * Example: "PRN1234XN" + */ + AccountReference: string; + + /** + * Remarks - Any additional information to be associated with the transaction. + * + * String + * Example: "OK" + */ + Remarks: string; + + /** + * QueueTimeOutURL - A URL that will be used to notify your system in case the request times out before processing. + * + * URL + * Example: "https://mydomain.com/b2b/remittax/queue/" + */ + QueueTimeOutURL: string; + + /** + * ResultURL - A URL that will be used to send transaction results after processing. + * + * URL + * Example: "https://mydomain.com/b2b/remittax/result/" + */ + ResultURL: string; +} + +/** + * Interface for the tax remittance response body. + */ +export interface TaxRemittanceResponse { + /** + * OriginatorConversationID - Unique request identifier assigned by Daraja upon successful request submission. + * + * String + * Example: "5118-111210482-1" (a string of fewer than 20 characters) + */ + OriginatorConversationID: string; + + /** + * ConversationID - Unique request identifier assigned by M-Pesa upon successful request submission. + * + * String + * Example: "AG_20230420_2010759fd5662ef6d054" + */ + ConversationID: string; + + /** + * ResponseCode - Status code for request submission. 0 (zero) indicates successful request submission. + * + * String + * Example: "0" + */ + ResponseCode: string; + + /** + * ResponseDescription - A descriptive message of the request submission status. + * + * String + * Example: "Accept the service request successfully." + */ + ResponseDescription: string; +} + +/** + * Interface for the BusinessPaybill request body. + */ +export interface BusinessRequestBody { + /** + * Initiator - The M-Pesa API operator username. This user needs Org Business Pay Bill API initiator role on M-Pesa. + * + * String + * Example: "API_Usename" + */ + Initiator: string; + + /** + * SecurityCredential - The encrypted password of the M-Pesa API operator. + * + * String + * Example: "32SzVdmCvjpmQfw3X2RK8UAv7xuhhkgjfgHAJSGFHJgagfagF..." + */ + SecurityCredential: string; + + /** + * CommandID - Specifies the type of transaction. For this API, use "BusinessPayBill" only. + * + * String + * Example: "BusinessPayBill" + */ + CommandID: 'BusinessPayBill'; + + /** + * SenderIdentifierType - The type of shortcode from which money is deducted. For this API, only 4 is allowed. + * + * Number + * Example: 4 + */ + SenderIdentifierType: 4; + + /** + * ReceiverIdentifierType - The type of shortcode to which money is credited. For this API, only 4 is allowed. + * + * Number + * Example: 4 + */ + ReceiverIdentifierType: 4; + + /** + * Amount - The transaction amount. + * + * Number + * Example: 239 + */ + Amount: number; + + /** + * PartyA - Your shortcode. The shortcode from which money will be deducted. + * + * Number (5-6 digits) + * Example: 123456 + */ + PartyA: number; + + /** + * PartyB - The shortcode to which money will be moved. + * + * Number (5-6 digits) + * Example: 000000 + */ + PartyB: number; + + /** + * Requester - Optional. The consumer’s mobile number on behalf of whom you are paying. + * + * Mobile Number + * Example: 254700000000 + */ + Requester?: number; + + /** + * AccountReference - The account number to be associated with the payment. Up to 13 characters. + * + * String + * Example: "ACC#03929/4yu" + */ + AccountReference: string; + + /** + * Remarks - Any additional information to be associated with the transaction. + * + * String (Up to 100 characters) + * Example: "OK" + */ + Remarks: string; + + /** + * QueueTimeOutURL - A URL that will be used to notify your system in case the request times out before processing. + * + * URL + * Example: "https://ip or domain:port/path" + */ + QueueTimeOutURL: string; + + /** + * ResultURL - A URL that will be used to send transaction results after processing. + * + * URL + * Example: "https://ip or domain:port/path" + */ + ResultURL: string; + + /** + * Occasion - Any additional information to be associated with the transaction. + * + * String (Up to 100 characters) + * Example: "Special Occasion" + */ + Occasion?: string; +} + +/** + * Interface for the BusinessPaybill response body. + */ +export interface BusinessRequestResponse { + /** + * OriginatorConversationID - Unique request identifier assigned by Daraja upon successful request submission. + * + * String + * Example: "5118-111210482-1" (a string of less than 20 characters) + */ + OriginatorConversationID: string; + + /** + * ConversationID - Unique request identifier assigned by M-Pesa upon successful request submission. + * + * String + * Example: "AG_20230420_2010759fd5662ef6d054" + */ + ConversationID: string; + + /** + * ResponseCode - Status code for request submission. 0 (zero) indicates successful submission. + * + * String + * Example: "0" + */ + ResponseCode: string; + + /** + * ResponseDescription - A descriptive message of the request submission status. + * + * String + * Example: "Accept the service request successfully." + */ + ResponseDescription: string; +} + +/** + * B2B Express Checkout Request Body + */ +export type B2BExpressCheckoutBody = { + /** + * Debit party, the merchant’s till (organization sending money) shortCode/tillNumber. + * @type {number} + * @example 000001 + */ + primaryShortCode: number; + + /** + * Credit party, the vendor (payBill Account) receiving the amount from the merchant. + * @type {number} + * @example 000002 + */ + receiverShortCode: number; + + /** + * Amount to be sent to the vendor. + * @type {number} + * @example 100 + */ + amount: number; + + /** + * Reference to the payment being made. Appears in the text for easy reference by the merchant. + * @type {string} + * @example "paymentRef" + */ + paymentRef: string; + + /** + * Endpoint from the vendor system used to send back the confirmation response once the transaction is complete. + * @type {string} + * @example "http://..../result" + */ + callbackUrl: string; + + /** + * Organization's friendly name used by the vendor as known by the Merchant. + * @type {string} + * @example "Vendor" + */ + partnerName: string; + /** - * Interface for the BusinessPaybill response body. + * Random Unique Identifier sent by the vendor System. + * Used to track the process across different components. + * Generated at the Apigee level, and the result returned in the acknowledgment. + * @type {string} + * @example "550e8400-e29b-41d4-a716-446655440000" */ - export interface BusinessRequestResponse { - /** - * OriginatorConversationID - Unique request identifier assigned by Daraja upon successful request submission. - * - * String - * Example: "5118-111210482-1" (a string of less than 20 characters) - */ - OriginatorConversationID: string; - - /** - * ConversationID - Unique request identifier assigned by M-Pesa upon successful request submission. - * - * String - * Example: "AG_20230420_2010759fd5662ef6d054" - */ - ConversationID: string; - - /** - * ResponseCode - Status code for request submission. 0 (zero) indicates successful submission. - * - * String - * Example: "0" - */ - ResponseCode: string; - - /** - * ResponseDescription - A descriptive message of the request submission status. - * - * String - * Example: "Accept the service request successfully." - */ - ResponseDescription: string; - } - + RequestRefID: string; +}; + +/** + * This interface defines the body of a B2B Buy Goods request to the M-Pesa API. + */ +export interface B2BBuyGoodsBody { /** - * B2B Express Checkout Request Body + * For this API use "BusinessBuyGoods" only. */ - export type B2BExpressCheckoutBody = { - /** - * Debit party, the merchant’s till (organization sending money) shortCode/tillNumber. - * @type {number} - * @example 000001 - */ - primaryShortCode: number; - - /** - * Credit party, the vendor (payBill Account) receiving the amount from the merchant. - * @type {number} - * @example 000002 - */ - receiverShortCode: number; - - /** - * Amount to be sent to the vendor. - * @type {number} - * @example 100 - */ - amount: number; - - /** - * Reference to the payment being made. Appears in the text for easy reference by the merchant. - * @type {string} - * @example "paymentRef" - */ - paymentRef: string; - - /** - * Endpoint from the vendor system used to send back the confirmation response once the transaction is complete. - * @type {string} - * @example "http://..../result" - */ - callbackUrl: string; - - /** - * Organization's friendly name used by the vendor as known by the Merchant. - * @type {string} - * @example "Vendor" - */ - partnerName: string; - - /** - * Random Unique Identifier sent by the vendor System. - * Used to track the process across different components. - * Generated at the Apigee level, and the result returned in the acknowledgment. - * @type {string} - * @example "550e8400-e29b-41d4-a716-446655440000" - */ - RequestRefID: string; - }; - + CommandID: 'BusinessBuyGoods' | 'BusinessPaybill'; + /** - * This interface defines the body of a B2B Buy Goods request to the M-Pesa API. + * The M-Pesa API operator username. This user needs Org Business Pay Bill API initiator role on M-Pesa. */ - export interface B2BBuyGoodsBody { - /** - * For this API use "BusinessBuyGoods" only. - */ - CommandID: "BusinessBuyGoods" | "BusinessPaybill"; - - /** - * The M-Pesa API operator username. This user needs Org Business Pay Bill API initiator role on M-Pesa. - */ - Initiator: string; - + Initiator: string; + + /** + * The encrypted password of the M-Pesa API operator. The process for encrypting the initiator password has been described under docs. An online encryption tool is available under the test credentials section. + */ + SecurityCredential: string; + + /** + * The type of shortcode from which money is deducted. For this API, only "4" is allowed. + */ + SenderIdentifierType: 4; + + /** + * The type of shortcode to which money is credited. This API supports type 4 only. + */ + RecieverIdentifierType: 4; + + /** + * The transaction amount. + */ + Amount: number; + + /** + * The shortcode to which money will be moved. + */ + PartyB: string; + + /** + * The account number to be associated with the payment. Up to 13 characters. + */ + AccountReference: string; + + /** + * (Optional) The consumer’s mobile number on behalf of whom you are paying. + */ + Requester?: string; + + /** + * Any additional information to be associated with the transaction. Sentence of up to 100 characters. + */ + Remarks: string; + + /** + * A URL that will be used to notify your system in case the request times out before processing. + */ + QueueTimeOutURL: string; + + /** + * A URL that will be used to send transaction results after processing. + */ + ResultURL: string; +} + +/** + * This interface defines the response body of a B2B Buy Goods request from the M-Pesa API. + */ +export interface B2BBuyGoodsResponse { + /** + * Unique request identifier assigned by Daraja upon successful request submission. + */ + OriginatorConversationID: string; + + /** + * Unique request identifier assigned by M-Pesa upon successful request submission. + */ + ConversationID: string; + + /** + * Status code for request submission. 0 (zero) indicates successful submission. + */ + ResponseCode: string; + + /** + * A descriptive message of the request submission status. + */ + ResponseDescription: string; +} + +/** + * This interface defines the response body of a successful B2B Buy Goods request from the M-Pesa API. + */ +export interface B2BBuyGoodsAndPaybillSuccessfulResponse { + /** + * The root parameter encloses the entire result message. + */ + Result: { /** - * The encrypted password of the M-Pesa API operator. The process for encrypting the initiator password has been described under docs. An online encryption tool is available under the test credentials section. + * A status code indicating whether the transaction was already sent to your listener. The usual value is 0. */ - SecurityCredential: string; - + ResultType: string; + /** - * The type of shortcode from which money is deducted. For this API, only "4" is allowed. + * A transaction result status code. 0(zero) indicates successful processing. */ - SenderIdentifierType: 4; - + ResultCode: string; + /** - * The type of shortcode to which money is credited. This API supports type 4 only. + * A descriptive message for the transaction result. */ - RecieverIdentifierType: 4; - + ResultDesc: string; + /** - * The transaction amount. + * Unique request identifier assigned by M-Pesa upon successful request submission. */ - Amount: number; - + ConversationID: string; + /** - * The shortcode to which money will be moved. + * Unique request identifier assigned by Daraja upon successful request submission. */ - PartyB: string; - + OriginatorConversationID: string; + /** - * The account number to be associated with the payment. Up to 13 characters. + * Unique M-PESA transaction ID for the payment request. */ - AccountReference: string; - + TransactionID: string; + /** - * (Optional) The consumer’s mobile number on behalf of whom you are paying. + * This is a JSON object that holds more details for the transaction. */ - Requester?: string; - + ResultParameters: { + /** + * A JSON array within the ResultParameters that holds additional transaction details as JSON objects. + */ + ResultParameter: { + /** + * Key for the transaction detail. + */ + Key: string; + + /** + * Value for the transaction detail. Can be a string or a nested object. + */ + Value: + | string + | { + Amount: { + CurrencyCode: string; + MinimumAmount: number; + BasicAmount: number; + }; + }; + }[]; + }; + /** - * Any additional information to be associated with the transaction. Sentence of up to 100 characters. + * This JSON object holds more details for the transaction reference data. */ - Remarks: string; - + ReferenceData: { + /** + * A JSON array that holds JSON Objects with additional transaction details. + */ + ReferenceItem: { + /** + * Key for the reference data. + */ + Key: string; + + /** + * Value for the reference data. + */ + Value: string; + }[]; + }; + }; +} + +/** + * This interface defines the response body of a failed B2B Buy Goods request from the M-Pesa API. + */ +export interface B2BErrorResponse { + /** + * The root parameter encloses the entire result message. + */ + Result: { /** - * A URL that will be used to notify your system in case the request times out before processing. + * A status code indicating whether the transaction was already sent to your listener. The usual value is 0. */ - QueueTimeOutURL: string; - + ResultType: string; + /** - * A URL that will be used to send transaction results after processing. + * A transaction result status code. Non-zero values indicate processing errors. */ - ResultURL: string; - } - - /** - * This interface defines the response body of a B2B Buy Goods request from the M-Pesa API. - */ - export interface B2BBuyGoodsResponse { + ResultCode: '0'; + /** - * Unique request identifier assigned by Daraja upon successful request submission. + * A descriptive message for the transaction processing error. */ - OriginatorConversationID: string; - + ResultDesc: string; + /** * Unique request identifier assigned by M-Pesa upon successful request submission. */ ConversationID: string; - + /** - * Status code for request submission. 0 (zero) indicates successful submission. + * Unique request identifier assigned by Daraja upon successful request submission. */ - ResponseCode: string; - + OriginatorConversationID: string; + /** - * A descriptive message of the request submission status. + * Unique M-PESA transaction ID for the payment request. A generic value is passed for certain failure scenarios. */ - ResponseDescription: string; - } - - /** - * This interface defines the response body of a successful B2B Buy Goods request from the M-Pesa API. - */ - export interface B2BBuyGoodsAndPaybillSuccessfulResponse { + TransactionID: string; + /** - * The root parameter encloses the entire result message. + * This is a JSON object that may hold additional details for the transaction, but may be empty for some errors. */ - Result: { - /** - * A status code indicating whether the transaction was already sent to your listener. The usual value is 0. - */ - ResultType: string; - - /** - * A transaction result status code. 0(zero) indicates successful processing. - */ - ResultCode: string; - - /** - * A descriptive message for the transaction result. - */ - ResultDesc: string; - - /** - * Unique request identifier assigned by M-Pesa upon successful request submission. - */ - ConversationID: string; - - /** - * Unique request identifier assigned by Daraja upon successful request submission. - */ - OriginatorConversationID: string; - - /** - * Unique M-PESA transaction ID for the payment request. - */ - TransactionID: string; - + ResultParameters?: { /** - * This is a JSON object that holds more details for the transaction. + * A JSON array within the ResultParameters that holds additional transaction details as JSON objects. */ - ResultParameters: { + ResultParameter: { /** - * A JSON array within the ResultParameters that holds additional transaction details as JSON objects. + * Key for the transaction detail. */ - ResultParameter: { - /** - * Key for the transaction detail. - */ - Key: string; - - /** - * Value for the transaction detail. Can be a string or a nested object. - */ - Value: - | string - | { - Amount: { - CurrencyCode: string; - MinimumAmount: number; - BasicAmount: number; - }; - }; - }[]; - }; - - /** - * This JSON object holds more details for the transaction reference data. - */ - ReferenceData: { + Key: string; + /** - * A JSON array that holds JSON Objects with additional transaction details. + * Value for the transaction detail. */ - ReferenceItem: { - /** - * Key for the reference data. - */ - Key: string; - - /** - * Value for the reference data. - */ - Value: string; - }[]; - }; + Value: string; + }[]; }; - } - - /** - * This interface defines the response body of a failed B2B Buy Goods request from the M-Pesa API. - */ - export interface B2BErrorResponse { + /** - * The root parameter encloses the entire result message. + * This JSON object may hold additional details for the transaction reference data, but may be empty for some errors. */ - Result: { - /** - * A status code indicating whether the transaction was already sent to your listener. The usual value is 0. - */ - ResultType: string; - - /** - * A transaction result status code. Non-zero values indicate processing errors. - */ - ResultCode: "0"; - - /** - * A descriptive message for the transaction processing error. - */ - ResultDesc: string; - - /** - * Unique request identifier assigned by M-Pesa upon successful request submission. - */ - ConversationID: string; - - /** - * Unique request identifier assigned by Daraja upon successful request submission. - */ - OriginatorConversationID: string; - - /** - * Unique M-PESA transaction ID for the payment request. A generic value is passed for certain failure scenarios. - */ - TransactionID: string; - + ReferenceData?: { /** - * This is a JSON object that may hold additional details for the transaction, but may be empty for some errors. + * A JSON array that may hold JSON Objects with additional transaction details. */ - ResultParameters?: { + ReferenceItem?: { /** - * A JSON array within the ResultParameters that holds additional transaction details as JSON objects. + * Key for the reference data. */ - ResultParameter: { - /** - * Key for the transaction detail. - */ - Key: string; - - /** - * Value for the transaction detail. - */ - Value: string; - }[]; - }; - - /** - * This JSON object may hold additional details for the transaction reference data, but may be empty for some errors. - */ - ReferenceData?: { + Key: string; + /** - * A JSON array that may hold JSON Objects with additional transaction details. + * Value for the reference data. */ - ReferenceItem?: { - /** - * Key for the reference data. - */ - Key: string; - - /** - * Value for the reference data. - */ - Value: string; - }[]; - }; + Value: string; + }[]; }; - } - + }; +} + +/** + * This interface defines the data structure for Bill Manager opt-in request. + */ +export interface BillManagerOptin { /** - * This interface defines the data structure for Bill Manager opt-in request. + * This is the official contact email address for the organization. */ - export interface BillManagerOptin { - /** - * This is the official contact email address for the organization. - */ - email: string; - - /** - * This is the official contact phone number for the organization. - */ - officialContact: string; - - /** - * This field enables or disables SMS payment reminders for invoices sent (0 - disable, 1 - enable). - */ - sendReminders: 0 | 1; - - /** - * (Optional) Image to be embedded in invoices and receipts sent to customers. Must be in JPEG or JPG format. - */ - logo?: string; // '?' indicates optional property - - /** - * This URL will be invoked by the M-Pesa API to push payments made to your Paybill. - */ - callbackurl: string; - } - + email: string; + /** - * This interface defines the response body of a Bill Manager opt-in request. + * This is the official contact phone number for the organization. */ - export interface BillManagerOptInResponse { - /** - * This is the application key you receive upon onboarding your Paybill to the Daraja Platform. - */ - app_key: string; - - /** - * This is a message from the API that gives the status of the request processing. - */ - resmsg: string; - - /** - * This is a numeric status code that indicates the status of the opt-in request. - * 200 indicates success, other codes indicate errors. - */ - rescode: string; - } - + officialContact: string; + /** - * This interface defines the data structure for a single invoice request to Bill Manager. + * This field enables or disables SMS payment reminders for invoices sent (0 - disable, 1 - enable). */ - export interface BillManagerSingleInvoicingBody { - /** - * A unique invoice name on your system used for referencing between Bill Manager and your system. Must already exist, otherwise the invoice will not be sent. - */ - externalReference: string; - - /** - * The full name of the recipient to receive the invoice details. Will appear in the SMS sent. - */ - billedFullName: string; - - /** - * The phone number to receive invoice details via SMS. Must be a Safaricom number. - */ - billedPhoneNumber: string; - - /** - * The month and year of the billing period (e.g., "August 2021"). - */ - billedPeriod: string; - - /** - * A descriptive invoice name for what the customer is being billed. Will appear in the invoice SMS sent to the customer. - */ - invoiceName: string; - - /** - * The date you expect the customer to have paid the invoice amount. Three reminders will be sent before the due date. - */ - dueDate: string; - - - /** - * The account number being invoiced that uniquely identifies a customer (e.g., customer name, business name, property unit, student name). - */ - accountReference: string; - - /** - * The total invoice amount to be paid in Kenyan Shillings. No special characters (e.g., commas) allowed. - */ + sendReminders: 0 | 1; + + /** + * (Optional) Image to be embedded in invoices and receipts sent to customers. Must be in JPEG or JPG format. + */ + logo?: string; // '?' indicates optional property + + /** + * This URL will be invoked by the M-Pesa API to push payments made to your Paybill. + */ + callbackurl: string; +} + +/** + * This interface defines the response body of a Bill Manager opt-in request. + */ +export interface BillManagerOptInResponse { + /** + * This is the application key you receive upon onboarding your Paybill to the Daraja Platform. + */ + app_key: string; + + /** + * This is a message from the API that gives the status of the request processing. + */ + resmsg: string; + + /** + * This is a numeric status code that indicates the status of the opt-in request. + * 200 indicates success, other codes indicate errors. + */ + rescode: string; +} + +/** + * This interface defines the data structure for a single invoice request to Bill Manager. + */ +export interface BillManagerSingleInvoicingBody { + /** + * A unique invoice name on your system used for referencing between Bill Manager and your system. Must already exist, otherwise the invoice will not be sent. + */ + externalReference: string; + + /** + * The full name of the recipient to receive the invoice details. Will appear in the SMS sent. + */ + billedFullName: string; + + /** + * The phone number to receive invoice details via SMS. Must be a Safaricom number. + */ + billedPhoneNumber: string; + + /** + * The month and year of the billing period (e.g., "August 2021"). + */ + billedPeriod: string; + + /** + * A descriptive invoice name for what the customer is being billed. Will appear in the invoice SMS sent to the customer. + */ + invoiceName: string; + + /** + * The date you expect the customer to have paid the invoice amount. Three reminders will be sent before the due date. + */ + dueDate: string; + + /** + * The account number being invoiced that uniquely identifies a customer (e.g., customer name, business name, property unit, student name). + */ + accountReference: string; + + /** + * The total invoice amount to be paid in Kenyan Shillings. No special characters (e.g., commas) allowed. + */ + amount: number; + + /** + * (Optional) An array of additional billable items to be included in the invoice. These will appear on the e-invoice. + */ + invoiceItems?: { + itemName: string; amount: number; - - /** - * (Optional) An array of additional billable items to be included in the invoice. These will appear on the e-invoice. - */ - invoiceItems?: { - itemName: string; - amount: number; - }[]; - } - + }[]; +} + +/** + * This interface defines the response body of a single invoice request to Bill Manager. + */ +export interface BillManagerSingleInvoicingResponse { /** - * This interface defines the response body of a single invoice request to Bill Manager. + * A descriptive message indicating the outcome of the invoice request. */ - export interface BillManagerSingleInvoicingResponse { - /** - * A descriptive message indicating the outcome of the invoice request. - */ - Status_Message: string; - - /** - * This is a message from the API that gives the status of the request processing. - */ - resmsg: string; - - /** - * This is a numeric status code that indicates the status of the invoice request. - * 200 indicates success, other codes indicate errors. - */ - rescode: string; - } \ No newline at end of file + Status_Message: string; + + /** + * This is a message from the API that gives the status of the request processing. + */ + resmsg: string; + + /** + * This is a numeric status code that indicates the status of the invoice request. + * 200 indicates success, other codes indicate errors. + */ + rescode: string; +} diff --git a/src/utils/index.ts b/src/utils/index.ts index 178cd64..04bca77 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1 +1 @@ -export * from "./utils"; +export * from './utils'; diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 25d4b63..f0a473c 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -1,4 +1,4 @@ -import { BUSINESS_SHORT_CODE, PASSKEY } from "../env"; +import {BUSINESS_SHORT_CODE, PASSKEY} from '../env'; /** * Generates a timestamp in the format of YEAR+MONTH+DATE+HOUR+MINUTE+SECOND (YYYYMMDDHHMMSS). @@ -7,12 +7,12 @@ import { BUSINESS_SHORT_CODE, PASSKEY } from "../env"; */ export function generateTimestamp(): string { const now = new Date(); - const year = now.getFullYear().toString().padStart(4, "0"); - const month = (now.getMonth() + 1).toString().padStart(2, "0"); - const date = now.getDate().toString().padStart(2, "0"); - const hours = now.getHours().toString().padStart(2, "0"); - const minutes = now.getMinutes().toString().padStart(2, "0"); - const seconds = now.getSeconds().toString().padStart(2, "0"); + const year = now.getFullYear().toString().padStart(4, '0'); + const month = (now.getMonth() + 1).toString().padStart(2, '0'); + const date = now.getDate().toString().padStart(2, '0'); + const hours = now.getHours().toString().padStart(2, '0'); + const minutes = now.getMinutes().toString().padStart(2, '0'); + const seconds = now.getSeconds().toString().padStart(2, '0'); return `${year}${month}${date}${hours}${minutes}${seconds}`; } @@ -26,9 +26,9 @@ export const generatePassword = (): string => { const concatenatedString = `${businessShortCode}${passkey}${timestamp}`; // Check if the environment is Node.js - if (typeof btoa === "undefined") { + if (typeof btoa === 'undefined') { // Node.js environment - const encodedString = Buffer.from(concatenatedString).toString("base64"); + const encodedString = Buffer.from(concatenatedString).toString('base64'); return encodedString; } else { // Browser environment diff --git a/src/wrapper-fns/access-token.ts b/src/wrapper-fns/access-token.ts index 99a20eb..56dc097 100644 --- a/src/wrapper-fns/access-token.ts +++ b/src/wrapper-fns/access-token.ts @@ -1,13 +1,13 @@ -import axios from "axios"; -import { BASE_URL, CONSUMER_KEY, CONSUMER_SECRET } from "../env"; -import cache from "memory-cache"; -import { AccessTokenResponse } from "../types/types"; +import axios from 'axios'; +import {BASE_URL, CONSUMER_KEY, CONSUMER_SECRET} from '../env'; +import cache from 'memory-cache'; +import {AccessTokenResponse} from '../types/types'; export const generateAccessToken = async (): Promise => { const credentials = `${CONSUMER_KEY}:${CONSUMER_SECRET}`; - const encodedAuthString = Buffer.from(credentials).toString("base64"); + const encodedAuthString = Buffer.from(credentials).toString('base64'); - const token: AccessTokenResponse = cache.get("act"); + const token: AccessTokenResponse = cache.get('act'); if (token) { return token; @@ -18,12 +18,12 @@ export const generateAccessToken = async (): Promise => { `${BASE_URL}/oauth/v1/generate?grant_type=client_credentials`, { headers: { - Authorization: `Basic ${encodedAuthString}`, - }, + Authorization: `Basic ${encodedAuthString}` + } } ); - cache.put("act", res.data, 3599 * 1000); + cache.put('act', res.data, 3599 * 1000); return res.data; } catch (err: any) { diff --git a/src/wrapper-fns/index.ts b/src/wrapper-fns/index.ts index 3e607d4..9be4ba7 100644 --- a/src/wrapper-fns/index.ts +++ b/src/wrapper-fns/index.ts @@ -1,3 +1,3 @@ -export * from "./wrapper-fns"; -export { stkPushRequest, STKPushRequestParam } from "./stk-push"; -export { generateAccessToken } from "./access-token"; +export * from './wrapper-fns'; +export {stkPushRequest, STKPushRequestParam} from './stk-push'; +export {generateAccessToken} from './access-token'; diff --git a/src/wrapper-fns/stk-push.ts b/src/wrapper-fns/stk-push.ts index 2213732..2b6828d 100644 --- a/src/wrapper-fns/stk-push.ts +++ b/src/wrapper-fns/stk-push.ts @@ -1,4 +1,4 @@ -import axios from "axios"; +import axios from 'axios'; import { AccountReference, Amount, @@ -7,11 +7,11 @@ import { STKPushBody, STKPushResponse, TransactionDesc, - TransactionType, -} from "../types/types"; -import { generateTimestamp, generatePassword } from "../utils/utils"; -import { BASE_URL, BUSINESS_SHORT_CODE, ENVIRONMENT, PASSKEY } from "../env"; -import { generateAccessToken } from "./access-token"; + TransactionType +} from '../types/types'; +import {generateTimestamp, generatePassword} from '../utils/utils'; +import {BASE_URL, BUSINESS_SHORT_CODE, ENVIRONMENT, PASSKEY} from '../env'; +import {generateAccessToken} from './access-token'; export type STKPushRequestParam = { phoneNumber: PhoneNumber; @@ -26,7 +26,7 @@ export const stkPushRequest = async ({ amount, callbackURL, transactionDesc, - accountReference, + accountReference }: STKPushRequestParam) => { try { const timestamp = generateTimestamp(); @@ -40,12 +40,12 @@ export const stkPushRequest = async ({ Password: password, PartyA: phoneNumber, PhoneNumber: phoneNumber, - Amount: ENVIRONMENT === "production" ? amount : "1", + Amount: ENVIRONMENT === 'production' ? amount : '1', CallBackURL: callbackURL, TransactionDesc: transactionDesc, TransactionType: process.env .MPESA_TRANSACTION_TYPE as unknown as TransactionType, - AccountReference: accountReference, + AccountReference: accountReference }; const accessTokenResponse = await generateAccessToken(); @@ -55,8 +55,8 @@ export const stkPushRequest = async ({ stkPushBody, { headers: { - Authorization: `Bearer ${accessTokenResponse.access_token}`, - }, + Authorization: `Bearer ${accessTokenResponse.access_token}` + } } ); diff --git a/src/wrapper-fns/wrapper-fns.ts b/src/wrapper-fns/wrapper-fns.ts index 8bcbdae..eda24d2 100644 --- a/src/wrapper-fns/wrapper-fns.ts +++ b/src/wrapper-fns/wrapper-fns.ts @@ -1,4 +1,4 @@ -import axios, { AxiosError, AxiosResponse } from "axios"; +import axios, {AxiosError, AxiosResponse} from 'axios'; import { ScannableQrParamsInternal, ScannableQrCodeResponse, @@ -24,24 +24,24 @@ import { BillManagerOptin, BillManagerOptInResponse, BillManagerSingleInvoicingBody, - BillManagerSingleInvoicingResponse, -} from "../types/types"; -import { generateTimestamp, generatePassword } from "../utils/utils"; -import { generateAccessToken } from "./access-token"; -import { BASE_URL, BUSINESS_SHORT_CODE, PASSKEY } from "../env"; + BillManagerSingleInvoicingResponse +} from '../types/types'; +import {generateTimestamp, generatePassword} from '../utils/utils'; +import {generateAccessToken} from './access-token'; +import {BASE_URL, BUSINESS_SHORT_CODE, PASSKEY} from '../env'; export const fetchQrCode = async ( scannableQrParams: ScannableQrParamsInternal ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( `${BASE_URL}/mpesa/qrcode/v1/generate`, scannableQrParams, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); return res.data; @@ -54,24 +54,24 @@ export const fetchQrCode = async ( export type StateOfALNMOnlinePaymentParam = Omit< StateOfALNMOnlinePaymentBody, - "password" + 'password' >; export const getStateOfALNMOnlinePayment = async ( stateOfALNMOnlinePaymentBody: StateOfALNMOnlinePaymentParam ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); const password = generatePassword(); try { const res: AxiosResponse = await axios.post( `${BASE_URL}/mpesa/stkpushquery/v1/query`, - { ...stateOfALNMOnlinePaymentBody, password }, + {...stateOfALNMOnlinePaymentBody, password}, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); @@ -86,19 +86,19 @@ export const getStateOfALNMOnlinePayment = async ( export const registerC2BUrl = async ( registerUrlBody: RegisterUrlBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( `${BASE_URL}/mpesa/c2b/v1/registerurl`, { ...registerUrlBody, - ShortCode: BUSINESS_SHORT_CODE, + ShortCode: BUSINESS_SHORT_CODE }, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); @@ -113,7 +113,7 @@ export const registerC2BUrl = async ( export const b2cPaymentRequest = async ( b2CBody: B2CRequestBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( @@ -121,8 +121,8 @@ export const b2cPaymentRequest = async ( b2CBody, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); return res.data; @@ -136,7 +136,7 @@ export const b2cPaymentRequest = async ( export const b2bPaymentRequest = async ( body: BusinessRequestBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( @@ -144,8 +144,8 @@ export const b2bPaymentRequest = async ( body, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); return res.data; @@ -159,7 +159,7 @@ export const b2bPaymentRequest = async ( export const getTransactionStatus = async ( transactionStatusBody: TransactionStatusBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( @@ -167,8 +167,8 @@ export const getTransactionStatus = async ( transactionStatusBody, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); return res.data; @@ -182,7 +182,7 @@ export const getTransactionStatus = async ( export const getAccountBalance = async ( accountBalance: AccountBalanceBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( @@ -190,8 +190,8 @@ export const getAccountBalance = async ( accountBalance, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); return res.data; @@ -205,7 +205,7 @@ export const getAccountBalance = async ( export const reverseC2BTransaction = async ( body: ReverseC2BTransactionBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( @@ -213,8 +213,8 @@ export const reverseC2BTransaction = async ( body, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); return res.data; @@ -228,7 +228,7 @@ export const reverseC2BTransaction = async ( export const remitTax = async ( body: TaxRemittanceBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res: AxiosResponse = await axios.post( @@ -236,8 +236,8 @@ export const remitTax = async ( body, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); return res.data; @@ -249,13 +249,13 @@ export const remitTax = async ( }; export const b2bExpressCheckout = async (data: B2BExpressCheckoutBody) => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res = await axios.post(`${BASE_URL}/v1/ussdpush/get-msisdn`, data, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } }); return res.data; @@ -271,15 +271,15 @@ export const b2bExpressCheckout = async (data: B2BExpressCheckoutBody) => { export const b2bBuyGoods = async ( data: B2BBuyGoodsBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res = await axios.post( `${BASE_URL}/mpesa/b2b/v1/paymentrequest`, - { ...data, PartyA: BUSINESS_SHORT_CODE }, + {...data, PartyA: BUSINESS_SHORT_CODE}, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); @@ -302,15 +302,15 @@ export const b2bPayBill = async ( export const billManagerOptIn = async ( data: BillManagerOptin ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res = await axios.post( `${BASE_URL}/v1/billmanager-invoice/optin`, - { ...data, PartyA: BUSINESS_SHORT_CODE }, + {...data, PartyA: BUSINESS_SHORT_CODE}, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); @@ -327,15 +327,15 @@ export const billManagerOptIn = async ( export const billManagerSingleInvoicing = async ( data: BillManagerSingleInvoicingBody ): Promise => { - const { access_token } = await generateAccessToken(); + const {access_token} = await generateAccessToken(); try { const res = await axios.post( `${BASE_URL}/v1/billmanager-invoice/single-invoicing`, data, { headers: { - Authorization: `Bearer ${access_token}`, - }, + Authorization: `Bearer ${access_token}` + } } ); diff --git a/tailwind.config.js b/tailwind.config.js index a47fe1a..9163d10 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,22 +1,22 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - darkMode: ["class"], + darkMode: ['class'], content: [ - "./pages/**/*.{ts,tsx}", - "./components/**/*.{ts,tsx}", - "./app/**/*.{ts,tsx}", - "./src/**/*.{ts,tsx}", + './pages/**/*.{ts,tsx}', + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './src/**/*.{ts,tsx}' ], - prefix: "", + prefix: '', theme: { container: { center: true, - padding: "2rem", + padding: '2rem', screens: { - "2xl": "1400px", - }, + '2xl': '1400px' + } }, - extend: {}, + extend: {} }, - plugins: [require("tailwindcss-animate")], + plugins: [require('tailwindcss-animate')] }; diff --git a/tsconfig.json b/tsconfig.json index 1e406b6..5caca95 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Language and Environment */ "target": "ES2017" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - /* Specify a set of bundled library declaration files that describe the target runtime environment. */ "jsx": "react" /* Specify what JSX code is generated. */, /* Modules */ "module": "commonjs" /* Specify what module code is generated. */, @@ -11,19 +11,13 @@ ] /* Specify type package names to be included without being referenced in a source file. */, /* Emit */ "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, - /* Disable emitting comments. */ "noEmit": true /* Disable emitting files from a compilation. */, - /* Allow 'import x from y' when a module doesn't have a default export. */ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - /* Type Checking */ "strict": true /* Enable all strict type-checking options. */, - /* Enable error reporting for fallthrough cases in switch statements. */ "noUncheckedIndexedAccess": true /* Add 'undefined' to a type when accessed using an index. */, - /* Skip type checking .d.ts files that are included with TypeScript. */ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, - "exclude": ["docs-app"] + "exclude": ["docs-app", "__tests__"] } diff --git a/tsup.config.ts b/tsup.config.ts index ae1df68..019af3c 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,21 +1,21 @@ -import { defineConfig } from "tsup"; +import {defineConfig} from 'tsup'; export default defineConfig({ entry: [ // included - "src", - "src/next", - "src/react", + 'src', + 'src/next', + 'src/react', // not-included - "!src/wrapper-fns/**", - "!src/types/**", - "!/src/utils/**", + '!src/wrapper-fns/**', + '!src/types/**', + '!/src/utils/**' ], dts: true, - format: ["esm", "cjs"], - outDir: "dist", + format: ['esm', 'cjs'], + outDir: 'dist', esbuildOptions(options) { - options.external = ["react", "axios"]; + options.external = ['react', 'axios']; }, - external: ["react", "axios"], + external: ['react', 'axios'] });