├── .changeset ├── README.md ├── changelog-format.js └── config.json ├── .gitattributes ├── .github ├── release.yaml └── workflows │ ├── format-lint.yml │ ├── pr-title-check.yml │ ├── release-and-publish.yml │ └── setup │ └── action.yml ├── .gitignore ├── .prettierignore ├── .vscode └── launch.json ├── .vscodeignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── images ├── logo.png └── usage.gif ├── package.json ├── playground └── node.js ├── pnpm-lock.yaml ├── scripts ├── generate-readme.ts └── lint.ts ├── snippets └── snippets.json └── templates └── readme.md /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/changelog-format.js: -------------------------------------------------------------------------------- 1 | const getReleaseLine = async (changeset, _typeVersionType) => { 2 | const [firstLine, ...futureLines] = changeset.summary 3 | .split("\n") 4 | .map((l) => l.trimRight()); 5 | 6 | let returnVal = `- ${firstLine}`; 7 | 8 | if (futureLines.length > 0) { 9 | returnVal += `\n${futureLines.map((l) => ` ${l}`).join("\n")}`; 10 | } 11 | 12 | return returnVal; 13 | }; 14 | 15 | const getDependencyReleaseLine = async (changesets, dependenciesUpdated) => { 16 | if (dependenciesUpdated.length === 0) return ""; 17 | 18 | const changesetLinks = changesets.map( 19 | (changeset) => 20 | `- Updated dependencies${ 21 | changeset.commit ? ` [${changeset.commit}]` : "" 22 | }`, 23 | ); 24 | 25 | const updatedDependenciesList = dependenciesUpdated.map( 26 | (dependency) => ` - ${dependency.name}@${dependency.newVersion}`, 27 | ); 28 | 29 | return [...changesetLinks, ...updatedDependenciesList].join("\n"); 30 | }; 31 | 32 | module.exports = { 33 | getReleaseLine, 34 | getDependencyReleaseLine, 35 | }; 36 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", 3 | "changelog": "./changelog-format.js", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "restricted", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set default behavior to automatically normalize line endings. 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/release.yaml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | authors: 4 | - github-actions 5 | -------------------------------------------------------------------------------- /.github/workflows/format-lint.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - "!main" 7 | 8 | pull_request: 9 | types: 10 | - opened 11 | - synchronize 12 | 13 | concurrency: 14 | group: ${{ github.workflow }}-${{ github.ref }} 15 | cancel-in-progress: true 16 | 17 | jobs: 18 | format-lint: 19 | name: Format & Lint 20 | runs-on: ubuntu-latest 21 | steps: 22 | - name: Checkout 23 | uses: actions/checkout@v4 24 | 25 | - name: Environment setup 26 | uses: ./.github/workflows/setup 27 | 28 | - name: Check formatting 29 | run: pnpm format 30 | 31 | - name: Lint 32 | run: pnpm lint 33 | -------------------------------------------------------------------------------- /.github/workflows/pr-title-check.yml: -------------------------------------------------------------------------------- 1 | name: Check PR Title 2 | 3 | on: 4 | pull_request: 5 | branches: ["*"] 6 | types: 7 | - edited 8 | - opened 9 | - synchronize 10 | 11 | jobs: 12 | check-pr-title: 13 | name: Check PR Title 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: amannn/action-semantic-pull-request@v5 17 | env: 18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 19 | -------------------------------------------------------------------------------- /.github/workflows/release-and-publish.yml: -------------------------------------------------------------------------------- 1 | name: Release & Publish 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | permissions: write-all 9 | concurrency: ${{ github.workflow }}-${{ github.ref }} 10 | 11 | jobs: 12 | release: 13 | name: Release and Publish 14 | if: github.repository == 'interledger/open-payments-snippets-vscode' 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v4 19 | 20 | - name: Environment setup 21 | uses: ./.github/workflows/setup 22 | 23 | - name: Create release PR 24 | id: changesets 25 | uses: changesets/action@v1 26 | with: 27 | commit: "chore(release): version packages" 28 | title: "chore(release): version packages" 29 | version: pnpm ci:version 30 | env: 31 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 32 | 33 | - name: Retrieve the extension name and version 34 | if: steps.changesets.outputs.hasChangesets == 'false' 35 | run: | 36 | VERSION=$(jq -r .version package.json) 37 | NAME=$(jq -r .name package.json) 38 | echo "VERSION=v$VERSION" >> $GITHUB_ENV 39 | echo "RELEASE_NAME=$NAME@$VERSION" >> $GITHUB_ENV 40 | 41 | - name: Check tag 42 | if: steps.changesets.outputs.hasChangesets == 'false' 43 | uses: mukunku/tag-exists-action@v1.4.0 44 | id: tag 45 | with: 46 | tag: "${{ env.VERSION }}" 47 | 48 | - name: Release 49 | if: | 50 | steps.changesets.outputs.hasChangesets == 'false' && steps.tag.outputs.exists == 'false' 51 | id: create_release 52 | uses: ncipollo/release-action@v1 53 | env: 54 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 55 | with: 56 | tag: ${{ env.VERSION }} 57 | name: ${{ env.RELEASE_NAME }} 58 | generateReleaseNotes: true 59 | draft: false 60 | prerelease: false 61 | 62 | - name: Tag & Publish 63 | if: | 64 | steps.changesets.outputs.hasChangesets == 'false' && steps.tag.outputs.exists == 'false' 65 | run: | 66 | git tag ${{ env.VERSION }} 67 | git push origin ${{ env.VERSION }} 68 | pnpm dlx vsce publish -p ${{ secrets.PUBLISHER_TOKEN }} 69 | -------------------------------------------------------------------------------- /.github/workflows/setup/action.yml: -------------------------------------------------------------------------------- 1 | name: "Environment Setup" 2 | description: "Installs NodeJS, PNPM, dependencies and PNPM restores cache" 3 | 4 | runs: 5 | using: "composite" 6 | steps: 7 | - name: Install PNPM 8 | uses: pnpm/action-setup@v2 9 | with: 10 | version: 8 11 | run_install: false 12 | 13 | - name: Setup NodeJS 14 | uses: actions/setup-node@v3 15 | with: 16 | node-version: "lts/hydrogen" 17 | cache: "pnpm" 18 | 19 | - name: Install dependencies 20 | shell: bash 21 | run: pnpm install --frozen-lockfile 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.vsix 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | pnpm-lock.yaml -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Extension", 6 | "type": "extensionHost", 7 | "request": "launch", 8 | "args": ["--extensionDevelopmentPath=${workspaceFolder}"] 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | .gitignore 4 | vsc-extension-quickstart.md 5 | .changeset 6 | .github 7 | .gitattributes 8 | .prettierignore 9 | pnpm-lock.yaml 10 | templates/** 11 | scripts/** 12 | playground/** -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # open-payments-snippets-vscode 2 | 3 | ## 1.0.0 4 | 5 | ### Major Changes 6 | 7 | - Update snippets (OP SDK v6) 8 | 9 | ## 0.3.0 10 | 11 | ### Minor Changes 12 | 13 | - Update VSCode engine version 14 | 15 | ## 0.2.0 16 | 17 | ### Minor Changes 18 | 19 | - Add incoming payment snippets 20 | - Add outgoing payment snippet 21 | - Add token snippets 22 | - Add quote snippets 23 | 24 | ## 0.1.2 25 | 26 | ### Patch Changes 27 | 28 | - Fix README 29 | 30 | ## 0.1.1 31 | 32 | ### Patch Changes 33 | 34 | - Add README 35 | 36 | ## 0.1.0 37 | 38 | ### Minor Changes 39 | 40 | - Change keywords format 41 | 42 | ### Patch Changes 43 | 44 | - Fix snippets body format 45 | 46 | ## 0.0.2 47 | 48 | ### Patch Changes 49 | 50 | - Fix quote grant keyword 51 | 52 | ## 0.0.1 53 | 54 | ### Patch Changes 55 | 56 | - Introduce snippets for: 57 | 58 | - Open Payments client 59 | - Payment pointers 60 | - Grants 61 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2023 Interledger Foundation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 |

3 | Logo 4 |

5 |

Open Payments SDK Snippets

6 |

7 | Updated for Open Payments Node SDK version 6 8 |

9 |
10 |
11 |

12 | Usage 13 |

14 |

15 | 16 | ## Installation 17 | 18 | 1. Launch _Quick Open_: 19 | 20 | - Linux & Windows: `Ctrl+P` 21 | - macOS: `⌘+P` 22 | 23 | 2. Paste the following command and press `Enter`: 24 | 25 | ```shell 26 | ext install open-payments-snippets-vscode 27 | ``` 28 | 29 | 3. Choose the extension (make sure the author is `Interledger Foundation`). 30 | 31 | 4. Reload Visual Studio Code 32 | 33 | ## Usage 34 | 35 | Every Open Payments SDK snippet starts with the "op-" prefix: 36 | 37 | - `op-pp` 38 | - `op-grant-continue` 39 | 40 | You don't need to type any dashes or the full keyword. You can use some alternatives. For example: 41 | 42 | - `ogc` -> `op-grant-continue` snippet 43 | - `ograntc` -> `op-grant-continue` snippet 44 | 45 | ## Snippets 46 | 47 | | Keyword | Description | 48 | | ------------------ | ------------------------------------------------------ | 49 | | op-uc | Creates an unauthenticated OP client | 50 | | op-ac | Creates an authenticated OP client | 51 | | op-wa | Get wallet address information | 52 | | op-wa-keys | Get wallet address keys | 53 | | op-grant-revoke | Revoke a grant | 54 | | op-grant | Request a grant | 55 | | op-grant-continue | Continue a grant | 56 | | op-grant-ip | Request an incoming payment grant | 57 | | op-grant-op | Request an outgoing payment grant | 58 | | op-grant-quote | Request a quote grant | 59 | | op-token-revoke | Revoke a token | 60 | | op-token-rotate | Rotate a token | 61 | | op-quote-create | Create a quote without receive amount and debit amount | 62 | | op-quote-create-ra | Create a quote with receive amount | 63 | | op-quote-create-da | Create a quote with debit amount | 64 | | op-quote-get | Get a quote | 65 | | op-ip-create | Create an incoming payment without incoming amount | 66 | | op-ip-create-ia | Create an incoming payment with incoming amount | 67 | | op-ip-complete | Complete an incoming payment | 68 | | op-ip-get | Get an incoming payment | 69 | | op-ip-list | List incoming payments | 70 | | op-op-create | Create an outgoing payment | 71 | | op-op-get | Get an outgoing payment | 72 | | op-op-list | List outgoing payments | 73 | 74 | ## Feedback and issues 75 | 76 | If you encounter any issues or have feedback, please open an issue on 77 | the [GitHub repository](https://github.com/interledger/open-payments-snippets-vscode/issues). We appreciate your feedback 78 | and contributions! 79 | 80 | ## License 81 | 82 | This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details. 83 | -------------------------------------------------------------------------------- /images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/interledger/open-payments-snippets-vscode/d2d603d82f30b5979d69849d95dab2b424821561/images/logo.png -------------------------------------------------------------------------------- /images/usage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/interledger/open-payments-snippets-vscode/d2d603d82f30b5979d69849d95dab2b424821561/images/usage.gif -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "open-payments-snippets-vscode", 3 | "displayName": "Open Payments SDK Snippets", 4 | "description": "Open Payments SDK Code Snippets", 5 | "version": "1.0.0", 6 | "publisher": "InterledgerFoundation", 7 | "icon": "images/logo.png", 8 | "license": "MIT", 9 | "keywords": [ 10 | "snippets", 11 | "open payments", 12 | "interledger", 13 | "ilp", 14 | "customizable", 15 | "javascript", 16 | "javascriptreact", 17 | "typescript", 18 | "typescriptreact" 19 | ], 20 | "homepage": "https://github.com/interledger/open-payments-snippets-vscode", 21 | "repository": { 22 | "type": "git", 23 | "url": "https://github.com/interledger/open-payments-snippets-vscode" 24 | }, 25 | "bugs": { 26 | "url": "https://github.com/interledger/open-payments-snippets-vscode/issues" 27 | }, 28 | "engines": { 29 | "vscode": "^1.60.0" 30 | }, 31 | "categories": [ 32 | "Snippets" 33 | ], 34 | "contributes": { 35 | "snippets": [ 36 | { 37 | "language": "javascript", 38 | "path": "./snippets/snippets.json" 39 | }, 40 | { 41 | "language": "javascriptreact", 42 | "path": "./snippets/snippets.json" 43 | }, 44 | { 45 | "language": "typescript", 46 | "path": "./snippets/snippets.json" 47 | }, 48 | { 49 | "language": "typescriptreact", 50 | "path": "./snippets/snippets.json" 51 | } 52 | ] 53 | }, 54 | "devDependencies": { 55 | "@changesets/cli": "^2.26.2", 56 | "@types/node": "^20.8.2", 57 | "prettier": "^3.0.3", 58 | "tsx": "^3.13.0", 59 | "typescript": "^5.2.2" 60 | }, 61 | "scripts": { 62 | "format": "prettier . --check --cache --cache-location='node_modules/.cache/prettiercache'", 63 | "format:fix": "prettier . --write --cache --cache-location='node_modules/.cache/prettiercache' --log-level=warn", 64 | "lint": "tsx scripts/lint.ts", 65 | "generate:readme": "tsx scripts/generate-readme.ts", 66 | "ci:version": "pnpm generate:readme && pnpm changeset version && pnpm i --lockfile-only" 67 | }, 68 | "prettier": { 69 | "bracketSameLine": false, 70 | "bracketSpacing": true, 71 | "printWidth": 80, 72 | "semi": true, 73 | "tabWidth": 4, 74 | "trailingComma": "all", 75 | "useTabs": false 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /playground/node.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/interledger/open-payments-snippets-vscode/d2d603d82f30b5979d69849d95dab2b424821561/playground/node.js -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | devDependencies: 8 | '@changesets/cli': 9 | specifier: ^2.26.2 10 | version: 2.26.2 11 | '@types/node': 12 | specifier: ^20.8.2 13 | version: 20.8.2 14 | prettier: 15 | specifier: ^3.0.3 16 | version: 3.0.3 17 | tsx: 18 | specifier: ^3.13.0 19 | version: 3.13.0 20 | typescript: 21 | specifier: ^5.2.2 22 | version: 5.2.2 23 | 24 | packages: 25 | 26 | /@babel/code-frame@7.22.13: 27 | resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} 28 | engines: {node: '>=6.9.0'} 29 | dependencies: 30 | '@babel/highlight': 7.22.20 31 | chalk: 2.4.2 32 | dev: true 33 | 34 | /@babel/helper-validator-identifier@7.22.20: 35 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 36 | engines: {node: '>=6.9.0'} 37 | dev: true 38 | 39 | /@babel/highlight@7.22.20: 40 | resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} 41 | engines: {node: '>=6.9.0'} 42 | dependencies: 43 | '@babel/helper-validator-identifier': 7.22.20 44 | chalk: 2.4.2 45 | js-tokens: 4.0.0 46 | dev: true 47 | 48 | /@babel/runtime@7.23.1: 49 | resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==} 50 | engines: {node: '>=6.9.0'} 51 | dependencies: 52 | regenerator-runtime: 0.14.0 53 | dev: true 54 | 55 | /@changesets/apply-release-plan@6.1.4: 56 | resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} 57 | dependencies: 58 | '@babel/runtime': 7.23.1 59 | '@changesets/config': 2.3.1 60 | '@changesets/get-version-range-type': 0.3.2 61 | '@changesets/git': 2.0.0 62 | '@changesets/types': 5.2.1 63 | '@manypkg/get-packages': 1.1.3 64 | detect-indent: 6.1.0 65 | fs-extra: 7.0.1 66 | lodash.startcase: 4.4.0 67 | outdent: 0.5.0 68 | prettier: 2.8.8 69 | resolve-from: 5.0.0 70 | semver: 7.5.4 71 | dev: true 72 | 73 | /@changesets/assemble-release-plan@5.2.4: 74 | resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} 75 | dependencies: 76 | '@babel/runtime': 7.23.1 77 | '@changesets/errors': 0.1.4 78 | '@changesets/get-dependents-graph': 1.3.6 79 | '@changesets/types': 5.2.1 80 | '@manypkg/get-packages': 1.1.3 81 | semver: 7.5.4 82 | dev: true 83 | 84 | /@changesets/changelog-git@0.1.14: 85 | resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} 86 | dependencies: 87 | '@changesets/types': 5.2.1 88 | dev: true 89 | 90 | /@changesets/cli@2.26.2: 91 | resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} 92 | hasBin: true 93 | dependencies: 94 | '@babel/runtime': 7.23.1 95 | '@changesets/apply-release-plan': 6.1.4 96 | '@changesets/assemble-release-plan': 5.2.4 97 | '@changesets/changelog-git': 0.1.14 98 | '@changesets/config': 2.3.1 99 | '@changesets/errors': 0.1.4 100 | '@changesets/get-dependents-graph': 1.3.6 101 | '@changesets/get-release-plan': 3.0.17 102 | '@changesets/git': 2.0.0 103 | '@changesets/logger': 0.0.5 104 | '@changesets/pre': 1.0.14 105 | '@changesets/read': 0.5.9 106 | '@changesets/types': 5.2.1 107 | '@changesets/write': 0.2.3 108 | '@manypkg/get-packages': 1.1.3 109 | '@types/is-ci': 3.0.1 110 | '@types/semver': 7.5.3 111 | ansi-colors: 4.1.3 112 | chalk: 2.4.2 113 | enquirer: 2.4.1 114 | external-editor: 3.1.0 115 | fs-extra: 7.0.1 116 | human-id: 1.0.2 117 | is-ci: 3.0.1 118 | meow: 6.1.1 119 | outdent: 0.5.0 120 | p-limit: 2.3.0 121 | preferred-pm: 3.1.2 122 | resolve-from: 5.0.0 123 | semver: 7.5.4 124 | spawndamnit: 2.0.0 125 | term-size: 2.2.1 126 | tty-table: 4.2.2 127 | dev: true 128 | 129 | /@changesets/config@2.3.1: 130 | resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} 131 | dependencies: 132 | '@changesets/errors': 0.1.4 133 | '@changesets/get-dependents-graph': 1.3.6 134 | '@changesets/logger': 0.0.5 135 | '@changesets/types': 5.2.1 136 | '@manypkg/get-packages': 1.1.3 137 | fs-extra: 7.0.1 138 | micromatch: 4.0.5 139 | dev: true 140 | 141 | /@changesets/errors@0.1.4: 142 | resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} 143 | dependencies: 144 | extendable-error: 0.1.7 145 | dev: true 146 | 147 | /@changesets/get-dependents-graph@1.3.6: 148 | resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} 149 | dependencies: 150 | '@changesets/types': 5.2.1 151 | '@manypkg/get-packages': 1.1.3 152 | chalk: 2.4.2 153 | fs-extra: 7.0.1 154 | semver: 7.5.4 155 | dev: true 156 | 157 | /@changesets/get-release-plan@3.0.17: 158 | resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} 159 | dependencies: 160 | '@babel/runtime': 7.23.1 161 | '@changesets/assemble-release-plan': 5.2.4 162 | '@changesets/config': 2.3.1 163 | '@changesets/pre': 1.0.14 164 | '@changesets/read': 0.5.9 165 | '@changesets/types': 5.2.1 166 | '@manypkg/get-packages': 1.1.3 167 | dev: true 168 | 169 | /@changesets/get-version-range-type@0.3.2: 170 | resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} 171 | dev: true 172 | 173 | /@changesets/git@2.0.0: 174 | resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} 175 | dependencies: 176 | '@babel/runtime': 7.23.1 177 | '@changesets/errors': 0.1.4 178 | '@changesets/types': 5.2.1 179 | '@manypkg/get-packages': 1.1.3 180 | is-subdir: 1.2.0 181 | micromatch: 4.0.5 182 | spawndamnit: 2.0.0 183 | dev: true 184 | 185 | /@changesets/logger@0.0.5: 186 | resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} 187 | dependencies: 188 | chalk: 2.4.2 189 | dev: true 190 | 191 | /@changesets/parse@0.3.16: 192 | resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} 193 | dependencies: 194 | '@changesets/types': 5.2.1 195 | js-yaml: 3.14.1 196 | dev: true 197 | 198 | /@changesets/pre@1.0.14: 199 | resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} 200 | dependencies: 201 | '@babel/runtime': 7.23.1 202 | '@changesets/errors': 0.1.4 203 | '@changesets/types': 5.2.1 204 | '@manypkg/get-packages': 1.1.3 205 | fs-extra: 7.0.1 206 | dev: true 207 | 208 | /@changesets/read@0.5.9: 209 | resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} 210 | dependencies: 211 | '@babel/runtime': 7.23.1 212 | '@changesets/git': 2.0.0 213 | '@changesets/logger': 0.0.5 214 | '@changesets/parse': 0.3.16 215 | '@changesets/types': 5.2.1 216 | chalk: 2.4.2 217 | fs-extra: 7.0.1 218 | p-filter: 2.1.0 219 | dev: true 220 | 221 | /@changesets/types@4.1.0: 222 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 223 | dev: true 224 | 225 | /@changesets/types@5.2.1: 226 | resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} 227 | dev: true 228 | 229 | /@changesets/write@0.2.3: 230 | resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} 231 | dependencies: 232 | '@babel/runtime': 7.23.1 233 | '@changesets/types': 5.2.1 234 | fs-extra: 7.0.1 235 | human-id: 1.0.2 236 | prettier: 2.8.8 237 | dev: true 238 | 239 | /@esbuild/android-arm64@0.18.20: 240 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 241 | engines: {node: '>=12'} 242 | cpu: [arm64] 243 | os: [android] 244 | requiresBuild: true 245 | dev: true 246 | optional: true 247 | 248 | /@esbuild/android-arm@0.18.20: 249 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 250 | engines: {node: '>=12'} 251 | cpu: [arm] 252 | os: [android] 253 | requiresBuild: true 254 | dev: true 255 | optional: true 256 | 257 | /@esbuild/android-x64@0.18.20: 258 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 259 | engines: {node: '>=12'} 260 | cpu: [x64] 261 | os: [android] 262 | requiresBuild: true 263 | dev: true 264 | optional: true 265 | 266 | /@esbuild/darwin-arm64@0.18.20: 267 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 268 | engines: {node: '>=12'} 269 | cpu: [arm64] 270 | os: [darwin] 271 | requiresBuild: true 272 | dev: true 273 | optional: true 274 | 275 | /@esbuild/darwin-x64@0.18.20: 276 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 277 | engines: {node: '>=12'} 278 | cpu: [x64] 279 | os: [darwin] 280 | requiresBuild: true 281 | dev: true 282 | optional: true 283 | 284 | /@esbuild/freebsd-arm64@0.18.20: 285 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 286 | engines: {node: '>=12'} 287 | cpu: [arm64] 288 | os: [freebsd] 289 | requiresBuild: true 290 | dev: true 291 | optional: true 292 | 293 | /@esbuild/freebsd-x64@0.18.20: 294 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 295 | engines: {node: '>=12'} 296 | cpu: [x64] 297 | os: [freebsd] 298 | requiresBuild: true 299 | dev: true 300 | optional: true 301 | 302 | /@esbuild/linux-arm64@0.18.20: 303 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 304 | engines: {node: '>=12'} 305 | cpu: [arm64] 306 | os: [linux] 307 | requiresBuild: true 308 | dev: true 309 | optional: true 310 | 311 | /@esbuild/linux-arm@0.18.20: 312 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 313 | engines: {node: '>=12'} 314 | cpu: [arm] 315 | os: [linux] 316 | requiresBuild: true 317 | dev: true 318 | optional: true 319 | 320 | /@esbuild/linux-ia32@0.18.20: 321 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 322 | engines: {node: '>=12'} 323 | cpu: [ia32] 324 | os: [linux] 325 | requiresBuild: true 326 | dev: true 327 | optional: true 328 | 329 | /@esbuild/linux-loong64@0.18.20: 330 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 331 | engines: {node: '>=12'} 332 | cpu: [loong64] 333 | os: [linux] 334 | requiresBuild: true 335 | dev: true 336 | optional: true 337 | 338 | /@esbuild/linux-mips64el@0.18.20: 339 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 340 | engines: {node: '>=12'} 341 | cpu: [mips64el] 342 | os: [linux] 343 | requiresBuild: true 344 | dev: true 345 | optional: true 346 | 347 | /@esbuild/linux-ppc64@0.18.20: 348 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 349 | engines: {node: '>=12'} 350 | cpu: [ppc64] 351 | os: [linux] 352 | requiresBuild: true 353 | dev: true 354 | optional: true 355 | 356 | /@esbuild/linux-riscv64@0.18.20: 357 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 358 | engines: {node: '>=12'} 359 | cpu: [riscv64] 360 | os: [linux] 361 | requiresBuild: true 362 | dev: true 363 | optional: true 364 | 365 | /@esbuild/linux-s390x@0.18.20: 366 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 367 | engines: {node: '>=12'} 368 | cpu: [s390x] 369 | os: [linux] 370 | requiresBuild: true 371 | dev: true 372 | optional: true 373 | 374 | /@esbuild/linux-x64@0.18.20: 375 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 376 | engines: {node: '>=12'} 377 | cpu: [x64] 378 | os: [linux] 379 | requiresBuild: true 380 | dev: true 381 | optional: true 382 | 383 | /@esbuild/netbsd-x64@0.18.20: 384 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 385 | engines: {node: '>=12'} 386 | cpu: [x64] 387 | os: [netbsd] 388 | requiresBuild: true 389 | dev: true 390 | optional: true 391 | 392 | /@esbuild/openbsd-x64@0.18.20: 393 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 394 | engines: {node: '>=12'} 395 | cpu: [x64] 396 | os: [openbsd] 397 | requiresBuild: true 398 | dev: true 399 | optional: true 400 | 401 | /@esbuild/sunos-x64@0.18.20: 402 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 403 | engines: {node: '>=12'} 404 | cpu: [x64] 405 | os: [sunos] 406 | requiresBuild: true 407 | dev: true 408 | optional: true 409 | 410 | /@esbuild/win32-arm64@0.18.20: 411 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 412 | engines: {node: '>=12'} 413 | cpu: [arm64] 414 | os: [win32] 415 | requiresBuild: true 416 | dev: true 417 | optional: true 418 | 419 | /@esbuild/win32-ia32@0.18.20: 420 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 421 | engines: {node: '>=12'} 422 | cpu: [ia32] 423 | os: [win32] 424 | requiresBuild: true 425 | dev: true 426 | optional: true 427 | 428 | /@esbuild/win32-x64@0.18.20: 429 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 430 | engines: {node: '>=12'} 431 | cpu: [x64] 432 | os: [win32] 433 | requiresBuild: true 434 | dev: true 435 | optional: true 436 | 437 | /@manypkg/find-root@1.1.0: 438 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 439 | dependencies: 440 | '@babel/runtime': 7.23.1 441 | '@types/node': 12.20.55 442 | find-up: 4.1.0 443 | fs-extra: 8.1.0 444 | dev: true 445 | 446 | /@manypkg/get-packages@1.1.3: 447 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 448 | dependencies: 449 | '@babel/runtime': 7.23.1 450 | '@changesets/types': 4.1.0 451 | '@manypkg/find-root': 1.1.0 452 | fs-extra: 8.1.0 453 | globby: 11.1.0 454 | read-yaml-file: 1.1.0 455 | dev: true 456 | 457 | /@nodelib/fs.scandir@2.1.5: 458 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 459 | engines: {node: '>= 8'} 460 | dependencies: 461 | '@nodelib/fs.stat': 2.0.5 462 | run-parallel: 1.2.0 463 | dev: true 464 | 465 | /@nodelib/fs.stat@2.0.5: 466 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 467 | engines: {node: '>= 8'} 468 | dev: true 469 | 470 | /@nodelib/fs.walk@1.2.8: 471 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 472 | engines: {node: '>= 8'} 473 | dependencies: 474 | '@nodelib/fs.scandir': 2.1.5 475 | fastq: 1.15.0 476 | dev: true 477 | 478 | /@types/is-ci@3.0.1: 479 | resolution: {integrity: sha512-mnb1ngaGQPm6LFZaNdh3xPOoQMkrQb/KBPhPPN2p2Wk8XgeUqWj6xPnvyQ8rvcK/VFritVmQG8tvQuy7g+9/nQ==} 480 | dependencies: 481 | ci-info: 3.8.0 482 | dev: true 483 | 484 | /@types/minimist@1.2.3: 485 | resolution: {integrity: sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==} 486 | dev: true 487 | 488 | /@types/node@12.20.55: 489 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 490 | dev: true 491 | 492 | /@types/node@20.8.2: 493 | resolution: {integrity: sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==} 494 | dev: true 495 | 496 | /@types/normalize-package-data@2.4.2: 497 | resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==} 498 | dev: true 499 | 500 | /@types/semver@7.5.3: 501 | resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} 502 | dev: true 503 | 504 | /ansi-colors@4.1.3: 505 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 506 | engines: {node: '>=6'} 507 | dev: true 508 | 509 | /ansi-regex@5.0.1: 510 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 511 | engines: {node: '>=8'} 512 | dev: true 513 | 514 | /ansi-styles@3.2.1: 515 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 516 | engines: {node: '>=4'} 517 | dependencies: 518 | color-convert: 1.9.3 519 | dev: true 520 | 521 | /ansi-styles@4.3.0: 522 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 523 | engines: {node: '>=8'} 524 | dependencies: 525 | color-convert: 2.0.1 526 | dev: true 527 | 528 | /argparse@1.0.10: 529 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 530 | dependencies: 531 | sprintf-js: 1.0.3 532 | dev: true 533 | 534 | /array-buffer-byte-length@1.0.0: 535 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 536 | dependencies: 537 | call-bind: 1.0.2 538 | is-array-buffer: 3.0.2 539 | dev: true 540 | 541 | /array-union@2.1.0: 542 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 543 | engines: {node: '>=8'} 544 | dev: true 545 | 546 | /array.prototype.flat@1.3.2: 547 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 548 | engines: {node: '>= 0.4'} 549 | dependencies: 550 | call-bind: 1.0.2 551 | define-properties: 1.2.1 552 | es-abstract: 1.22.2 553 | es-shim-unscopables: 1.0.0 554 | dev: true 555 | 556 | /arraybuffer.prototype.slice@1.0.2: 557 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} 558 | engines: {node: '>= 0.4'} 559 | dependencies: 560 | array-buffer-byte-length: 1.0.0 561 | call-bind: 1.0.2 562 | define-properties: 1.2.1 563 | es-abstract: 1.22.2 564 | get-intrinsic: 1.2.1 565 | is-array-buffer: 3.0.2 566 | is-shared-array-buffer: 1.0.2 567 | dev: true 568 | 569 | /arrify@1.0.1: 570 | resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} 571 | engines: {node: '>=0.10.0'} 572 | dev: true 573 | 574 | /available-typed-arrays@1.0.5: 575 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 576 | engines: {node: '>= 0.4'} 577 | dev: true 578 | 579 | /better-path-resolve@1.0.0: 580 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 581 | engines: {node: '>=4'} 582 | dependencies: 583 | is-windows: 1.0.2 584 | dev: true 585 | 586 | /braces@3.0.2: 587 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 588 | engines: {node: '>=8'} 589 | dependencies: 590 | fill-range: 7.0.1 591 | dev: true 592 | 593 | /breakword@1.0.6: 594 | resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} 595 | dependencies: 596 | wcwidth: 1.0.1 597 | dev: true 598 | 599 | /buffer-from@1.1.2: 600 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 601 | dev: true 602 | 603 | /call-bind@1.0.2: 604 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 605 | dependencies: 606 | function-bind: 1.1.1 607 | get-intrinsic: 1.2.1 608 | dev: true 609 | 610 | /camelcase-keys@6.2.2: 611 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 612 | engines: {node: '>=8'} 613 | dependencies: 614 | camelcase: 5.3.1 615 | map-obj: 4.3.0 616 | quick-lru: 4.0.1 617 | dev: true 618 | 619 | /camelcase@5.3.1: 620 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 621 | engines: {node: '>=6'} 622 | dev: true 623 | 624 | /chalk@2.4.2: 625 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 626 | engines: {node: '>=4'} 627 | dependencies: 628 | ansi-styles: 3.2.1 629 | escape-string-regexp: 1.0.5 630 | supports-color: 5.5.0 631 | dev: true 632 | 633 | /chalk@4.1.2: 634 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 635 | engines: {node: '>=10'} 636 | dependencies: 637 | ansi-styles: 4.3.0 638 | supports-color: 7.2.0 639 | dev: true 640 | 641 | /chardet@0.7.0: 642 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 643 | dev: true 644 | 645 | /ci-info@3.8.0: 646 | resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} 647 | engines: {node: '>=8'} 648 | dev: true 649 | 650 | /cliui@6.0.0: 651 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 652 | dependencies: 653 | string-width: 4.2.3 654 | strip-ansi: 6.0.1 655 | wrap-ansi: 6.2.0 656 | dev: true 657 | 658 | /cliui@8.0.1: 659 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 660 | engines: {node: '>=12'} 661 | dependencies: 662 | string-width: 4.2.3 663 | strip-ansi: 6.0.1 664 | wrap-ansi: 7.0.0 665 | dev: true 666 | 667 | /clone@1.0.4: 668 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} 669 | engines: {node: '>=0.8'} 670 | dev: true 671 | 672 | /color-convert@1.9.3: 673 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 674 | dependencies: 675 | color-name: 1.1.3 676 | dev: true 677 | 678 | /color-convert@2.0.1: 679 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 680 | engines: {node: '>=7.0.0'} 681 | dependencies: 682 | color-name: 1.1.4 683 | dev: true 684 | 685 | /color-name@1.1.3: 686 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 687 | dev: true 688 | 689 | /color-name@1.1.4: 690 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 691 | dev: true 692 | 693 | /cross-spawn@5.1.0: 694 | resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} 695 | dependencies: 696 | lru-cache: 4.1.5 697 | shebang-command: 1.2.0 698 | which: 1.3.1 699 | dev: true 700 | 701 | /csv-generate@3.4.3: 702 | resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} 703 | dev: true 704 | 705 | /csv-parse@4.16.3: 706 | resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} 707 | dev: true 708 | 709 | /csv-stringify@5.6.5: 710 | resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} 711 | dev: true 712 | 713 | /csv@5.5.3: 714 | resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} 715 | engines: {node: '>= 0.1.90'} 716 | dependencies: 717 | csv-generate: 3.4.3 718 | csv-parse: 4.16.3 719 | csv-stringify: 5.6.5 720 | stream-transform: 2.1.3 721 | dev: true 722 | 723 | /decamelize-keys@1.1.1: 724 | resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} 725 | engines: {node: '>=0.10.0'} 726 | dependencies: 727 | decamelize: 1.2.0 728 | map-obj: 1.0.1 729 | dev: true 730 | 731 | /decamelize@1.2.0: 732 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 733 | engines: {node: '>=0.10.0'} 734 | dev: true 735 | 736 | /defaults@1.0.4: 737 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} 738 | dependencies: 739 | clone: 1.0.4 740 | dev: true 741 | 742 | /define-data-property@1.1.0: 743 | resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} 744 | engines: {node: '>= 0.4'} 745 | dependencies: 746 | get-intrinsic: 1.2.1 747 | gopd: 1.0.1 748 | has-property-descriptors: 1.0.0 749 | dev: true 750 | 751 | /define-properties@1.2.1: 752 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 753 | engines: {node: '>= 0.4'} 754 | dependencies: 755 | define-data-property: 1.1.0 756 | has-property-descriptors: 1.0.0 757 | object-keys: 1.1.1 758 | dev: true 759 | 760 | /detect-indent@6.1.0: 761 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 762 | engines: {node: '>=8'} 763 | dev: true 764 | 765 | /dir-glob@3.0.1: 766 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 767 | engines: {node: '>=8'} 768 | dependencies: 769 | path-type: 4.0.0 770 | dev: true 771 | 772 | /emoji-regex@8.0.0: 773 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 774 | dev: true 775 | 776 | /enquirer@2.4.1: 777 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 778 | engines: {node: '>=8.6'} 779 | dependencies: 780 | ansi-colors: 4.1.3 781 | strip-ansi: 6.0.1 782 | dev: true 783 | 784 | /error-ex@1.3.2: 785 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 786 | dependencies: 787 | is-arrayish: 0.2.1 788 | dev: true 789 | 790 | /es-abstract@1.22.2: 791 | resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} 792 | engines: {node: '>= 0.4'} 793 | dependencies: 794 | array-buffer-byte-length: 1.0.0 795 | arraybuffer.prototype.slice: 1.0.2 796 | available-typed-arrays: 1.0.5 797 | call-bind: 1.0.2 798 | es-set-tostringtag: 2.0.1 799 | es-to-primitive: 1.2.1 800 | function.prototype.name: 1.1.6 801 | get-intrinsic: 1.2.1 802 | get-symbol-description: 1.0.0 803 | globalthis: 1.0.3 804 | gopd: 1.0.1 805 | has: 1.0.3 806 | has-property-descriptors: 1.0.0 807 | has-proto: 1.0.1 808 | has-symbols: 1.0.3 809 | internal-slot: 1.0.5 810 | is-array-buffer: 3.0.2 811 | is-callable: 1.2.7 812 | is-negative-zero: 2.0.2 813 | is-regex: 1.1.4 814 | is-shared-array-buffer: 1.0.2 815 | is-string: 1.0.7 816 | is-typed-array: 1.1.12 817 | is-weakref: 1.0.2 818 | object-inspect: 1.12.3 819 | object-keys: 1.1.1 820 | object.assign: 4.1.4 821 | regexp.prototype.flags: 1.5.1 822 | safe-array-concat: 1.0.1 823 | safe-regex-test: 1.0.0 824 | string.prototype.trim: 1.2.8 825 | string.prototype.trimend: 1.0.7 826 | string.prototype.trimstart: 1.0.7 827 | typed-array-buffer: 1.0.0 828 | typed-array-byte-length: 1.0.0 829 | typed-array-byte-offset: 1.0.0 830 | typed-array-length: 1.0.4 831 | unbox-primitive: 1.0.2 832 | which-typed-array: 1.1.11 833 | dev: true 834 | 835 | /es-set-tostringtag@2.0.1: 836 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 837 | engines: {node: '>= 0.4'} 838 | dependencies: 839 | get-intrinsic: 1.2.1 840 | has: 1.0.3 841 | has-tostringtag: 1.0.0 842 | dev: true 843 | 844 | /es-shim-unscopables@1.0.0: 845 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 846 | dependencies: 847 | has: 1.0.3 848 | dev: true 849 | 850 | /es-to-primitive@1.2.1: 851 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 852 | engines: {node: '>= 0.4'} 853 | dependencies: 854 | is-callable: 1.2.7 855 | is-date-object: 1.0.5 856 | is-symbol: 1.0.4 857 | dev: true 858 | 859 | /esbuild@0.18.20: 860 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 861 | engines: {node: '>=12'} 862 | hasBin: true 863 | requiresBuild: true 864 | optionalDependencies: 865 | '@esbuild/android-arm': 0.18.20 866 | '@esbuild/android-arm64': 0.18.20 867 | '@esbuild/android-x64': 0.18.20 868 | '@esbuild/darwin-arm64': 0.18.20 869 | '@esbuild/darwin-x64': 0.18.20 870 | '@esbuild/freebsd-arm64': 0.18.20 871 | '@esbuild/freebsd-x64': 0.18.20 872 | '@esbuild/linux-arm': 0.18.20 873 | '@esbuild/linux-arm64': 0.18.20 874 | '@esbuild/linux-ia32': 0.18.20 875 | '@esbuild/linux-loong64': 0.18.20 876 | '@esbuild/linux-mips64el': 0.18.20 877 | '@esbuild/linux-ppc64': 0.18.20 878 | '@esbuild/linux-riscv64': 0.18.20 879 | '@esbuild/linux-s390x': 0.18.20 880 | '@esbuild/linux-x64': 0.18.20 881 | '@esbuild/netbsd-x64': 0.18.20 882 | '@esbuild/openbsd-x64': 0.18.20 883 | '@esbuild/sunos-x64': 0.18.20 884 | '@esbuild/win32-arm64': 0.18.20 885 | '@esbuild/win32-ia32': 0.18.20 886 | '@esbuild/win32-x64': 0.18.20 887 | dev: true 888 | 889 | /escalade@3.1.1: 890 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 891 | engines: {node: '>=6'} 892 | dev: true 893 | 894 | /escape-string-regexp@1.0.5: 895 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 896 | engines: {node: '>=0.8.0'} 897 | dev: true 898 | 899 | /esprima@4.0.1: 900 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 901 | engines: {node: '>=4'} 902 | hasBin: true 903 | dev: true 904 | 905 | /extendable-error@0.1.7: 906 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 907 | dev: true 908 | 909 | /external-editor@3.1.0: 910 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 911 | engines: {node: '>=4'} 912 | dependencies: 913 | chardet: 0.7.0 914 | iconv-lite: 0.4.24 915 | tmp: 0.0.33 916 | dev: true 917 | 918 | /fast-glob@3.3.1: 919 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 920 | engines: {node: '>=8.6.0'} 921 | dependencies: 922 | '@nodelib/fs.stat': 2.0.5 923 | '@nodelib/fs.walk': 1.2.8 924 | glob-parent: 5.1.2 925 | merge2: 1.4.1 926 | micromatch: 4.0.5 927 | dev: true 928 | 929 | /fastq@1.15.0: 930 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 931 | dependencies: 932 | reusify: 1.0.4 933 | dev: true 934 | 935 | /fill-range@7.0.1: 936 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 937 | engines: {node: '>=8'} 938 | dependencies: 939 | to-regex-range: 5.0.1 940 | dev: true 941 | 942 | /find-up@4.1.0: 943 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 944 | engines: {node: '>=8'} 945 | dependencies: 946 | locate-path: 5.0.0 947 | path-exists: 4.0.0 948 | dev: true 949 | 950 | /find-up@5.0.0: 951 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 952 | engines: {node: '>=10'} 953 | dependencies: 954 | locate-path: 6.0.0 955 | path-exists: 4.0.0 956 | dev: true 957 | 958 | /find-yarn-workspace-root2@1.2.16: 959 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} 960 | dependencies: 961 | micromatch: 4.0.5 962 | pkg-dir: 4.2.0 963 | dev: true 964 | 965 | /for-each@0.3.3: 966 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 967 | dependencies: 968 | is-callable: 1.2.7 969 | dev: true 970 | 971 | /fs-extra@7.0.1: 972 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 973 | engines: {node: '>=6 <7 || >=8'} 974 | dependencies: 975 | graceful-fs: 4.2.11 976 | jsonfile: 4.0.0 977 | universalify: 0.1.2 978 | dev: true 979 | 980 | /fs-extra@8.1.0: 981 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 982 | engines: {node: '>=6 <7 || >=8'} 983 | dependencies: 984 | graceful-fs: 4.2.11 985 | jsonfile: 4.0.0 986 | universalify: 0.1.2 987 | dev: true 988 | 989 | /fsevents@2.3.3: 990 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 991 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 992 | os: [darwin] 993 | requiresBuild: true 994 | dev: true 995 | optional: true 996 | 997 | /function-bind@1.1.1: 998 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 999 | dev: true 1000 | 1001 | /function.prototype.name@1.1.6: 1002 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 1003 | engines: {node: '>= 0.4'} 1004 | dependencies: 1005 | call-bind: 1.0.2 1006 | define-properties: 1.2.1 1007 | es-abstract: 1.22.2 1008 | functions-have-names: 1.2.3 1009 | dev: true 1010 | 1011 | /functions-have-names@1.2.3: 1012 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1013 | dev: true 1014 | 1015 | /get-caller-file@2.0.5: 1016 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1017 | engines: {node: 6.* || 8.* || >= 10.*} 1018 | dev: true 1019 | 1020 | /get-intrinsic@1.2.1: 1021 | resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} 1022 | dependencies: 1023 | function-bind: 1.1.1 1024 | has: 1.0.3 1025 | has-proto: 1.0.1 1026 | has-symbols: 1.0.3 1027 | dev: true 1028 | 1029 | /get-symbol-description@1.0.0: 1030 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1031 | engines: {node: '>= 0.4'} 1032 | dependencies: 1033 | call-bind: 1.0.2 1034 | get-intrinsic: 1.2.1 1035 | dev: true 1036 | 1037 | /get-tsconfig@4.7.2: 1038 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} 1039 | dependencies: 1040 | resolve-pkg-maps: 1.0.0 1041 | dev: true 1042 | 1043 | /glob-parent@5.1.2: 1044 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1045 | engines: {node: '>= 6'} 1046 | dependencies: 1047 | is-glob: 4.0.3 1048 | dev: true 1049 | 1050 | /globalthis@1.0.3: 1051 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1052 | engines: {node: '>= 0.4'} 1053 | dependencies: 1054 | define-properties: 1.2.1 1055 | dev: true 1056 | 1057 | /globby@11.1.0: 1058 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1059 | engines: {node: '>=10'} 1060 | dependencies: 1061 | array-union: 2.1.0 1062 | dir-glob: 3.0.1 1063 | fast-glob: 3.3.1 1064 | ignore: 5.2.4 1065 | merge2: 1.4.1 1066 | slash: 3.0.0 1067 | dev: true 1068 | 1069 | /gopd@1.0.1: 1070 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1071 | dependencies: 1072 | get-intrinsic: 1.2.1 1073 | dev: true 1074 | 1075 | /graceful-fs@4.2.11: 1076 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1077 | dev: true 1078 | 1079 | /grapheme-splitter@1.0.4: 1080 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1081 | dev: true 1082 | 1083 | /hard-rejection@2.1.0: 1084 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} 1085 | engines: {node: '>=6'} 1086 | dev: true 1087 | 1088 | /has-bigints@1.0.2: 1089 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1090 | dev: true 1091 | 1092 | /has-flag@3.0.0: 1093 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1094 | engines: {node: '>=4'} 1095 | dev: true 1096 | 1097 | /has-flag@4.0.0: 1098 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1099 | engines: {node: '>=8'} 1100 | dev: true 1101 | 1102 | /has-property-descriptors@1.0.0: 1103 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1104 | dependencies: 1105 | get-intrinsic: 1.2.1 1106 | dev: true 1107 | 1108 | /has-proto@1.0.1: 1109 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1110 | engines: {node: '>= 0.4'} 1111 | dev: true 1112 | 1113 | /has-symbols@1.0.3: 1114 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1115 | engines: {node: '>= 0.4'} 1116 | dev: true 1117 | 1118 | /has-tostringtag@1.0.0: 1119 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1120 | engines: {node: '>= 0.4'} 1121 | dependencies: 1122 | has-symbols: 1.0.3 1123 | dev: true 1124 | 1125 | /has@1.0.3: 1126 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1127 | engines: {node: '>= 0.4.0'} 1128 | dependencies: 1129 | function-bind: 1.1.1 1130 | dev: true 1131 | 1132 | /hosted-git-info@2.8.9: 1133 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1134 | dev: true 1135 | 1136 | /human-id@1.0.2: 1137 | resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 1138 | dev: true 1139 | 1140 | /iconv-lite@0.4.24: 1141 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1142 | engines: {node: '>=0.10.0'} 1143 | dependencies: 1144 | safer-buffer: 2.1.2 1145 | dev: true 1146 | 1147 | /ignore@5.2.4: 1148 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1149 | engines: {node: '>= 4'} 1150 | dev: true 1151 | 1152 | /indent-string@4.0.0: 1153 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1154 | engines: {node: '>=8'} 1155 | dev: true 1156 | 1157 | /internal-slot@1.0.5: 1158 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 1159 | engines: {node: '>= 0.4'} 1160 | dependencies: 1161 | get-intrinsic: 1.2.1 1162 | has: 1.0.3 1163 | side-channel: 1.0.4 1164 | dev: true 1165 | 1166 | /is-array-buffer@3.0.2: 1167 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 1168 | dependencies: 1169 | call-bind: 1.0.2 1170 | get-intrinsic: 1.2.1 1171 | is-typed-array: 1.1.12 1172 | dev: true 1173 | 1174 | /is-arrayish@0.2.1: 1175 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1176 | dev: true 1177 | 1178 | /is-bigint@1.0.4: 1179 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1180 | dependencies: 1181 | has-bigints: 1.0.2 1182 | dev: true 1183 | 1184 | /is-boolean-object@1.1.2: 1185 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1186 | engines: {node: '>= 0.4'} 1187 | dependencies: 1188 | call-bind: 1.0.2 1189 | has-tostringtag: 1.0.0 1190 | dev: true 1191 | 1192 | /is-callable@1.2.7: 1193 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1194 | engines: {node: '>= 0.4'} 1195 | dev: true 1196 | 1197 | /is-ci@3.0.1: 1198 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} 1199 | hasBin: true 1200 | dependencies: 1201 | ci-info: 3.8.0 1202 | dev: true 1203 | 1204 | /is-core-module@2.13.0: 1205 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} 1206 | dependencies: 1207 | has: 1.0.3 1208 | dev: true 1209 | 1210 | /is-date-object@1.0.5: 1211 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1212 | engines: {node: '>= 0.4'} 1213 | dependencies: 1214 | has-tostringtag: 1.0.0 1215 | dev: true 1216 | 1217 | /is-extglob@2.1.1: 1218 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1219 | engines: {node: '>=0.10.0'} 1220 | dev: true 1221 | 1222 | /is-fullwidth-code-point@3.0.0: 1223 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1224 | engines: {node: '>=8'} 1225 | dev: true 1226 | 1227 | /is-glob@4.0.3: 1228 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1229 | engines: {node: '>=0.10.0'} 1230 | dependencies: 1231 | is-extglob: 2.1.1 1232 | dev: true 1233 | 1234 | /is-negative-zero@2.0.2: 1235 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1236 | engines: {node: '>= 0.4'} 1237 | dev: true 1238 | 1239 | /is-number-object@1.0.7: 1240 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1241 | engines: {node: '>= 0.4'} 1242 | dependencies: 1243 | has-tostringtag: 1.0.0 1244 | dev: true 1245 | 1246 | /is-number@7.0.0: 1247 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1248 | engines: {node: '>=0.12.0'} 1249 | dev: true 1250 | 1251 | /is-plain-obj@1.1.0: 1252 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 1253 | engines: {node: '>=0.10.0'} 1254 | dev: true 1255 | 1256 | /is-regex@1.1.4: 1257 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1258 | engines: {node: '>= 0.4'} 1259 | dependencies: 1260 | call-bind: 1.0.2 1261 | has-tostringtag: 1.0.0 1262 | dev: true 1263 | 1264 | /is-shared-array-buffer@1.0.2: 1265 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1266 | dependencies: 1267 | call-bind: 1.0.2 1268 | dev: true 1269 | 1270 | /is-string@1.0.7: 1271 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1272 | engines: {node: '>= 0.4'} 1273 | dependencies: 1274 | has-tostringtag: 1.0.0 1275 | dev: true 1276 | 1277 | /is-subdir@1.2.0: 1278 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 1279 | engines: {node: '>=4'} 1280 | dependencies: 1281 | better-path-resolve: 1.0.0 1282 | dev: true 1283 | 1284 | /is-symbol@1.0.4: 1285 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1286 | engines: {node: '>= 0.4'} 1287 | dependencies: 1288 | has-symbols: 1.0.3 1289 | dev: true 1290 | 1291 | /is-typed-array@1.1.12: 1292 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} 1293 | engines: {node: '>= 0.4'} 1294 | dependencies: 1295 | which-typed-array: 1.1.11 1296 | dev: true 1297 | 1298 | /is-weakref@1.0.2: 1299 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1300 | dependencies: 1301 | call-bind: 1.0.2 1302 | dev: true 1303 | 1304 | /is-windows@1.0.2: 1305 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1306 | engines: {node: '>=0.10.0'} 1307 | dev: true 1308 | 1309 | /isarray@2.0.5: 1310 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1311 | dev: true 1312 | 1313 | /isexe@2.0.0: 1314 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1315 | dev: true 1316 | 1317 | /js-tokens@4.0.0: 1318 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1319 | dev: true 1320 | 1321 | /js-yaml@3.14.1: 1322 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1323 | hasBin: true 1324 | dependencies: 1325 | argparse: 1.0.10 1326 | esprima: 4.0.1 1327 | dev: true 1328 | 1329 | /json-parse-even-better-errors@2.3.1: 1330 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1331 | dev: true 1332 | 1333 | /jsonfile@4.0.0: 1334 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1335 | optionalDependencies: 1336 | graceful-fs: 4.2.11 1337 | dev: true 1338 | 1339 | /kind-of@6.0.3: 1340 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1341 | engines: {node: '>=0.10.0'} 1342 | dev: true 1343 | 1344 | /kleur@4.1.5: 1345 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1346 | engines: {node: '>=6'} 1347 | dev: true 1348 | 1349 | /lines-and-columns@1.2.4: 1350 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1351 | dev: true 1352 | 1353 | /load-yaml-file@0.2.0: 1354 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} 1355 | engines: {node: '>=6'} 1356 | dependencies: 1357 | graceful-fs: 4.2.11 1358 | js-yaml: 3.14.1 1359 | pify: 4.0.1 1360 | strip-bom: 3.0.0 1361 | dev: true 1362 | 1363 | /locate-path@5.0.0: 1364 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1365 | engines: {node: '>=8'} 1366 | dependencies: 1367 | p-locate: 4.1.0 1368 | dev: true 1369 | 1370 | /locate-path@6.0.0: 1371 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1372 | engines: {node: '>=10'} 1373 | dependencies: 1374 | p-locate: 5.0.0 1375 | dev: true 1376 | 1377 | /lodash.startcase@4.4.0: 1378 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1379 | dev: true 1380 | 1381 | /lru-cache@4.1.5: 1382 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} 1383 | dependencies: 1384 | pseudomap: 1.0.2 1385 | yallist: 2.1.2 1386 | dev: true 1387 | 1388 | /lru-cache@6.0.0: 1389 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1390 | engines: {node: '>=10'} 1391 | dependencies: 1392 | yallist: 4.0.0 1393 | dev: true 1394 | 1395 | /map-obj@1.0.1: 1396 | resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} 1397 | engines: {node: '>=0.10.0'} 1398 | dev: true 1399 | 1400 | /map-obj@4.3.0: 1401 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 1402 | engines: {node: '>=8'} 1403 | dev: true 1404 | 1405 | /meow@6.1.1: 1406 | resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} 1407 | engines: {node: '>=8'} 1408 | dependencies: 1409 | '@types/minimist': 1.2.3 1410 | camelcase-keys: 6.2.2 1411 | decamelize-keys: 1.1.1 1412 | hard-rejection: 2.1.0 1413 | minimist-options: 4.1.0 1414 | normalize-package-data: 2.5.0 1415 | read-pkg-up: 7.0.1 1416 | redent: 3.0.0 1417 | trim-newlines: 3.0.1 1418 | type-fest: 0.13.1 1419 | yargs-parser: 18.1.3 1420 | dev: true 1421 | 1422 | /merge2@1.4.1: 1423 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1424 | engines: {node: '>= 8'} 1425 | dev: true 1426 | 1427 | /micromatch@4.0.5: 1428 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1429 | engines: {node: '>=8.6'} 1430 | dependencies: 1431 | braces: 3.0.2 1432 | picomatch: 2.3.1 1433 | dev: true 1434 | 1435 | /min-indent@1.0.1: 1436 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1437 | engines: {node: '>=4'} 1438 | dev: true 1439 | 1440 | /minimist-options@4.1.0: 1441 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} 1442 | engines: {node: '>= 6'} 1443 | dependencies: 1444 | arrify: 1.0.1 1445 | is-plain-obj: 1.1.0 1446 | kind-of: 6.0.3 1447 | dev: true 1448 | 1449 | /mixme@0.5.9: 1450 | resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} 1451 | engines: {node: '>= 8.0.0'} 1452 | dev: true 1453 | 1454 | /normalize-package-data@2.5.0: 1455 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1456 | dependencies: 1457 | hosted-git-info: 2.8.9 1458 | resolve: 1.22.6 1459 | semver: 5.7.2 1460 | validate-npm-package-license: 3.0.4 1461 | dev: true 1462 | 1463 | /object-inspect@1.12.3: 1464 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 1465 | dev: true 1466 | 1467 | /object-keys@1.1.1: 1468 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1469 | engines: {node: '>= 0.4'} 1470 | dev: true 1471 | 1472 | /object.assign@4.1.4: 1473 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 1474 | engines: {node: '>= 0.4'} 1475 | dependencies: 1476 | call-bind: 1.0.2 1477 | define-properties: 1.2.1 1478 | has-symbols: 1.0.3 1479 | object-keys: 1.1.1 1480 | dev: true 1481 | 1482 | /os-tmpdir@1.0.2: 1483 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1484 | engines: {node: '>=0.10.0'} 1485 | dev: true 1486 | 1487 | /outdent@0.5.0: 1488 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 1489 | dev: true 1490 | 1491 | /p-filter@2.1.0: 1492 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 1493 | engines: {node: '>=8'} 1494 | dependencies: 1495 | p-map: 2.1.0 1496 | dev: true 1497 | 1498 | /p-limit@2.3.0: 1499 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1500 | engines: {node: '>=6'} 1501 | dependencies: 1502 | p-try: 2.2.0 1503 | dev: true 1504 | 1505 | /p-limit@3.1.0: 1506 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1507 | engines: {node: '>=10'} 1508 | dependencies: 1509 | yocto-queue: 0.1.0 1510 | dev: true 1511 | 1512 | /p-locate@4.1.0: 1513 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1514 | engines: {node: '>=8'} 1515 | dependencies: 1516 | p-limit: 2.3.0 1517 | dev: true 1518 | 1519 | /p-locate@5.0.0: 1520 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1521 | engines: {node: '>=10'} 1522 | dependencies: 1523 | p-limit: 3.1.0 1524 | dev: true 1525 | 1526 | /p-map@2.1.0: 1527 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 1528 | engines: {node: '>=6'} 1529 | dev: true 1530 | 1531 | /p-try@2.2.0: 1532 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1533 | engines: {node: '>=6'} 1534 | dev: true 1535 | 1536 | /parse-json@5.2.0: 1537 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1538 | engines: {node: '>=8'} 1539 | dependencies: 1540 | '@babel/code-frame': 7.22.13 1541 | error-ex: 1.3.2 1542 | json-parse-even-better-errors: 2.3.1 1543 | lines-and-columns: 1.2.4 1544 | dev: true 1545 | 1546 | /path-exists@4.0.0: 1547 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1548 | engines: {node: '>=8'} 1549 | dev: true 1550 | 1551 | /path-parse@1.0.7: 1552 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1553 | dev: true 1554 | 1555 | /path-type@4.0.0: 1556 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1557 | engines: {node: '>=8'} 1558 | dev: true 1559 | 1560 | /picomatch@2.3.1: 1561 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1562 | engines: {node: '>=8.6'} 1563 | dev: true 1564 | 1565 | /pify@4.0.1: 1566 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1567 | engines: {node: '>=6'} 1568 | dev: true 1569 | 1570 | /pkg-dir@4.2.0: 1571 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1572 | engines: {node: '>=8'} 1573 | dependencies: 1574 | find-up: 4.1.0 1575 | dev: true 1576 | 1577 | /preferred-pm@3.1.2: 1578 | resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} 1579 | engines: {node: '>=10'} 1580 | dependencies: 1581 | find-up: 5.0.0 1582 | find-yarn-workspace-root2: 1.2.16 1583 | path-exists: 4.0.0 1584 | which-pm: 2.0.0 1585 | dev: true 1586 | 1587 | /prettier@2.8.8: 1588 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1589 | engines: {node: '>=10.13.0'} 1590 | hasBin: true 1591 | dev: true 1592 | 1593 | /prettier@3.0.3: 1594 | resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} 1595 | engines: {node: '>=14'} 1596 | hasBin: true 1597 | dev: true 1598 | 1599 | /pseudomap@1.0.2: 1600 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} 1601 | dev: true 1602 | 1603 | /queue-microtask@1.2.3: 1604 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1605 | dev: true 1606 | 1607 | /quick-lru@4.0.1: 1608 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 1609 | engines: {node: '>=8'} 1610 | dev: true 1611 | 1612 | /read-pkg-up@7.0.1: 1613 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 1614 | engines: {node: '>=8'} 1615 | dependencies: 1616 | find-up: 4.1.0 1617 | read-pkg: 5.2.0 1618 | type-fest: 0.8.1 1619 | dev: true 1620 | 1621 | /read-pkg@5.2.0: 1622 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 1623 | engines: {node: '>=8'} 1624 | dependencies: 1625 | '@types/normalize-package-data': 2.4.2 1626 | normalize-package-data: 2.5.0 1627 | parse-json: 5.2.0 1628 | type-fest: 0.6.0 1629 | dev: true 1630 | 1631 | /read-yaml-file@1.1.0: 1632 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 1633 | engines: {node: '>=6'} 1634 | dependencies: 1635 | graceful-fs: 4.2.11 1636 | js-yaml: 3.14.1 1637 | pify: 4.0.1 1638 | strip-bom: 3.0.0 1639 | dev: true 1640 | 1641 | /redent@3.0.0: 1642 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 1643 | engines: {node: '>=8'} 1644 | dependencies: 1645 | indent-string: 4.0.0 1646 | strip-indent: 3.0.0 1647 | dev: true 1648 | 1649 | /regenerator-runtime@0.14.0: 1650 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} 1651 | dev: true 1652 | 1653 | /regexp.prototype.flags@1.5.1: 1654 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} 1655 | engines: {node: '>= 0.4'} 1656 | dependencies: 1657 | call-bind: 1.0.2 1658 | define-properties: 1.2.1 1659 | set-function-name: 2.0.1 1660 | dev: true 1661 | 1662 | /require-directory@2.1.1: 1663 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1664 | engines: {node: '>=0.10.0'} 1665 | dev: true 1666 | 1667 | /require-main-filename@2.0.0: 1668 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 1669 | dev: true 1670 | 1671 | /resolve-from@5.0.0: 1672 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1673 | engines: {node: '>=8'} 1674 | dev: true 1675 | 1676 | /resolve-pkg-maps@1.0.0: 1677 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1678 | dev: true 1679 | 1680 | /resolve@1.22.6: 1681 | resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} 1682 | hasBin: true 1683 | dependencies: 1684 | is-core-module: 2.13.0 1685 | path-parse: 1.0.7 1686 | supports-preserve-symlinks-flag: 1.0.0 1687 | dev: true 1688 | 1689 | /reusify@1.0.4: 1690 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1691 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1692 | dev: true 1693 | 1694 | /run-parallel@1.2.0: 1695 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1696 | dependencies: 1697 | queue-microtask: 1.2.3 1698 | dev: true 1699 | 1700 | /safe-array-concat@1.0.1: 1701 | resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} 1702 | engines: {node: '>=0.4'} 1703 | dependencies: 1704 | call-bind: 1.0.2 1705 | get-intrinsic: 1.2.1 1706 | has-symbols: 1.0.3 1707 | isarray: 2.0.5 1708 | dev: true 1709 | 1710 | /safe-regex-test@1.0.0: 1711 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 1712 | dependencies: 1713 | call-bind: 1.0.2 1714 | get-intrinsic: 1.2.1 1715 | is-regex: 1.1.4 1716 | dev: true 1717 | 1718 | /safer-buffer@2.1.2: 1719 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1720 | dev: true 1721 | 1722 | /semver@5.7.2: 1723 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1724 | hasBin: true 1725 | dev: true 1726 | 1727 | /semver@7.5.4: 1728 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 1729 | engines: {node: '>=10'} 1730 | hasBin: true 1731 | dependencies: 1732 | lru-cache: 6.0.0 1733 | dev: true 1734 | 1735 | /set-blocking@2.0.0: 1736 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 1737 | dev: true 1738 | 1739 | /set-function-name@2.0.1: 1740 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} 1741 | engines: {node: '>= 0.4'} 1742 | dependencies: 1743 | define-data-property: 1.1.0 1744 | functions-have-names: 1.2.3 1745 | has-property-descriptors: 1.0.0 1746 | dev: true 1747 | 1748 | /shebang-command@1.2.0: 1749 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 1750 | engines: {node: '>=0.10.0'} 1751 | dependencies: 1752 | shebang-regex: 1.0.0 1753 | dev: true 1754 | 1755 | /shebang-regex@1.0.0: 1756 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 1757 | engines: {node: '>=0.10.0'} 1758 | dev: true 1759 | 1760 | /side-channel@1.0.4: 1761 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 1762 | dependencies: 1763 | call-bind: 1.0.2 1764 | get-intrinsic: 1.2.1 1765 | object-inspect: 1.12.3 1766 | dev: true 1767 | 1768 | /signal-exit@3.0.7: 1769 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1770 | dev: true 1771 | 1772 | /slash@3.0.0: 1773 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1774 | engines: {node: '>=8'} 1775 | dev: true 1776 | 1777 | /smartwrap@2.0.2: 1778 | resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} 1779 | engines: {node: '>=6'} 1780 | hasBin: true 1781 | dependencies: 1782 | array.prototype.flat: 1.3.2 1783 | breakword: 1.0.6 1784 | grapheme-splitter: 1.0.4 1785 | strip-ansi: 6.0.1 1786 | wcwidth: 1.0.1 1787 | yargs: 15.4.1 1788 | dev: true 1789 | 1790 | /source-map-support@0.5.21: 1791 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1792 | dependencies: 1793 | buffer-from: 1.1.2 1794 | source-map: 0.6.1 1795 | dev: true 1796 | 1797 | /source-map@0.6.1: 1798 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1799 | engines: {node: '>=0.10.0'} 1800 | dev: true 1801 | 1802 | /spawndamnit@2.0.0: 1803 | resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} 1804 | dependencies: 1805 | cross-spawn: 5.1.0 1806 | signal-exit: 3.0.7 1807 | dev: true 1808 | 1809 | /spdx-correct@3.2.0: 1810 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 1811 | dependencies: 1812 | spdx-expression-parse: 3.0.1 1813 | spdx-license-ids: 3.0.15 1814 | dev: true 1815 | 1816 | /spdx-exceptions@2.3.0: 1817 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 1818 | dev: true 1819 | 1820 | /spdx-expression-parse@3.0.1: 1821 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1822 | dependencies: 1823 | spdx-exceptions: 2.3.0 1824 | spdx-license-ids: 3.0.15 1825 | dev: true 1826 | 1827 | /spdx-license-ids@3.0.15: 1828 | resolution: {integrity: sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==} 1829 | dev: true 1830 | 1831 | /sprintf-js@1.0.3: 1832 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1833 | dev: true 1834 | 1835 | /stream-transform@2.1.3: 1836 | resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} 1837 | dependencies: 1838 | mixme: 0.5.9 1839 | dev: true 1840 | 1841 | /string-width@4.2.3: 1842 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1843 | engines: {node: '>=8'} 1844 | dependencies: 1845 | emoji-regex: 8.0.0 1846 | is-fullwidth-code-point: 3.0.0 1847 | strip-ansi: 6.0.1 1848 | dev: true 1849 | 1850 | /string.prototype.trim@1.2.8: 1851 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} 1852 | engines: {node: '>= 0.4'} 1853 | dependencies: 1854 | call-bind: 1.0.2 1855 | define-properties: 1.2.1 1856 | es-abstract: 1.22.2 1857 | dev: true 1858 | 1859 | /string.prototype.trimend@1.0.7: 1860 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} 1861 | dependencies: 1862 | call-bind: 1.0.2 1863 | define-properties: 1.2.1 1864 | es-abstract: 1.22.2 1865 | dev: true 1866 | 1867 | /string.prototype.trimstart@1.0.7: 1868 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} 1869 | dependencies: 1870 | call-bind: 1.0.2 1871 | define-properties: 1.2.1 1872 | es-abstract: 1.22.2 1873 | dev: true 1874 | 1875 | /strip-ansi@6.0.1: 1876 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1877 | engines: {node: '>=8'} 1878 | dependencies: 1879 | ansi-regex: 5.0.1 1880 | dev: true 1881 | 1882 | /strip-bom@3.0.0: 1883 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1884 | engines: {node: '>=4'} 1885 | dev: true 1886 | 1887 | /strip-indent@3.0.0: 1888 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1889 | engines: {node: '>=8'} 1890 | dependencies: 1891 | min-indent: 1.0.1 1892 | dev: true 1893 | 1894 | /supports-color@5.5.0: 1895 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1896 | engines: {node: '>=4'} 1897 | dependencies: 1898 | has-flag: 3.0.0 1899 | dev: true 1900 | 1901 | /supports-color@7.2.0: 1902 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1903 | engines: {node: '>=8'} 1904 | dependencies: 1905 | has-flag: 4.0.0 1906 | dev: true 1907 | 1908 | /supports-preserve-symlinks-flag@1.0.0: 1909 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1910 | engines: {node: '>= 0.4'} 1911 | dev: true 1912 | 1913 | /term-size@2.2.1: 1914 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 1915 | engines: {node: '>=8'} 1916 | dev: true 1917 | 1918 | /tmp@0.0.33: 1919 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 1920 | engines: {node: '>=0.6.0'} 1921 | dependencies: 1922 | os-tmpdir: 1.0.2 1923 | dev: true 1924 | 1925 | /to-regex-range@5.0.1: 1926 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1927 | engines: {node: '>=8.0'} 1928 | dependencies: 1929 | is-number: 7.0.0 1930 | dev: true 1931 | 1932 | /trim-newlines@3.0.1: 1933 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} 1934 | engines: {node: '>=8'} 1935 | dev: true 1936 | 1937 | /tsx@3.13.0: 1938 | resolution: {integrity: sha512-rjmRpTu3as/5fjNq/kOkOtihgLxuIz6pbKdj9xwP4J5jOLkBxw/rjN5ANw+KyrrOXV5uB7HC8+SrrSJxT65y+A==} 1939 | hasBin: true 1940 | dependencies: 1941 | esbuild: 0.18.20 1942 | get-tsconfig: 4.7.2 1943 | source-map-support: 0.5.21 1944 | optionalDependencies: 1945 | fsevents: 2.3.3 1946 | dev: true 1947 | 1948 | /tty-table@4.2.2: 1949 | resolution: {integrity: sha512-2gvCArMZLxgvpZ2NvQKdnYWIFLe7I/z5JClMuhrDXunmKgSZcQKcZRjN9XjAFiToMz2pUo1dEIXyrm0AwgV5Tw==} 1950 | engines: {node: '>=8.0.0'} 1951 | hasBin: true 1952 | dependencies: 1953 | chalk: 4.1.2 1954 | csv: 5.5.3 1955 | kleur: 4.1.5 1956 | smartwrap: 2.0.2 1957 | strip-ansi: 6.0.1 1958 | wcwidth: 1.0.1 1959 | yargs: 17.7.2 1960 | dev: true 1961 | 1962 | /type-fest@0.13.1: 1963 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 1964 | engines: {node: '>=10'} 1965 | dev: true 1966 | 1967 | /type-fest@0.6.0: 1968 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 1969 | engines: {node: '>=8'} 1970 | dev: true 1971 | 1972 | /type-fest@0.8.1: 1973 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 1974 | engines: {node: '>=8'} 1975 | dev: true 1976 | 1977 | /typed-array-buffer@1.0.0: 1978 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} 1979 | engines: {node: '>= 0.4'} 1980 | dependencies: 1981 | call-bind: 1.0.2 1982 | get-intrinsic: 1.2.1 1983 | is-typed-array: 1.1.12 1984 | dev: true 1985 | 1986 | /typed-array-byte-length@1.0.0: 1987 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} 1988 | engines: {node: '>= 0.4'} 1989 | dependencies: 1990 | call-bind: 1.0.2 1991 | for-each: 0.3.3 1992 | has-proto: 1.0.1 1993 | is-typed-array: 1.1.12 1994 | dev: true 1995 | 1996 | /typed-array-byte-offset@1.0.0: 1997 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} 1998 | engines: {node: '>= 0.4'} 1999 | dependencies: 2000 | available-typed-arrays: 1.0.5 2001 | call-bind: 1.0.2 2002 | for-each: 0.3.3 2003 | has-proto: 1.0.1 2004 | is-typed-array: 1.1.12 2005 | dev: true 2006 | 2007 | /typed-array-length@1.0.4: 2008 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 2009 | dependencies: 2010 | call-bind: 1.0.2 2011 | for-each: 0.3.3 2012 | is-typed-array: 1.1.12 2013 | dev: true 2014 | 2015 | /typescript@5.2.2: 2016 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} 2017 | engines: {node: '>=14.17'} 2018 | hasBin: true 2019 | dev: true 2020 | 2021 | /unbox-primitive@1.0.2: 2022 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2023 | dependencies: 2024 | call-bind: 1.0.2 2025 | has-bigints: 1.0.2 2026 | has-symbols: 1.0.3 2027 | which-boxed-primitive: 1.0.2 2028 | dev: true 2029 | 2030 | /universalify@0.1.2: 2031 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2032 | engines: {node: '>= 4.0.0'} 2033 | dev: true 2034 | 2035 | /validate-npm-package-license@3.0.4: 2036 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2037 | dependencies: 2038 | spdx-correct: 3.2.0 2039 | spdx-expression-parse: 3.0.1 2040 | dev: true 2041 | 2042 | /wcwidth@1.0.1: 2043 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} 2044 | dependencies: 2045 | defaults: 1.0.4 2046 | dev: true 2047 | 2048 | /which-boxed-primitive@1.0.2: 2049 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2050 | dependencies: 2051 | is-bigint: 1.0.4 2052 | is-boolean-object: 1.1.2 2053 | is-number-object: 1.0.7 2054 | is-string: 1.0.7 2055 | is-symbol: 1.0.4 2056 | dev: true 2057 | 2058 | /which-module@2.0.1: 2059 | resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} 2060 | dev: true 2061 | 2062 | /which-pm@2.0.0: 2063 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} 2064 | engines: {node: '>=8.15'} 2065 | dependencies: 2066 | load-yaml-file: 0.2.0 2067 | path-exists: 4.0.0 2068 | dev: true 2069 | 2070 | /which-typed-array@1.1.11: 2071 | resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} 2072 | engines: {node: '>= 0.4'} 2073 | dependencies: 2074 | available-typed-arrays: 1.0.5 2075 | call-bind: 1.0.2 2076 | for-each: 0.3.3 2077 | gopd: 1.0.1 2078 | has-tostringtag: 1.0.0 2079 | dev: true 2080 | 2081 | /which@1.3.1: 2082 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 2083 | hasBin: true 2084 | dependencies: 2085 | isexe: 2.0.0 2086 | dev: true 2087 | 2088 | /wrap-ansi@6.2.0: 2089 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 2090 | engines: {node: '>=8'} 2091 | dependencies: 2092 | ansi-styles: 4.3.0 2093 | string-width: 4.2.3 2094 | strip-ansi: 6.0.1 2095 | dev: true 2096 | 2097 | /wrap-ansi@7.0.0: 2098 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2099 | engines: {node: '>=10'} 2100 | dependencies: 2101 | ansi-styles: 4.3.0 2102 | string-width: 4.2.3 2103 | strip-ansi: 6.0.1 2104 | dev: true 2105 | 2106 | /y18n@4.0.3: 2107 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 2108 | dev: true 2109 | 2110 | /y18n@5.0.8: 2111 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2112 | engines: {node: '>=10'} 2113 | dev: true 2114 | 2115 | /yallist@2.1.2: 2116 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} 2117 | dev: true 2118 | 2119 | /yallist@4.0.0: 2120 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2121 | dev: true 2122 | 2123 | /yargs-parser@18.1.3: 2124 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 2125 | engines: {node: '>=6'} 2126 | dependencies: 2127 | camelcase: 5.3.1 2128 | decamelize: 1.2.0 2129 | dev: true 2130 | 2131 | /yargs-parser@21.1.1: 2132 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2133 | engines: {node: '>=12'} 2134 | dev: true 2135 | 2136 | /yargs@15.4.1: 2137 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 2138 | engines: {node: '>=8'} 2139 | dependencies: 2140 | cliui: 6.0.0 2141 | decamelize: 1.2.0 2142 | find-up: 4.1.0 2143 | get-caller-file: 2.0.5 2144 | require-directory: 2.1.1 2145 | require-main-filename: 2.0.0 2146 | set-blocking: 2.0.0 2147 | string-width: 4.2.3 2148 | which-module: 2.0.1 2149 | y18n: 4.0.3 2150 | yargs-parser: 18.1.3 2151 | dev: true 2152 | 2153 | /yargs@17.7.2: 2154 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 2155 | engines: {node: '>=12'} 2156 | dependencies: 2157 | cliui: 8.0.1 2158 | escalade: 3.1.1 2159 | get-caller-file: 2.0.5 2160 | require-directory: 2.1.1 2161 | string-width: 4.2.3 2162 | y18n: 5.0.8 2163 | yargs-parser: 21.1.1 2164 | dev: true 2165 | 2166 | /yocto-queue@0.1.0: 2167 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2168 | engines: {node: '>=10'} 2169 | dev: true 2170 | -------------------------------------------------------------------------------- /scripts/generate-readme.ts: -------------------------------------------------------------------------------- 1 | import * as fs from "fs/promises"; 2 | import * as path from "path"; 3 | import { format, Config } from "prettier"; 4 | 5 | interface Snippet { 6 | prefix: string; 7 | description: string; 8 | } 9 | 10 | const snippetsFilePath = path.join(__dirname, "../snippets/snippets.json"); 11 | const packageJsonFilePath = path.join(__dirname, "../package.json"); 12 | const templateFilePath = path.join(__dirname, "../templates/readme.md"); 13 | const readMeFilePath = path.join(__dirname, "../README.md"); 14 | const tableArr = ["| Keyword | Description |\n", "|---------|-------------|\n"]; 15 | 16 | async function run() { 17 | const [snippetsContent, packageJsonContents, templateContent] = 18 | await Promise.all([ 19 | fs.readFile(snippetsFilePath, "utf8"), 20 | fs.readFile(packageJsonFilePath, "utf8"), 21 | fs.readFile(templateFilePath, "utf8"), 22 | ]); 23 | 24 | const { prettier: prettierOptions } = JSON.parse(packageJsonContents) as { 25 | prettier: Config; 26 | }; 27 | prettierOptions.parser = "markdown"; 28 | 29 | const snippets = Object.values(JSON.parse(snippetsContent)) as Snippet[]; 30 | for (const snippet of snippets) { 31 | tableArr.push(`| ${snippet.prefix} | ${snippet.description} |\n`); 32 | } 33 | 34 | const table = tableArr.join(""); 35 | const content = templateContent.replace("{{ SNIPPETS-TABLE }}", table); 36 | const readMe = await format(content, prettierOptions); 37 | await fs.writeFile(readMeFilePath, readMe); 38 | } 39 | 40 | run().catch((err) => { 41 | console.log(err); 42 | process.exit(1); 43 | }); 44 | -------------------------------------------------------------------------------- /scripts/lint.ts: -------------------------------------------------------------------------------- 1 | import * as fs from "fs/promises"; 2 | import * as path from "path"; 3 | 4 | interface Snippet { 5 | prefix: string; 6 | body: string[]; 7 | description: string; 8 | } 9 | 10 | interface SnippetError { 11 | key: string; 12 | message: string; 13 | } 14 | 15 | const errors: SnippetError[] = []; 16 | const snippetsFilePath = path.join(__dirname, "../snippets/snippets.json"); 17 | 18 | function isString(value: unknown): value is string { 19 | return typeof value === "string" && value.length !== 0; 20 | } 21 | 22 | function isCorrectPrefix(value: unknown): value is string { 23 | return isString(value) && value.startsWith("op-"); 24 | } 25 | 26 | async function run() { 27 | const snippetsContent = await fs.readFile(snippetsFilePath, "utf8"); 28 | const snippets = Object.entries(JSON.parse(snippetsContent)); 29 | 30 | for (const [key, snippet] of snippets) { 31 | const { prefix, description } = snippet; 32 | if (!isString(key)) { 33 | errors.push({ 34 | key: `${key}`, 35 | message: `Snippet key should be a string (non-empty).`, 36 | }); 37 | } 38 | 39 | if (!isCorrectPrefix(prefix)) { 40 | errors.push({ 41 | key: `${key}`, 42 | message: `Snippet prefix should be a string (non-empty) that starts with the "op-" prefix. Found: "${prefix}".`, 43 | }); 44 | } 45 | 46 | if (!isString(description)) { 47 | errors.push({ 48 | key: `${key}`, 49 | message: `Description should be a string (non-empty).`, 50 | }); 51 | } 52 | } 53 | 54 | if (errors.length > 0) { 55 | console.log( 56 | `Found ${errors.length} error${errors.length === 1 ? "" : "s"}.\n`, 57 | ); 58 | 59 | for (const error of errors) { 60 | console.error(`[KEY: ${error.key}] ${error.message}`); 61 | } 62 | process.exit(1); 63 | } 64 | } 65 | 66 | run().catch((err) => { 67 | console.log(err); 68 | process.exit(1); 69 | }); 70 | -------------------------------------------------------------------------------- /snippets/snippets.json: -------------------------------------------------------------------------------- 1 | { 2 | "createUnauthenticatedClient": { 3 | "prefix": "op-uc", 4 | "body": [ 5 | "import { createUnauthenticatedClient } from \"@interledger/open-payments\";", 6 | "", 7 | "const client = await createUnauthenticatedClient({});" 8 | ], 9 | "description": "Creates an unauthenticated OP client" 10 | }, 11 | "createAuthenticatedClient": { 12 | "prefix": "op-ac", 13 | "body": [ 14 | "import { createAuthenticatedClient } from \"@interledger/open-payments\";", 15 | "", 16 | "const client = await createAuthenticatedClient({", 17 | "\tkeyId: ${1:\"\"},", 18 | "\twalletAddressUrl: ${2:\"\"},", 19 | "\tprivateKey: ${3:\"\"},", 20 | "});" 21 | ], 22 | "description": "Creates an authenticated OP client" 23 | }, 24 | "getWalletAddressInformation": { 25 | "prefix": "op-wa", 26 | "body": [ 27 | "const walletAddress = await client.walletAddress.get({", 28 | "\turl: ${1:\"\"},", 29 | "});" 30 | ], 31 | "description": "Get wallet address information" 32 | }, 33 | "getWalletAddressKeys": { 34 | "prefix": "op-wa-keys", 35 | "body": [ 36 | "const walletAddressKeys = await client.walletAddress.getKeys({", 37 | "\turl: ${1:\"\"},", 38 | "});" 39 | ], 40 | "description": "Get wallet address keys" 41 | }, 42 | "revokeGrant": { 43 | "prefix": "op-grant-revoke", 44 | "body": [ 45 | "await client.grant.cancel({", 46 | "\taccessToken: ${1:\"\"},", 47 | "\turl: ${2:\"\"},", 48 | "});" 49 | ], 50 | "description": "Revoke a grant" 51 | }, 52 | "requestGrant": { 53 | "prefix": "op-grant", 54 | "body": [ 55 | "import { isPendingGrant } from \"@interledger/open-payments\";", 56 | "", 57 | "const grant = await client.grant.request(", 58 | "\t{", 59 | "\t\turl: ${1:\"\"},", 60 | "\t},", 61 | "\t{", 62 | "\t\taccess_token: {", 63 | "\t\t\taccess: [", 64 | "\t\t\t\t{", 65 | "\t\t\t\t\ttype: \"quote\",", 66 | "\t\t\t\t\tactions: [\"read\", \"read-all\", \"create\"],", 67 | "\t\t\t\t},", 68 | "\t\t\t\t{", 69 | "\t\t\t\t\ttype: \"incoming-payment\",", 70 | "\t\t\t\t\tactions: [\"read\", \"read-all\", \"list\", \"list-all\", \"create\", \"complete\"],", 71 | "\t\t\t\t},", 72 | "\t\t\t\t{", 73 | "\t\t\t\t\tidentifier: ${2:\"\"},", 74 | "\t\t\t\t\ttype: \"outgoing-payment\",", 75 | "\t\t\t\t\tactions: [\"read\", \"read-all\", \"list\", \"list-all\", \"create\"],", 76 | "\t\t\t\t\tlimits: {", 77 | "\t\t\t\t\t\tdebitAmount: {", 78 | "\t\t\t\t\t\t\tvalue: ${3:\"\"},", 79 | "\t\t\t\t\t\t\tassetCode: ${4:\"\"},", 80 | "\t\t\t\t\t\t\tassetScale: ${5:\"\"},", 81 | "\t\t\t\t\t\t},", 82 | "\t\t\t\t\t\treceiveAmount: {", 83 | "\t\t\t\t\t\t\tvalue: ${6:\"\"},", 84 | "\t\t\t\t\t\t\tassetCode: ${7:\"\"},", 85 | "\t\t\t\t\t\t\tassetScale: ${8:\"\"},", 86 | "\t\t\t\t\t\t},", 87 | "\t\t\t\t\t},", 88 | "\t\t\t\t},", 89 | "\t\t\t],", 90 | "\t\t},", 91 | "\t\tinteract: {", 92 | "\t\t\tstart: [\"redirect\"],", 93 | "\t\t\tfinish: {", 94 | "\t\t\t\tmethod: \"redirect\",", 95 | "\t\t\t\turi: ${9:\"\"},", 96 | "\t\t\t\tnonce: ${10:\"\"},", 97 | "\t\t\t},", 98 | "\t\t},", 99 | "\t},", 100 | ");", 101 | "", 102 | "if (!isPendingGrant(grant)) {", 103 | "\tthrow new Error(\"Expected interactive grant\");", 104 | "}" 105 | ], 106 | "description": "Request a grant" 107 | }, 108 | "continueGrant": { 109 | "prefix": "op-grant-continue", 110 | "body": [ 111 | "const grant = await client.grant.continue(", 112 | "\t{", 113 | "\t\taccessToken: ${1:\"\"},", 114 | "\t\turl: ${2:\"\"},", 115 | "\t},", 116 | "\t{", 117 | "\t\tinteract_ref: ${3:\"\"},", 118 | "\t},", 119 | ");" 120 | ], 121 | "description": "Continue a grant" 122 | }, 123 | "requestIncomingPaymentGrant": { 124 | "prefix": "op-grant-ip", 125 | "body": [ 126 | "import { isPendingGrant } from \"@interledger/open-payments\";", 127 | "", 128 | "const grant = await client.grant.request(", 129 | "\t{", 130 | "\t\turl: ${1:\"\"},", 131 | "\t},", 132 | "\t{", 133 | "\t\taccess_token: {", 134 | "\t\t\taccess: [", 135 | "\t\t\t\t{", 136 | "\t\t\t\t\ttype: \"incoming-payment\",", 137 | "\t\t\t\t\tactions: [\"list\", \"list-all\", \"read\", \"read-all\", \"complete\", \"create\"],", 138 | "\t\t\t\t},", 139 | "\t\t\t],", 140 | "\t\t},", 141 | "\t},", 142 | ");", 143 | "", 144 | "if (isPendingGrant(grant)) {", 145 | "\tthrow new Error(\"Expected non-interactive grant\");", 146 | "}" 147 | ], 148 | "description": "Request an incoming payment grant" 149 | }, 150 | "requestOutgoingPaymentGrant": { 151 | "prefix": "op-grant-op", 152 | "body": [ 153 | "import { isPendingGrant } from \"@interledger/open-payments\";", 154 | "", 155 | "const grant = await client.grant.request(", 156 | "\t{", 157 | "\t\turl: ${1:\"\"},", 158 | "\t},", 159 | "\t{", 160 | "\t\taccess_token: {", 161 | "\t\t\taccess: [", 162 | "\t\t\t\t{", 163 | "\t\t\t\t\tidentifier: ${2:\"\"},", 164 | "\t\t\t\t\ttype: \"outgoing-payment\",", 165 | "\t\t\t\t\tactions: [\"list\", \"list-all\", \"read\", \"read-all\", \"create\"],", 166 | "\t\t\t\t\tlimits: {", 167 | "\t\t\t\t\t\tdebitAmount: {", 168 | "\t\t\t\t\t\t\tvalue: ${3:\"\"},", 169 | "\t\t\t\t\t\t\tassetCode: ${4:\"\"},", 170 | "\t\t\t\t\t\t\tassetScale: ${5:\"\"},", 171 | "\t\t\t\t\t\t},", 172 | "\t\t\t\t\t\treceiveAmount: {", 173 | "\t\t\t\t\t\t\tvalue: ${6:\"\"},", 174 | "\t\t\t\t\t\t\tassetCode: ${7:\"\"},", 175 | "\t\t\t\t\t\t\tassetScale: ${8:\"\"},", 176 | "\t\t\t\t\t\t},", 177 | "\t\t\t\t\t},", 178 | "\t\t\t\t},", 179 | "\t\t\t],", 180 | "\t\t},", 181 | "\t\tinteract: {", 182 | "\t\t\tstart: [\"redirect\"],", 183 | "\t\t\tfinish: {", 184 | "\t\t\t\tmethod: \"redirect\",", 185 | "\t\t\t\turi: ${9:\"\"},", 186 | "\t\t\t\tnonce: ${10:\"\"},", 187 | "\t\t\t},", 188 | "\t\t},", 189 | "\t},", 190 | ");", 191 | "", 192 | "if (!isPendingGrant(grant)) {", 193 | "\tthrow new Error(\"Expected interactive grant\");", 194 | "}" 195 | ], 196 | "description": "Request an outgoing payment grant" 197 | }, 198 | "requestQuoteGrant": { 199 | "prefix": "op-grant-quote", 200 | "body": [ 201 | "const grant = await client.grant.request(", 202 | "\t{", 203 | "\t\turl: ${1:\"\"},", 204 | "\t},", 205 | "\t{", 206 | "\t\taccess_token: {", 207 | "\t\t\taccess: [", 208 | "\t\t\t\t{", 209 | "\t\t\t\t\ttype: \"quote\",", 210 | "\t\t\t\t\tactions: [\"create\", \"read\", \"read-all\"],", 211 | "\t\t\t\t},", 212 | "\t\t\t],", 213 | "\t\t},", 214 | "\t},", 215 | ");", 216 | "", 217 | "if (isPendingGrant(grant)) {", 218 | "\tthrow new Error(\"Expected non-interactive grant\");", 219 | "}" 220 | ], 221 | "description": "Request a quote grant" 222 | }, 223 | "revokeToken": { 224 | "prefix": "op-token-revoke", 225 | "body": [ 226 | "await client.token.revoke({", 227 | "\turl: ${1:\"\"},", 228 | "\taccessToken: ${2:\"\"},", 229 | "});" 230 | ], 231 | "description": "Revoke a token" 232 | }, 233 | "rotateToken": { 234 | "prefix": "op-token-rotate", 235 | "body": [ 236 | "const token = await client.token.rotate({", 237 | "\turl: ${1:\"\"},", 238 | "\taccessToken: ${2:\"\"},", 239 | "});" 240 | ], 241 | "description": "Rotate a token" 242 | }, 243 | "createQuote": { 244 | "prefix": "op-quote-create", 245 | "body": [ 246 | "const quote = await client.quote.create(", 247 | "\t{", 248 | "\t\turl: ${1:\"\"},", 249 | "\t\taccessToken: ${2:\"\"},", 250 | "\t},", 251 | "\t{", 252 | "\t\tmethod: ${3:\"\"},", 253 | "\t\twalletAddress: ${4:\"\"},", 254 | "\t\treceiver: ${5:\"\"},", 255 | "\t},", 256 | ");" 257 | ], 258 | "description": "Create a quote without receive amount and debit amount" 259 | }, 260 | "createQuoteWithReceiveAmount": { 261 | "prefix": "op-quote-create-ra", 262 | "body": [ 263 | "const quote = await client.quote.create(", 264 | "\t{", 265 | "\t\turl: ${1:\"\"},", 266 | "\t\taccessToken: ${2:\"\"},", 267 | "\t},", 268 | "\t{", 269 | "\t\tmethod: ${3:\"\"},", 270 | "\t\twalletAddress: ${4:\"\"},", 271 | "\t\treceiver: ${5:\"\"},", 272 | "\t\treceiveAmount: {", 273 | "\t\t\tvalue: ${6:\"\"},", 274 | "\t\t\tassetCode: ${7:\"\"},", 275 | "\t\t\tassetScale: ${8:\"\"},", 276 | "\t\t},", 277 | "\t},", 278 | ");" 279 | ], 280 | "description": "Create a quote with receive amount" 281 | }, 282 | "createQuoteWithDebitAmount": { 283 | "prefix": "op-quote-create-da", 284 | "body": [ 285 | "const quote = await client.quote.create(", 286 | "\t{", 287 | "\t\turl: ${1:\"\"},", 288 | "\t\taccessToken: ${2:\"\"},", 289 | "\t},", 290 | "\t{", 291 | "\t\tmethod: ${3:\"\"},", 292 | "\t\twalletAddress: ${4:\"\"},", 293 | "\t\treceiver: ${5:\"\"},", 294 | "\t\tdebitAmount: {", 295 | "\t\t\tvalue: ${5:\"\"},", 296 | "\t\t\tassetCode: ${6:\"\"},", 297 | "\t\t\tassetScale: ${7:\"\"},", 298 | "\t\t},", 299 | "\t},", 300 | ");" 301 | ], 302 | "description": "Create a quote with debit amount" 303 | }, 304 | "getQuote": { 305 | "prefix": "op-quote-get", 306 | "body": [ 307 | "const quote = await client.quote.get({", 308 | "\turl: ${1:\"\"},", 309 | "\taccessToken: ${2:\"\"},", 310 | "});" 311 | ], 312 | "description": "Get a quote" 313 | }, 314 | "createIncomingPayment": { 315 | "prefix": "op-ip-create", 316 | "body": [ 317 | "const incomingPayment = await client.incomingPayment.create(", 318 | "\t{", 319 | "\t\turl: ${1:\"\"},", 320 | "\t\taccessToken: ${2:\"\"},", 321 | "\t},", 322 | "\t{", 323 | "\t\twalletAddress: ${3:\"\"},", 324 | "\t\tmetadata: {},", 325 | "\t\texpiresAt: new Date().toISOString(),", 326 | "\t},", 327 | ");" 328 | ], 329 | "description": "Create an incoming payment without incoming amount" 330 | }, 331 | "createIncomingPaymentWithIncomingAmount": { 332 | "prefix": "op-ip-create-ia", 333 | "body": [ 334 | "const incomingPayment = await client.incomingPayment.create(", 335 | "\t{", 336 | "\t\turl: ${1:\"\"},", 337 | "\t\taccessToken: ${2:\"\"},", 338 | "\t},", 339 | "\t{", 340 | "\t\twalletAddress: ${3:\"\"},", 341 | "\t\tincomingAmount: {", 342 | "\t\t\tvalue: ${3:\"\"},", 343 | "\t\t\tassetCode: ${4:\"\"},", 344 | "\t\t\tassetScale: ${5:\"\"},", 345 | "\t\t},", 346 | "\t\tmetadata: {},", 347 | "\t\texpiresAt: new Date().toISOString(),", 348 | "\t},", 349 | ");" 350 | ], 351 | "description": "Create an incoming payment with incoming amount" 352 | }, 353 | "completeIncomingPayment": { 354 | "prefix": "op-ip-complete", 355 | "body": [ 356 | "const incomingPayment = await client.incomingPayment.complete({", 357 | "\turl: ${1:\"\"},", 358 | "\taccessToken: ${2:\"\"},", 359 | "});" 360 | ], 361 | "description": "Complete an incoming payment" 362 | }, 363 | "getIncomingPayment": { 364 | "prefix": "op-ip-get", 365 | "body": [ 366 | "const incomingPayment = await client.incomingPayment.get({", 367 | "\turl: ${1:\"\"},", 368 | "\taccessToken: ${2:\"\"},", 369 | "});" 370 | ], 371 | "description": "Get an incoming payment" 372 | }, 373 | "listIncomingPayments": { 374 | "prefix": "op-ip-list", 375 | "body": [ 376 | "const incomingPayments = await client.incomingPayment.list(", 377 | "\t{", 378 | "\t\turl: ${1:\"\"},", 379 | "\t\taccessToken: ${2:\"\"},", 380 | "\t\twalletAddress: ${2:\"\"},", 381 | "\t},", 382 | "\t{", 383 | "\t\tfirst: ${3:10},", 384 | "\t\tlast: ${4:undefined},", 385 | "\t\tcursor: ${5:undefined},", 386 | "\t},", 387 | ");" 388 | ], 389 | "description": "List incoming payments" 390 | }, 391 | "createOutgoingPayment": { 392 | "prefix": "op-op-create", 393 | "body": [ 394 | "const outgoingPayment = await client.outgoingPayment.create(", 395 | "\t{", 396 | "\t\turl: ${1:\"\"},", 397 | "\t\taccessToken: ${2:\"\"},", 398 | "\t},", 399 | "\t{", 400 | "\t\twalletAddress: ${3:\"\"},", 401 | "\t\tmetadata: {},", 402 | "\t\tquoteId: ${4:\"\"},", 403 | "\t},", 404 | ");" 405 | ], 406 | "description": "Create an outgoing payment" 407 | }, 408 | "getOutgoingPayment": { 409 | "prefix": "op-op-get", 410 | "body": [ 411 | "const outgoingPayment = await client.outgoingPayment.get({", 412 | "\turl: ${1:\"\"},", 413 | "\taccessToken: ${2:\"\"},", 414 | "});" 415 | ], 416 | "description": "Get an outgoing payment" 417 | }, 418 | "listOutgoingPayments": { 419 | "prefix": "op-op-list", 420 | "body": [ 421 | "const outgoingPayments = await client.outgoingPayment.list(", 422 | "\t{", 423 | "\t\turl: ${1:\"\"},", 424 | "\t\taccessToken: ${2:\"\"},", 425 | "\t\twalletAddress: ${2:\"\"},", 426 | "\t},", 427 | "\t{", 428 | "\t\tfirst: ${3:10},", 429 | "\t\tlast: ${4:undefined},", 430 | "\t\tcursor: ${5:undefined},", 431 | "\t},", 432 | ");" 433 | ], 434 | "description": "List outgoing payments" 435 | } 436 | } 437 | -------------------------------------------------------------------------------- /templates/readme.md: -------------------------------------------------------------------------------- 1 |

2 |

3 | Logo 4 |

5 |

Open Payments SDK Snippets

6 |

7 | Updated for Open Payments Node SDK version 6 8 |

9 |
10 |
11 |

12 | Usage 13 |

14 |

15 | 16 | ## Installation 17 | 18 | 1. Launch _Quick Open_: 19 | 20 | - Linux & Windows: `Ctrl+P` 21 | - macOS: `⌘+P` 22 | 23 | 2. Paste the following command and press `Enter`: 24 | 25 | ```shell 26 | ext install open-payments-snippets-vscode 27 | ``` 28 | 29 | 3. Choose the extension (make sure the author is `Interledger Foundation`). 30 | 31 | 4. Reload Visual Studio Code 32 | 33 | ## Usage 34 | 35 | Every Open Payments SDK snippet starts with the "op-" prefix: 36 | 37 | - `op-pp` 38 | - `op-grant-continue` 39 | 40 | You don't need to type any dashes or the full keyword. You can use some alternatives. For example: 41 | 42 | - `ogc` -> `op-grant-continue` snippet 43 | - `ograntc` -> `op-grant-continue` snippet 44 | 45 | ## Snippets 46 | 47 | {{ SNIPPETS-TABLE }} 48 | 49 | ## Feedback and issues 50 | 51 | If you encounter any issues or have feedback, please open an issue on 52 | the [GitHub repository](https://github.com/interledger/open-payments-snippets-vscode/issues). We appreciate your feedback 53 | and contributions! 54 | 55 | ## License 56 | 57 | This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details. 58 | --------------------------------------------------------------------------------