├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .husky └── pre-commit ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── package.json ├── pnpm-lock.yaml ├── renovate.json ├── src ├── athena-query.ts ├── helper.ts └── index.ts ├── test └── index.test.ts └── tsconfig.json /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "" 5 | labels: "" 6 | assignees: "" 7 | --- 8 | 9 | **Describe the bug** 10 | A clear and concise description of what the bug is. 11 | 12 | **To Reproduce** 13 | Steps to reproduce the behavior: 14 | 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | 28 | - OS: [e.g. iOS] 29 | - Browser [e.g. chrome, safari] 30 | - Version [e.g. 22] 31 | 32 | **Smartphone (please complete the following information):** 33 | 34 | - Device: [e.g. iPhone6] 35 | - OS: [e.g. iOS8.1] 36 | - Browser [e.g. stock browser, safari] 37 | - Version [e.g. 22] 38 | 39 | **Additional context** 40 | Add any other context about the problem here. 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "" 5 | labels: "" 6 | assignees: "" 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 11 | 12 | **Describe the solution you'd like** 13 | A clear and concise description of what you want to happen. 14 | 15 | **Describe alternatives you've considered** 16 | A clear and concise description of any alternative solutions or features you've considered. 17 | 18 | **Additional context** 19 | Add any other context or screenshots about the feature request here. 20 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request_target: 8 | jobs: 9 | test: 10 | name: Test for Node.js ${{ matrix.node-version }} 11 | runs-on: ubuntu-latest 12 | strategy: 13 | fail-fast: false 14 | matrix: 15 | node-version: 16 | - 18 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v4 20 | - name: Setup Node 21 | uses: actions/setup-node@v4 22 | with: 23 | node-version: ${{ matrix.node-version }} 24 | - uses: pnpm/action-setup@v2 25 | name: Install pnpm 26 | id: pnpm-install 27 | with: 28 | version: 8 29 | run_install: false 30 | - run: pnpm install 31 | - run: pnpm test run 32 | - run: pnpm build 33 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | bumpType: 7 | description: Bump Type 8 | required: true 9 | type: choice 10 | options: 11 | - patch 12 | - minor 13 | - major 14 | 15 | jobs: 16 | publish: 17 | runs-on: ubuntu-latest 18 | permissions: 19 | contents: write 20 | steps: 21 | - name: Checkout 22 | uses: actions/checkout@v4 23 | - name: Setup Node 24 | uses: actions/setup-node@v4 25 | with: 26 | node-version: 18 27 | registry-url: "https://registry.npmjs.org" 28 | - uses: pnpm/action-setup@v2 29 | name: Install pnpm 30 | id: pnpm-install 31 | with: 32 | version: 8 33 | run_install: false 34 | - run: pnpm install 35 | - run: pnpm test run 36 | - run: pnpm build 37 | - name: Configure git user 38 | run: | 39 | git config user.email "41898282+github-actions[bot]@users.noreply.github.com" 40 | git config user.name "github-actions[bot]" 41 | - name: Bump package.json version 42 | id: bump 43 | run: | 44 | pnpm version ${{ github.event.inputs.bumpType }} 45 | echo "VERSION=v$(cat package.json | jq -r '.version')" >> $GITHUB_OUTPUT 46 | git push 47 | git push --tag 48 | env: 49 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 50 | - name: Release 51 | run: | 52 | pnpm publish 53 | env: 54 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 55 | 56 | - name: Get the version 57 | id: get_version 58 | run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/} 59 | - name: Get commit summary 60 | id: get_commit_summary 61 | run: | 62 | PREVIOUS_TAG=$(git tag --sort=-creatordate | sed -n 2p) 63 | echo "PREVIOUS_TAG: $PREVIOUS_TAG" 64 | COMMIT_SUMMARY="$(git log --oneline --pretty=tformat:"%h %s" $PREVIOUS_TAG..${{ github.ref }})" 65 | COMMIT_SUMMARY="${COMMIT_SUMMARY//$'\n'/'%0A'}" 66 | echo ::set-output name=COMMIT_SUMMARY::$COMMIT_SUMMARY 67 | - name: Create Release 68 | uses: actions/create-release@v1 69 | env: 70 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 71 | with: 72 | tag_name: ${{ steps.get_version.outputs.VERSION }} 73 | release_name: Release ${{ steps.get_version.outputs.VERSION }} 74 | body: | 75 | ${{ steps.get_commit_summary.outputs.COMMIT_SUMMARY }} 76 | draft: true 77 | prerelease: true 78 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | logs 2 | *.log 3 | npm-debug.log* 4 | 5 | coverage 6 | 7 | node_modules/ 8 | 9 | lib/*.js 10 | test/*.js 11 | 12 | dist 13 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx concurrently "pnpm:test run" 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Classmethod, Inc. 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 | # Athena-Query 2 | 3 | ![Release](https://github.com/classmethod/athena-query/workflows/release/badge.svg) 4 | ![CI](https://github.com/classmethod/athena-query/workflows/CI/badge.svg) 5 | [![npm version](https://img.shields.io/npm/v/@classmethod/athena-query.svg)](https://www.npmjs.com/@classmethod/athena-query) 6 | [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/classmethod/athena-query/blob/main/LICENSE) 7 | 8 | **Athena-Query** provide simple interface to get athena query results. 9 | 10 | Athena-Query was inspired and forked from [athena-express](https://github.com/ghdna/athena-express#readme). 11 | 12 | > **Warning** 13 | > Athena-Query support aws-sdk v3 only. So if you use aws-sdk v2, we recommend to use [athena-express](https://github.com/ghdna/athena-express#readme). 14 | 15 | ## Installation 16 | 17 | ``` 18 | npm install @classmethod/athena-query @aws-sdk/client-athena 19 | ``` 20 | 21 | ``` 22 | yarn add @classmethod/athena-query @aws-sdk/client-athena 23 | ``` 24 | 25 | ## Usage 26 | 27 | ### Basic Usage 28 | 29 | Athena-Query provide `query()` method as [async generator function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function*). 30 | So we can use it with `for await () {}`, 31 | 32 | ```ts 33 | import { Athena } from "@aws-sdk/client-athena"; 34 | import AthenaQuery from "@classmethod/athena-query"; 35 | 36 | const athena = new Athena({}); 37 | const athenaQuery = new AthenaQuery(athena); 38 | 39 | for await (const item of athenaQuery.query("SELECT * FROM waf_logs;")) { 40 | console.log(item); // You can get all items across pagination. 41 | } 42 | ``` 43 | 44 | And if you break loop out, Athena-Query don't call unnecessary pages of `get-query-result` api. 45 | 46 | If you want to reduce the size of the queried data rather than the retrieved data, you can use the [LIMIT clause](https://docs.aws.amazon.com/athena/latest/ug/select.html#select-parameters). 47 | 48 | ### Options 49 | 50 | When you initialize AthenaQuery class, you can pass options to specify the query target. 51 | 52 | ```ts 53 | const athenaQuery = new AthenaQuery(athena, { 54 | db: "test-db", 55 | workgroup: "test-workgroup", 56 | catalog: "test-catalog", 57 | outputLocation: "s3://path/to/query/bucket/", 58 | }); 59 | ``` 60 | 61 | When you query to Athena, you can pass options for query. 62 | 63 | ```ts 64 | const resultGen = athenaQuery.query( 65 | ` 66 | SELECT * FROM waf_logs 67 | WHERE name = ? AND groupId = ? AND score > ?; 68 | `, 69 | { 70 | executionParameters: ["test", 123, 456n], 71 | }, 72 | ); 73 | ``` 74 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@classmethod/athena-query", 3 | "version": "1.4.0", 4 | "description": "Athena-Query makes it easier to execute SQL queries on Amazon Athena by consolidating & abstracting several methods in the AWS SDK", 5 | "main": "./dist/index.cjs", 6 | "module": "./dist/index.mjs", 7 | "types": "./dist/index.d.ts", 8 | "author": "Classmethod, Inc.", 9 | "license": "MIT", 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/classmethod/athena-query.git" 13 | }, 14 | "bugs": { 15 | "url": "https://github.com/classmethod/athena-query/issues" 16 | }, 17 | "homepage": "https://github.com/classmethod/athena-query#readme", 18 | "keywords": [ 19 | "aws", 20 | "athena", 21 | "amazon", 22 | "web", 23 | "services", 24 | "sql", 25 | "database" 26 | ], 27 | "files": [ 28 | "dist", 29 | "lib" 30 | ], 31 | "exports": { 32 | ".": { 33 | "require": { 34 | "types": "./dist/index.d.cts", 35 | "default": "./dist/index.cjs" 36 | }, 37 | "import": { 38 | "types": "./dist/index.d.mts", 39 | "default": "./dist/index.mjs" 40 | } 41 | } 42 | }, 43 | "scripts": { 44 | "build": "unbuild", 45 | "test": "vitest", 46 | "prepare": "husky install" 47 | }, 48 | "devDependencies": { 49 | "@aws-sdk/client-athena": "^3.540.0", 50 | "@types/node": "^20.12.2", 51 | "aws-sdk-client-mock": "^4.0.0", 52 | "concurrently": "^8.2.2", 53 | "husky": "^9.0.11", 54 | "prettier": "^3.2.5", 55 | "typescript": "^5.4.3", 56 | "unbuild": "^2.0.0", 57 | "vitest": "^1.4.0" 58 | }, 59 | "peerDependencies": { 60 | "@aws-sdk/client-athena": "^3.x.x" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | devDependencies: 8 | '@aws-sdk/client-athena': 9 | specifier: ^3.540.0 10 | version: 3.540.0 11 | '@types/node': 12 | specifier: ^20.12.2 13 | version: 20.12.2 14 | aws-sdk-client-mock: 15 | specifier: ^4.0.0 16 | version: 4.0.0 17 | concurrently: 18 | specifier: ^8.2.2 19 | version: 8.2.2 20 | husky: 21 | specifier: ^9.0.11 22 | version: 9.0.11 23 | prettier: 24 | specifier: ^3.2.5 25 | version: 3.2.5 26 | typescript: 27 | specifier: ^5.4.3 28 | version: 5.4.3 29 | unbuild: 30 | specifier: ^2.0.0 31 | version: 2.0.0(typescript@5.4.3) 32 | vitest: 33 | specifier: ^1.4.0 34 | version: 1.4.0(@types/node@20.12.2) 35 | 36 | packages: 37 | 38 | /@ampproject/remapping@2.2.1: 39 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 40 | engines: {node: '>=6.0.0'} 41 | dependencies: 42 | '@jridgewell/gen-mapping': 0.3.3 43 | '@jridgewell/trace-mapping': 0.3.20 44 | dev: true 45 | 46 | /@aws-crypto/crc32@3.0.0: 47 | resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} 48 | dependencies: 49 | '@aws-crypto/util': 3.0.0 50 | '@aws-sdk/types': 3.535.0 51 | tslib: 1.14.1 52 | dev: true 53 | 54 | /@aws-crypto/ie11-detection@3.0.0: 55 | resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} 56 | dependencies: 57 | tslib: 1.14.1 58 | dev: true 59 | 60 | /@aws-crypto/sha256-browser@3.0.0: 61 | resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} 62 | dependencies: 63 | '@aws-crypto/ie11-detection': 3.0.0 64 | '@aws-crypto/sha256-js': 3.0.0 65 | '@aws-crypto/supports-web-crypto': 3.0.0 66 | '@aws-crypto/util': 3.0.0 67 | '@aws-sdk/types': 3.535.0 68 | '@aws-sdk/util-locate-window': 3.535.0 69 | '@aws-sdk/util-utf8-browser': 3.259.0 70 | tslib: 1.14.1 71 | dev: true 72 | 73 | /@aws-crypto/sha256-js@3.0.0: 74 | resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} 75 | dependencies: 76 | '@aws-crypto/util': 3.0.0 77 | '@aws-sdk/types': 3.535.0 78 | tslib: 1.14.1 79 | dev: true 80 | 81 | /@aws-crypto/supports-web-crypto@3.0.0: 82 | resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} 83 | dependencies: 84 | tslib: 1.14.1 85 | dev: true 86 | 87 | /@aws-crypto/util@3.0.0: 88 | resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} 89 | dependencies: 90 | '@aws-sdk/types': 3.535.0 91 | '@aws-sdk/util-utf8-browser': 3.259.0 92 | tslib: 1.14.1 93 | dev: true 94 | 95 | /@aws-sdk/client-athena@3.540.0: 96 | resolution: {integrity: sha512-LVhAp+7s8Cpz5NdcEw3Wmc1XHMTsjC2eFNHwKLDOWQdMt8XGFluYEcmO4s0Xg6n2q1oLkChBE+bIFEqNKpAe6Q==} 97 | engines: {node: '>=14.0.0'} 98 | dependencies: 99 | '@aws-crypto/sha256-browser': 3.0.0 100 | '@aws-crypto/sha256-js': 3.0.0 101 | '@aws-sdk/client-sts': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 102 | '@aws-sdk/core': 3.535.0 103 | '@aws-sdk/credential-provider-node': 3.540.0 104 | '@aws-sdk/middleware-host-header': 3.535.0 105 | '@aws-sdk/middleware-logger': 3.535.0 106 | '@aws-sdk/middleware-recursion-detection': 3.535.0 107 | '@aws-sdk/middleware-user-agent': 3.540.0 108 | '@aws-sdk/region-config-resolver': 3.535.0 109 | '@aws-sdk/types': 3.535.0 110 | '@aws-sdk/util-endpoints': 3.540.0 111 | '@aws-sdk/util-user-agent-browser': 3.535.0 112 | '@aws-sdk/util-user-agent-node': 3.535.0 113 | '@smithy/config-resolver': 2.2.0 114 | '@smithy/core': 1.4.1 115 | '@smithy/fetch-http-handler': 2.5.0 116 | '@smithy/hash-node': 2.2.0 117 | '@smithy/invalid-dependency': 2.2.0 118 | '@smithy/middleware-content-length': 2.2.0 119 | '@smithy/middleware-endpoint': 2.5.0 120 | '@smithy/middleware-retry': 2.3.0 121 | '@smithy/middleware-serde': 2.3.0 122 | '@smithy/middleware-stack': 2.2.0 123 | '@smithy/node-config-provider': 2.3.0 124 | '@smithy/node-http-handler': 2.5.0 125 | '@smithy/protocol-http': 3.3.0 126 | '@smithy/smithy-client': 2.5.0 127 | '@smithy/types': 2.12.0 128 | '@smithy/url-parser': 2.2.0 129 | '@smithy/util-base64': 2.3.0 130 | '@smithy/util-body-length-browser': 2.2.0 131 | '@smithy/util-body-length-node': 2.3.0 132 | '@smithy/util-defaults-mode-browser': 2.2.0 133 | '@smithy/util-defaults-mode-node': 2.3.0 134 | '@smithy/util-endpoints': 1.2.0 135 | '@smithy/util-middleware': 2.2.0 136 | '@smithy/util-retry': 2.2.0 137 | '@smithy/util-utf8': 2.3.0 138 | tslib: 2.6.2 139 | uuid: 9.0.1 140 | transitivePeerDependencies: 141 | - aws-crt 142 | dev: true 143 | 144 | /@aws-sdk/client-sso-oidc@3.540.0(@aws-sdk/credential-provider-node@3.540.0): 145 | resolution: {integrity: sha512-LZYK0lBRQK8D8M3Sqc96XiXkAV2v70zhTtF6weyzEpgwxZMfSuFJjs0jFyhaeZBZbZv7BBghIdhJ5TPavNxGMQ==} 146 | engines: {node: '>=14.0.0'} 147 | peerDependencies: 148 | '@aws-sdk/credential-provider-node': ^3.540.0 149 | dependencies: 150 | '@aws-crypto/sha256-browser': 3.0.0 151 | '@aws-crypto/sha256-js': 3.0.0 152 | '@aws-sdk/client-sts': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 153 | '@aws-sdk/core': 3.535.0 154 | '@aws-sdk/credential-provider-node': 3.540.0 155 | '@aws-sdk/middleware-host-header': 3.535.0 156 | '@aws-sdk/middleware-logger': 3.535.0 157 | '@aws-sdk/middleware-recursion-detection': 3.535.0 158 | '@aws-sdk/middleware-user-agent': 3.540.0 159 | '@aws-sdk/region-config-resolver': 3.535.0 160 | '@aws-sdk/types': 3.535.0 161 | '@aws-sdk/util-endpoints': 3.540.0 162 | '@aws-sdk/util-user-agent-browser': 3.535.0 163 | '@aws-sdk/util-user-agent-node': 3.535.0 164 | '@smithy/config-resolver': 2.2.0 165 | '@smithy/core': 1.4.1 166 | '@smithy/fetch-http-handler': 2.5.0 167 | '@smithy/hash-node': 2.2.0 168 | '@smithy/invalid-dependency': 2.2.0 169 | '@smithy/middleware-content-length': 2.2.0 170 | '@smithy/middleware-endpoint': 2.5.0 171 | '@smithy/middleware-retry': 2.3.0 172 | '@smithy/middleware-serde': 2.3.0 173 | '@smithy/middleware-stack': 2.2.0 174 | '@smithy/node-config-provider': 2.3.0 175 | '@smithy/node-http-handler': 2.5.0 176 | '@smithy/protocol-http': 3.3.0 177 | '@smithy/smithy-client': 2.5.0 178 | '@smithy/types': 2.12.0 179 | '@smithy/url-parser': 2.2.0 180 | '@smithy/util-base64': 2.3.0 181 | '@smithy/util-body-length-browser': 2.2.0 182 | '@smithy/util-body-length-node': 2.3.0 183 | '@smithy/util-defaults-mode-browser': 2.2.0 184 | '@smithy/util-defaults-mode-node': 2.3.0 185 | '@smithy/util-endpoints': 1.2.0 186 | '@smithy/util-middleware': 2.2.0 187 | '@smithy/util-retry': 2.2.0 188 | '@smithy/util-utf8': 2.3.0 189 | tslib: 2.6.2 190 | transitivePeerDependencies: 191 | - aws-crt 192 | dev: true 193 | 194 | /@aws-sdk/client-sso@3.540.0: 195 | resolution: {integrity: sha512-rrQZMuw4sxIo3eyAUUzPQRA336mPRnrAeSlSdVHBKZD8Fjvoy0lYry2vNhkPLpFZLso1J66KRyuIv4LzRR3v1Q==} 196 | engines: {node: '>=14.0.0'} 197 | dependencies: 198 | '@aws-crypto/sha256-browser': 3.0.0 199 | '@aws-crypto/sha256-js': 3.0.0 200 | '@aws-sdk/core': 3.535.0 201 | '@aws-sdk/middleware-host-header': 3.535.0 202 | '@aws-sdk/middleware-logger': 3.535.0 203 | '@aws-sdk/middleware-recursion-detection': 3.535.0 204 | '@aws-sdk/middleware-user-agent': 3.540.0 205 | '@aws-sdk/region-config-resolver': 3.535.0 206 | '@aws-sdk/types': 3.535.0 207 | '@aws-sdk/util-endpoints': 3.540.0 208 | '@aws-sdk/util-user-agent-browser': 3.535.0 209 | '@aws-sdk/util-user-agent-node': 3.535.0 210 | '@smithy/config-resolver': 2.2.0 211 | '@smithy/core': 1.4.1 212 | '@smithy/fetch-http-handler': 2.5.0 213 | '@smithy/hash-node': 2.2.0 214 | '@smithy/invalid-dependency': 2.2.0 215 | '@smithy/middleware-content-length': 2.2.0 216 | '@smithy/middleware-endpoint': 2.5.0 217 | '@smithy/middleware-retry': 2.3.0 218 | '@smithy/middleware-serde': 2.3.0 219 | '@smithy/middleware-stack': 2.2.0 220 | '@smithy/node-config-provider': 2.3.0 221 | '@smithy/node-http-handler': 2.5.0 222 | '@smithy/protocol-http': 3.3.0 223 | '@smithy/smithy-client': 2.5.0 224 | '@smithy/types': 2.12.0 225 | '@smithy/url-parser': 2.2.0 226 | '@smithy/util-base64': 2.3.0 227 | '@smithy/util-body-length-browser': 2.2.0 228 | '@smithy/util-body-length-node': 2.3.0 229 | '@smithy/util-defaults-mode-browser': 2.2.0 230 | '@smithy/util-defaults-mode-node': 2.3.0 231 | '@smithy/util-endpoints': 1.2.0 232 | '@smithy/util-middleware': 2.2.0 233 | '@smithy/util-retry': 2.2.0 234 | '@smithy/util-utf8': 2.3.0 235 | tslib: 2.6.2 236 | transitivePeerDependencies: 237 | - aws-crt 238 | dev: true 239 | 240 | /@aws-sdk/client-sts@3.540.0(@aws-sdk/credential-provider-node@3.540.0): 241 | resolution: {integrity: sha512-ITHUQxvpqfQX6obfpIi3KYGzZYfe/I5Ixjfxoi5lB7ISCtmxqObKB1fzD93wonkMJytJ7LUO8panZl/ojiJ1uw==} 242 | engines: {node: '>=14.0.0'} 243 | peerDependencies: 244 | '@aws-sdk/credential-provider-node': ^3.540.0 245 | dependencies: 246 | '@aws-crypto/sha256-browser': 3.0.0 247 | '@aws-crypto/sha256-js': 3.0.0 248 | '@aws-sdk/core': 3.535.0 249 | '@aws-sdk/credential-provider-node': 3.540.0 250 | '@aws-sdk/middleware-host-header': 3.535.0 251 | '@aws-sdk/middleware-logger': 3.535.0 252 | '@aws-sdk/middleware-recursion-detection': 3.535.0 253 | '@aws-sdk/middleware-user-agent': 3.540.0 254 | '@aws-sdk/region-config-resolver': 3.535.0 255 | '@aws-sdk/types': 3.535.0 256 | '@aws-sdk/util-endpoints': 3.540.0 257 | '@aws-sdk/util-user-agent-browser': 3.535.0 258 | '@aws-sdk/util-user-agent-node': 3.535.0 259 | '@smithy/config-resolver': 2.2.0 260 | '@smithy/core': 1.4.1 261 | '@smithy/fetch-http-handler': 2.5.0 262 | '@smithy/hash-node': 2.2.0 263 | '@smithy/invalid-dependency': 2.2.0 264 | '@smithy/middleware-content-length': 2.2.0 265 | '@smithy/middleware-endpoint': 2.5.0 266 | '@smithy/middleware-retry': 2.3.0 267 | '@smithy/middleware-serde': 2.3.0 268 | '@smithy/middleware-stack': 2.2.0 269 | '@smithy/node-config-provider': 2.3.0 270 | '@smithy/node-http-handler': 2.5.0 271 | '@smithy/protocol-http': 3.3.0 272 | '@smithy/smithy-client': 2.5.0 273 | '@smithy/types': 2.12.0 274 | '@smithy/url-parser': 2.2.0 275 | '@smithy/util-base64': 2.3.0 276 | '@smithy/util-body-length-browser': 2.2.0 277 | '@smithy/util-body-length-node': 2.3.0 278 | '@smithy/util-defaults-mode-browser': 2.2.0 279 | '@smithy/util-defaults-mode-node': 2.3.0 280 | '@smithy/util-endpoints': 1.2.0 281 | '@smithy/util-middleware': 2.2.0 282 | '@smithy/util-retry': 2.2.0 283 | '@smithy/util-utf8': 2.3.0 284 | tslib: 2.6.2 285 | transitivePeerDependencies: 286 | - aws-crt 287 | dev: true 288 | 289 | /@aws-sdk/core@3.535.0: 290 | resolution: {integrity: sha512-+Yusa9HziuaEDta1UaLEtMAtmgvxdxhPn7jgfRY6PplqAqgsfa5FR83sxy5qr2q7xjQTwHtV4MjQVuOjG9JsLw==} 291 | engines: {node: '>=14.0.0'} 292 | dependencies: 293 | '@smithy/core': 1.4.1 294 | '@smithy/protocol-http': 3.3.0 295 | '@smithy/signature-v4': 2.2.0 296 | '@smithy/smithy-client': 2.5.0 297 | '@smithy/types': 2.12.0 298 | fast-xml-parser: 4.2.5 299 | tslib: 2.6.2 300 | dev: true 301 | 302 | /@aws-sdk/credential-provider-env@3.535.0: 303 | resolution: {integrity: sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==} 304 | engines: {node: '>=14.0.0'} 305 | dependencies: 306 | '@aws-sdk/types': 3.535.0 307 | '@smithy/property-provider': 2.2.0 308 | '@smithy/types': 2.12.0 309 | tslib: 2.6.2 310 | dev: true 311 | 312 | /@aws-sdk/credential-provider-http@3.535.0: 313 | resolution: {integrity: sha512-kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw==} 314 | engines: {node: '>=14.0.0'} 315 | dependencies: 316 | '@aws-sdk/types': 3.535.0 317 | '@smithy/fetch-http-handler': 2.5.0 318 | '@smithy/node-http-handler': 2.5.0 319 | '@smithy/property-provider': 2.2.0 320 | '@smithy/protocol-http': 3.3.0 321 | '@smithy/smithy-client': 2.5.0 322 | '@smithy/types': 2.12.0 323 | '@smithy/util-stream': 2.2.0 324 | tslib: 2.6.2 325 | dev: true 326 | 327 | /@aws-sdk/credential-provider-ini@3.540.0(@aws-sdk/credential-provider-node@3.540.0): 328 | resolution: {integrity: sha512-igN/RbsnulIBwqXbwsWmR3srqmtbPF1dm+JteGvUY31FW65fTVvWvSr945Y/cf1UbhPmIQXntlsqESqpkhTHwg==} 329 | engines: {node: '>=14.0.0'} 330 | dependencies: 331 | '@aws-sdk/client-sts': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 332 | '@aws-sdk/credential-provider-env': 3.535.0 333 | '@aws-sdk/credential-provider-process': 3.535.0 334 | '@aws-sdk/credential-provider-sso': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 335 | '@aws-sdk/credential-provider-web-identity': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 336 | '@aws-sdk/types': 3.535.0 337 | '@smithy/credential-provider-imds': 2.3.0 338 | '@smithy/property-provider': 2.2.0 339 | '@smithy/shared-ini-file-loader': 2.4.0 340 | '@smithy/types': 2.12.0 341 | tslib: 2.6.2 342 | transitivePeerDependencies: 343 | - '@aws-sdk/credential-provider-node' 344 | - aws-crt 345 | dev: true 346 | 347 | /@aws-sdk/credential-provider-node@3.540.0: 348 | resolution: {integrity: sha512-HKQZJbLHlrHX9A0B1poiYNXIIQfy8whTjuosTCYKPDBhhUyVAQfxy/KG726j0v43IhaNPLgTGZCJve4hAsazSw==} 349 | engines: {node: '>=14.0.0'} 350 | dependencies: 351 | '@aws-sdk/credential-provider-env': 3.535.0 352 | '@aws-sdk/credential-provider-http': 3.535.0 353 | '@aws-sdk/credential-provider-ini': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 354 | '@aws-sdk/credential-provider-process': 3.535.0 355 | '@aws-sdk/credential-provider-sso': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 356 | '@aws-sdk/credential-provider-web-identity': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 357 | '@aws-sdk/types': 3.535.0 358 | '@smithy/credential-provider-imds': 2.3.0 359 | '@smithy/property-provider': 2.2.0 360 | '@smithy/shared-ini-file-loader': 2.4.0 361 | '@smithy/types': 2.12.0 362 | tslib: 2.6.2 363 | transitivePeerDependencies: 364 | - aws-crt 365 | dev: true 366 | 367 | /@aws-sdk/credential-provider-process@3.535.0: 368 | resolution: {integrity: sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==} 369 | engines: {node: '>=14.0.0'} 370 | dependencies: 371 | '@aws-sdk/types': 3.535.0 372 | '@smithy/property-provider': 2.2.0 373 | '@smithy/shared-ini-file-loader': 2.4.0 374 | '@smithy/types': 2.12.0 375 | tslib: 2.6.2 376 | dev: true 377 | 378 | /@aws-sdk/credential-provider-sso@3.540.0(@aws-sdk/credential-provider-node@3.540.0): 379 | resolution: {integrity: sha512-tKkFqK227LF5ajc5EL6asXS32p3nkofpP8G7NRpU7zOEOQCg01KUc4JRX+ItI0T007CiN1J19yNoFqHLT/SqHg==} 380 | engines: {node: '>=14.0.0'} 381 | dependencies: 382 | '@aws-sdk/client-sso': 3.540.0 383 | '@aws-sdk/token-providers': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 384 | '@aws-sdk/types': 3.535.0 385 | '@smithy/property-provider': 2.2.0 386 | '@smithy/shared-ini-file-loader': 2.4.0 387 | '@smithy/types': 2.12.0 388 | tslib: 2.6.2 389 | transitivePeerDependencies: 390 | - '@aws-sdk/credential-provider-node' 391 | - aws-crt 392 | dev: true 393 | 394 | /@aws-sdk/credential-provider-web-identity@3.540.0(@aws-sdk/credential-provider-node@3.540.0): 395 | resolution: {integrity: sha512-OpDm9w3A168B44hSjpnvECP4rvnFzD86rN4VYdGADuCvEa5uEcdA/JuT5WclFPDqdWEmFBqS1pxBIJBf0g2Q9Q==} 396 | engines: {node: '>=14.0.0'} 397 | dependencies: 398 | '@aws-sdk/client-sts': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 399 | '@aws-sdk/types': 3.535.0 400 | '@smithy/property-provider': 2.2.0 401 | '@smithy/types': 2.12.0 402 | tslib: 2.6.2 403 | transitivePeerDependencies: 404 | - '@aws-sdk/credential-provider-node' 405 | - aws-crt 406 | dev: true 407 | 408 | /@aws-sdk/middleware-host-header@3.535.0: 409 | resolution: {integrity: sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==} 410 | engines: {node: '>=14.0.0'} 411 | dependencies: 412 | '@aws-sdk/types': 3.535.0 413 | '@smithy/protocol-http': 3.3.0 414 | '@smithy/types': 2.12.0 415 | tslib: 2.6.2 416 | dev: true 417 | 418 | /@aws-sdk/middleware-logger@3.535.0: 419 | resolution: {integrity: sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==} 420 | engines: {node: '>=14.0.0'} 421 | dependencies: 422 | '@aws-sdk/types': 3.535.0 423 | '@smithy/types': 2.12.0 424 | tslib: 2.6.2 425 | dev: true 426 | 427 | /@aws-sdk/middleware-recursion-detection@3.535.0: 428 | resolution: {integrity: sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==} 429 | engines: {node: '>=14.0.0'} 430 | dependencies: 431 | '@aws-sdk/types': 3.535.0 432 | '@smithy/protocol-http': 3.3.0 433 | '@smithy/types': 2.12.0 434 | tslib: 2.6.2 435 | dev: true 436 | 437 | /@aws-sdk/middleware-user-agent@3.540.0: 438 | resolution: {integrity: sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ==} 439 | engines: {node: '>=14.0.0'} 440 | dependencies: 441 | '@aws-sdk/types': 3.535.0 442 | '@aws-sdk/util-endpoints': 3.540.0 443 | '@smithy/protocol-http': 3.3.0 444 | '@smithy/types': 2.12.0 445 | tslib: 2.6.2 446 | dev: true 447 | 448 | /@aws-sdk/region-config-resolver@3.535.0: 449 | resolution: {integrity: sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==} 450 | engines: {node: '>=14.0.0'} 451 | dependencies: 452 | '@aws-sdk/types': 3.535.0 453 | '@smithy/node-config-provider': 2.3.0 454 | '@smithy/types': 2.12.0 455 | '@smithy/util-config-provider': 2.3.0 456 | '@smithy/util-middleware': 2.2.0 457 | tslib: 2.6.2 458 | dev: true 459 | 460 | /@aws-sdk/token-providers@3.540.0(@aws-sdk/credential-provider-node@3.540.0): 461 | resolution: {integrity: sha512-9BvtiVEZe5Ev88Wa4ZIUbtT6BVcPwhxmVInQ6c12MYNb0WNL54BN6wLy/eknAfF05gpX2/NDU2pUDOyMPdm/+g==} 462 | engines: {node: '>=14.0.0'} 463 | dependencies: 464 | '@aws-sdk/client-sso-oidc': 3.540.0(@aws-sdk/credential-provider-node@3.540.0) 465 | '@aws-sdk/types': 3.535.0 466 | '@smithy/property-provider': 2.2.0 467 | '@smithy/shared-ini-file-loader': 2.4.0 468 | '@smithy/types': 2.12.0 469 | tslib: 2.6.2 470 | transitivePeerDependencies: 471 | - '@aws-sdk/credential-provider-node' 472 | - aws-crt 473 | dev: true 474 | 475 | /@aws-sdk/types@3.535.0: 476 | resolution: {integrity: sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==} 477 | engines: {node: '>=14.0.0'} 478 | dependencies: 479 | '@smithy/types': 2.12.0 480 | tslib: 2.6.2 481 | dev: true 482 | 483 | /@aws-sdk/util-endpoints@3.540.0: 484 | resolution: {integrity: sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw==} 485 | engines: {node: '>=14.0.0'} 486 | dependencies: 487 | '@aws-sdk/types': 3.535.0 488 | '@smithy/types': 2.12.0 489 | '@smithy/util-endpoints': 1.2.0 490 | tslib: 2.6.2 491 | dev: true 492 | 493 | /@aws-sdk/util-locate-window@3.535.0: 494 | resolution: {integrity: sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==} 495 | engines: {node: '>=14.0.0'} 496 | dependencies: 497 | tslib: 2.6.2 498 | dev: true 499 | 500 | /@aws-sdk/util-user-agent-browser@3.535.0: 501 | resolution: {integrity: sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==} 502 | dependencies: 503 | '@aws-sdk/types': 3.535.0 504 | '@smithy/types': 2.12.0 505 | bowser: 2.11.0 506 | tslib: 2.6.2 507 | dev: true 508 | 509 | /@aws-sdk/util-user-agent-node@3.535.0: 510 | resolution: {integrity: sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==} 511 | engines: {node: '>=14.0.0'} 512 | peerDependencies: 513 | aws-crt: '>=1.0.0' 514 | peerDependenciesMeta: 515 | aws-crt: 516 | optional: true 517 | dependencies: 518 | '@aws-sdk/types': 3.535.0 519 | '@smithy/node-config-provider': 2.3.0 520 | '@smithy/types': 2.12.0 521 | tslib: 2.6.2 522 | dev: true 523 | 524 | /@aws-sdk/util-utf8-browser@3.259.0: 525 | resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} 526 | dependencies: 527 | tslib: 2.6.2 528 | dev: true 529 | 530 | /@babel/code-frame@7.22.13: 531 | resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} 532 | engines: {node: '>=6.9.0'} 533 | dependencies: 534 | '@babel/highlight': 7.22.20 535 | chalk: 2.4.2 536 | dev: true 537 | 538 | /@babel/code-frame@7.24.2: 539 | resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} 540 | engines: {node: '>=6.9.0'} 541 | requiresBuild: true 542 | dependencies: 543 | '@babel/highlight': 7.24.2 544 | picocolors: 1.0.0 545 | dev: true 546 | optional: true 547 | 548 | /@babel/compat-data@7.23.3: 549 | resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} 550 | engines: {node: '>=6.9.0'} 551 | dev: true 552 | 553 | /@babel/core@7.23.3: 554 | resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} 555 | engines: {node: '>=6.9.0'} 556 | dependencies: 557 | '@ampproject/remapping': 2.2.1 558 | '@babel/code-frame': 7.22.13 559 | '@babel/generator': 7.23.3 560 | '@babel/helper-compilation-targets': 7.22.15 561 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) 562 | '@babel/helpers': 7.23.2 563 | '@babel/parser': 7.23.3 564 | '@babel/template': 7.22.15 565 | '@babel/traverse': 7.23.3 566 | '@babel/types': 7.23.3 567 | convert-source-map: 2.0.0 568 | debug: 4.3.4 569 | gensync: 1.0.0-beta.2 570 | json5: 2.2.3 571 | semver: 6.3.1 572 | transitivePeerDependencies: 573 | - supports-color 574 | dev: true 575 | 576 | /@babel/generator@7.23.3: 577 | resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} 578 | engines: {node: '>=6.9.0'} 579 | dependencies: 580 | '@babel/types': 7.23.3 581 | '@jridgewell/gen-mapping': 0.3.3 582 | '@jridgewell/trace-mapping': 0.3.20 583 | jsesc: 2.5.2 584 | dev: true 585 | 586 | /@babel/helper-compilation-targets@7.22.15: 587 | resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} 588 | engines: {node: '>=6.9.0'} 589 | dependencies: 590 | '@babel/compat-data': 7.23.3 591 | '@babel/helper-validator-option': 7.22.15 592 | browserslist: 4.22.1 593 | lru-cache: 5.1.1 594 | semver: 6.3.1 595 | dev: true 596 | 597 | /@babel/helper-environment-visitor@7.22.20: 598 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 599 | engines: {node: '>=6.9.0'} 600 | dev: true 601 | 602 | /@babel/helper-function-name@7.23.0: 603 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 604 | engines: {node: '>=6.9.0'} 605 | dependencies: 606 | '@babel/template': 7.22.15 607 | '@babel/types': 7.23.3 608 | dev: true 609 | 610 | /@babel/helper-hoist-variables@7.22.5: 611 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 612 | engines: {node: '>=6.9.0'} 613 | dependencies: 614 | '@babel/types': 7.23.3 615 | dev: true 616 | 617 | /@babel/helper-module-imports@7.22.15: 618 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 619 | engines: {node: '>=6.9.0'} 620 | dependencies: 621 | '@babel/types': 7.23.3 622 | dev: true 623 | 624 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): 625 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 626 | engines: {node: '>=6.9.0'} 627 | peerDependencies: 628 | '@babel/core': ^7.0.0 629 | dependencies: 630 | '@babel/core': 7.23.3 631 | '@babel/helper-environment-visitor': 7.22.20 632 | '@babel/helper-module-imports': 7.22.15 633 | '@babel/helper-simple-access': 7.22.5 634 | '@babel/helper-split-export-declaration': 7.22.6 635 | '@babel/helper-validator-identifier': 7.22.20 636 | dev: true 637 | 638 | /@babel/helper-simple-access@7.22.5: 639 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 640 | engines: {node: '>=6.9.0'} 641 | dependencies: 642 | '@babel/types': 7.23.3 643 | dev: true 644 | 645 | /@babel/helper-split-export-declaration@7.22.6: 646 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 647 | engines: {node: '>=6.9.0'} 648 | dependencies: 649 | '@babel/types': 7.23.3 650 | dev: true 651 | 652 | /@babel/helper-string-parser@7.22.5: 653 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} 654 | engines: {node: '>=6.9.0'} 655 | dev: true 656 | 657 | /@babel/helper-validator-identifier@7.22.20: 658 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 659 | engines: {node: '>=6.9.0'} 660 | dev: true 661 | 662 | /@babel/helper-validator-option@7.22.15: 663 | resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} 664 | engines: {node: '>=6.9.0'} 665 | dev: true 666 | 667 | /@babel/helpers@7.23.2: 668 | resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} 669 | engines: {node: '>=6.9.0'} 670 | dependencies: 671 | '@babel/template': 7.22.15 672 | '@babel/traverse': 7.23.3 673 | '@babel/types': 7.23.3 674 | transitivePeerDependencies: 675 | - supports-color 676 | dev: true 677 | 678 | /@babel/highlight@7.22.20: 679 | resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} 680 | engines: {node: '>=6.9.0'} 681 | requiresBuild: true 682 | dependencies: 683 | '@babel/helper-validator-identifier': 7.22.20 684 | chalk: 2.4.2 685 | js-tokens: 4.0.0 686 | dev: true 687 | 688 | /@babel/highlight@7.24.2: 689 | resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} 690 | engines: {node: '>=6.9.0'} 691 | requiresBuild: true 692 | dependencies: 693 | '@babel/helper-validator-identifier': 7.22.20 694 | chalk: 2.4.2 695 | js-tokens: 4.0.0 696 | picocolors: 1.0.0 697 | dev: true 698 | optional: true 699 | 700 | /@babel/parser@7.23.3: 701 | resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} 702 | engines: {node: '>=6.0.0'} 703 | hasBin: true 704 | dependencies: 705 | '@babel/types': 7.23.3 706 | dev: true 707 | 708 | /@babel/runtime@7.23.2: 709 | resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} 710 | engines: {node: '>=6.9.0'} 711 | dependencies: 712 | regenerator-runtime: 0.14.0 713 | dev: true 714 | 715 | /@babel/standalone@7.23.3: 716 | resolution: {integrity: sha512-ZfB6wyLVqr9ANl1F0l/0aqoNUE1/kcWlQHmk0wF9OTEKDK1whkXYLruRMt53zY556yS2+84EsOpr1hpjZISTRg==} 717 | engines: {node: '>=6.9.0'} 718 | dev: true 719 | 720 | /@babel/template@7.22.15: 721 | resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} 722 | engines: {node: '>=6.9.0'} 723 | dependencies: 724 | '@babel/code-frame': 7.22.13 725 | '@babel/parser': 7.23.3 726 | '@babel/types': 7.23.3 727 | dev: true 728 | 729 | /@babel/traverse@7.23.3: 730 | resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} 731 | engines: {node: '>=6.9.0'} 732 | dependencies: 733 | '@babel/code-frame': 7.22.13 734 | '@babel/generator': 7.23.3 735 | '@babel/helper-environment-visitor': 7.22.20 736 | '@babel/helper-function-name': 7.23.0 737 | '@babel/helper-hoist-variables': 7.22.5 738 | '@babel/helper-split-export-declaration': 7.22.6 739 | '@babel/parser': 7.23.3 740 | '@babel/types': 7.23.3 741 | debug: 4.3.4 742 | globals: 11.12.0 743 | transitivePeerDependencies: 744 | - supports-color 745 | dev: true 746 | 747 | /@babel/types@7.23.3: 748 | resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} 749 | engines: {node: '>=6.9.0'} 750 | dependencies: 751 | '@babel/helper-string-parser': 7.22.5 752 | '@babel/helper-validator-identifier': 7.22.20 753 | to-fast-properties: 2.0.0 754 | dev: true 755 | 756 | /@esbuild/aix-ppc64@0.20.2: 757 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 758 | engines: {node: '>=12'} 759 | cpu: [ppc64] 760 | os: [aix] 761 | requiresBuild: true 762 | dev: true 763 | optional: true 764 | 765 | /@esbuild/android-arm64@0.18.20: 766 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 767 | engines: {node: '>=12'} 768 | cpu: [arm64] 769 | os: [android] 770 | requiresBuild: true 771 | dev: true 772 | optional: true 773 | 774 | /@esbuild/android-arm64@0.19.5: 775 | resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} 776 | engines: {node: '>=12'} 777 | cpu: [arm64] 778 | os: [android] 779 | requiresBuild: true 780 | dev: true 781 | optional: true 782 | 783 | /@esbuild/android-arm64@0.20.2: 784 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 785 | engines: {node: '>=12'} 786 | cpu: [arm64] 787 | os: [android] 788 | requiresBuild: true 789 | dev: true 790 | optional: true 791 | 792 | /@esbuild/android-arm@0.18.20: 793 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 794 | engines: {node: '>=12'} 795 | cpu: [arm] 796 | os: [android] 797 | requiresBuild: true 798 | dev: true 799 | optional: true 800 | 801 | /@esbuild/android-arm@0.19.5: 802 | resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} 803 | engines: {node: '>=12'} 804 | cpu: [arm] 805 | os: [android] 806 | requiresBuild: true 807 | dev: true 808 | optional: true 809 | 810 | /@esbuild/android-arm@0.20.2: 811 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 812 | engines: {node: '>=12'} 813 | cpu: [arm] 814 | os: [android] 815 | requiresBuild: true 816 | dev: true 817 | optional: true 818 | 819 | /@esbuild/android-x64@0.18.20: 820 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 821 | engines: {node: '>=12'} 822 | cpu: [x64] 823 | os: [android] 824 | requiresBuild: true 825 | dev: true 826 | optional: true 827 | 828 | /@esbuild/android-x64@0.19.5: 829 | resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} 830 | engines: {node: '>=12'} 831 | cpu: [x64] 832 | os: [android] 833 | requiresBuild: true 834 | dev: true 835 | optional: true 836 | 837 | /@esbuild/android-x64@0.20.2: 838 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 839 | engines: {node: '>=12'} 840 | cpu: [x64] 841 | os: [android] 842 | requiresBuild: true 843 | dev: true 844 | optional: true 845 | 846 | /@esbuild/darwin-arm64@0.18.20: 847 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 848 | engines: {node: '>=12'} 849 | cpu: [arm64] 850 | os: [darwin] 851 | requiresBuild: true 852 | dev: true 853 | optional: true 854 | 855 | /@esbuild/darwin-arm64@0.19.5: 856 | resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} 857 | engines: {node: '>=12'} 858 | cpu: [arm64] 859 | os: [darwin] 860 | requiresBuild: true 861 | dev: true 862 | optional: true 863 | 864 | /@esbuild/darwin-arm64@0.20.2: 865 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 866 | engines: {node: '>=12'} 867 | cpu: [arm64] 868 | os: [darwin] 869 | requiresBuild: true 870 | dev: true 871 | optional: true 872 | 873 | /@esbuild/darwin-x64@0.18.20: 874 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 875 | engines: {node: '>=12'} 876 | cpu: [x64] 877 | os: [darwin] 878 | requiresBuild: true 879 | dev: true 880 | optional: true 881 | 882 | /@esbuild/darwin-x64@0.19.5: 883 | resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} 884 | engines: {node: '>=12'} 885 | cpu: [x64] 886 | os: [darwin] 887 | requiresBuild: true 888 | dev: true 889 | optional: true 890 | 891 | /@esbuild/darwin-x64@0.20.2: 892 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 893 | engines: {node: '>=12'} 894 | cpu: [x64] 895 | os: [darwin] 896 | requiresBuild: true 897 | dev: true 898 | optional: true 899 | 900 | /@esbuild/freebsd-arm64@0.18.20: 901 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 902 | engines: {node: '>=12'} 903 | cpu: [arm64] 904 | os: [freebsd] 905 | requiresBuild: true 906 | dev: true 907 | optional: true 908 | 909 | /@esbuild/freebsd-arm64@0.19.5: 910 | resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} 911 | engines: {node: '>=12'} 912 | cpu: [arm64] 913 | os: [freebsd] 914 | requiresBuild: true 915 | dev: true 916 | optional: true 917 | 918 | /@esbuild/freebsd-arm64@0.20.2: 919 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 920 | engines: {node: '>=12'} 921 | cpu: [arm64] 922 | os: [freebsd] 923 | requiresBuild: true 924 | dev: true 925 | optional: true 926 | 927 | /@esbuild/freebsd-x64@0.18.20: 928 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 929 | engines: {node: '>=12'} 930 | cpu: [x64] 931 | os: [freebsd] 932 | requiresBuild: true 933 | dev: true 934 | optional: true 935 | 936 | /@esbuild/freebsd-x64@0.19.5: 937 | resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} 938 | engines: {node: '>=12'} 939 | cpu: [x64] 940 | os: [freebsd] 941 | requiresBuild: true 942 | dev: true 943 | optional: true 944 | 945 | /@esbuild/freebsd-x64@0.20.2: 946 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 947 | engines: {node: '>=12'} 948 | cpu: [x64] 949 | os: [freebsd] 950 | requiresBuild: true 951 | dev: true 952 | optional: true 953 | 954 | /@esbuild/linux-arm64@0.18.20: 955 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 956 | engines: {node: '>=12'} 957 | cpu: [arm64] 958 | os: [linux] 959 | requiresBuild: true 960 | dev: true 961 | optional: true 962 | 963 | /@esbuild/linux-arm64@0.19.5: 964 | resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} 965 | engines: {node: '>=12'} 966 | cpu: [arm64] 967 | os: [linux] 968 | requiresBuild: true 969 | dev: true 970 | optional: true 971 | 972 | /@esbuild/linux-arm64@0.20.2: 973 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 974 | engines: {node: '>=12'} 975 | cpu: [arm64] 976 | os: [linux] 977 | requiresBuild: true 978 | dev: true 979 | optional: true 980 | 981 | /@esbuild/linux-arm@0.18.20: 982 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 983 | engines: {node: '>=12'} 984 | cpu: [arm] 985 | os: [linux] 986 | requiresBuild: true 987 | dev: true 988 | optional: true 989 | 990 | /@esbuild/linux-arm@0.19.5: 991 | resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} 992 | engines: {node: '>=12'} 993 | cpu: [arm] 994 | os: [linux] 995 | requiresBuild: true 996 | dev: true 997 | optional: true 998 | 999 | /@esbuild/linux-arm@0.20.2: 1000 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 1001 | engines: {node: '>=12'} 1002 | cpu: [arm] 1003 | os: [linux] 1004 | requiresBuild: true 1005 | dev: true 1006 | optional: true 1007 | 1008 | /@esbuild/linux-ia32@0.18.20: 1009 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 1010 | engines: {node: '>=12'} 1011 | cpu: [ia32] 1012 | os: [linux] 1013 | requiresBuild: true 1014 | dev: true 1015 | optional: true 1016 | 1017 | /@esbuild/linux-ia32@0.19.5: 1018 | resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} 1019 | engines: {node: '>=12'} 1020 | cpu: [ia32] 1021 | os: [linux] 1022 | requiresBuild: true 1023 | dev: true 1024 | optional: true 1025 | 1026 | /@esbuild/linux-ia32@0.20.2: 1027 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 1028 | engines: {node: '>=12'} 1029 | cpu: [ia32] 1030 | os: [linux] 1031 | requiresBuild: true 1032 | dev: true 1033 | optional: true 1034 | 1035 | /@esbuild/linux-loong64@0.18.20: 1036 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 1037 | engines: {node: '>=12'} 1038 | cpu: [loong64] 1039 | os: [linux] 1040 | requiresBuild: true 1041 | dev: true 1042 | optional: true 1043 | 1044 | /@esbuild/linux-loong64@0.19.5: 1045 | resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} 1046 | engines: {node: '>=12'} 1047 | cpu: [loong64] 1048 | os: [linux] 1049 | requiresBuild: true 1050 | dev: true 1051 | optional: true 1052 | 1053 | /@esbuild/linux-loong64@0.20.2: 1054 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 1055 | engines: {node: '>=12'} 1056 | cpu: [loong64] 1057 | os: [linux] 1058 | requiresBuild: true 1059 | dev: true 1060 | optional: true 1061 | 1062 | /@esbuild/linux-mips64el@0.18.20: 1063 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 1064 | engines: {node: '>=12'} 1065 | cpu: [mips64el] 1066 | os: [linux] 1067 | requiresBuild: true 1068 | dev: true 1069 | optional: true 1070 | 1071 | /@esbuild/linux-mips64el@0.19.5: 1072 | resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} 1073 | engines: {node: '>=12'} 1074 | cpu: [mips64el] 1075 | os: [linux] 1076 | requiresBuild: true 1077 | dev: true 1078 | optional: true 1079 | 1080 | /@esbuild/linux-mips64el@0.20.2: 1081 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 1082 | engines: {node: '>=12'} 1083 | cpu: [mips64el] 1084 | os: [linux] 1085 | requiresBuild: true 1086 | dev: true 1087 | optional: true 1088 | 1089 | /@esbuild/linux-ppc64@0.18.20: 1090 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 1091 | engines: {node: '>=12'} 1092 | cpu: [ppc64] 1093 | os: [linux] 1094 | requiresBuild: true 1095 | dev: true 1096 | optional: true 1097 | 1098 | /@esbuild/linux-ppc64@0.19.5: 1099 | resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} 1100 | engines: {node: '>=12'} 1101 | cpu: [ppc64] 1102 | os: [linux] 1103 | requiresBuild: true 1104 | dev: true 1105 | optional: true 1106 | 1107 | /@esbuild/linux-ppc64@0.20.2: 1108 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 1109 | engines: {node: '>=12'} 1110 | cpu: [ppc64] 1111 | os: [linux] 1112 | requiresBuild: true 1113 | dev: true 1114 | optional: true 1115 | 1116 | /@esbuild/linux-riscv64@0.18.20: 1117 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 1118 | engines: {node: '>=12'} 1119 | cpu: [riscv64] 1120 | os: [linux] 1121 | requiresBuild: true 1122 | dev: true 1123 | optional: true 1124 | 1125 | /@esbuild/linux-riscv64@0.19.5: 1126 | resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} 1127 | engines: {node: '>=12'} 1128 | cpu: [riscv64] 1129 | os: [linux] 1130 | requiresBuild: true 1131 | dev: true 1132 | optional: true 1133 | 1134 | /@esbuild/linux-riscv64@0.20.2: 1135 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 1136 | engines: {node: '>=12'} 1137 | cpu: [riscv64] 1138 | os: [linux] 1139 | requiresBuild: true 1140 | dev: true 1141 | optional: true 1142 | 1143 | /@esbuild/linux-s390x@0.18.20: 1144 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 1145 | engines: {node: '>=12'} 1146 | cpu: [s390x] 1147 | os: [linux] 1148 | requiresBuild: true 1149 | dev: true 1150 | optional: true 1151 | 1152 | /@esbuild/linux-s390x@0.19.5: 1153 | resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} 1154 | engines: {node: '>=12'} 1155 | cpu: [s390x] 1156 | os: [linux] 1157 | requiresBuild: true 1158 | dev: true 1159 | optional: true 1160 | 1161 | /@esbuild/linux-s390x@0.20.2: 1162 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 1163 | engines: {node: '>=12'} 1164 | cpu: [s390x] 1165 | os: [linux] 1166 | requiresBuild: true 1167 | dev: true 1168 | optional: true 1169 | 1170 | /@esbuild/linux-x64@0.18.20: 1171 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 1172 | engines: {node: '>=12'} 1173 | cpu: [x64] 1174 | os: [linux] 1175 | requiresBuild: true 1176 | dev: true 1177 | optional: true 1178 | 1179 | /@esbuild/linux-x64@0.19.5: 1180 | resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} 1181 | engines: {node: '>=12'} 1182 | cpu: [x64] 1183 | os: [linux] 1184 | requiresBuild: true 1185 | dev: true 1186 | optional: true 1187 | 1188 | /@esbuild/linux-x64@0.20.2: 1189 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 1190 | engines: {node: '>=12'} 1191 | cpu: [x64] 1192 | os: [linux] 1193 | requiresBuild: true 1194 | dev: true 1195 | optional: true 1196 | 1197 | /@esbuild/netbsd-x64@0.18.20: 1198 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 1199 | engines: {node: '>=12'} 1200 | cpu: [x64] 1201 | os: [netbsd] 1202 | requiresBuild: true 1203 | dev: true 1204 | optional: true 1205 | 1206 | /@esbuild/netbsd-x64@0.19.5: 1207 | resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} 1208 | engines: {node: '>=12'} 1209 | cpu: [x64] 1210 | os: [netbsd] 1211 | requiresBuild: true 1212 | dev: true 1213 | optional: true 1214 | 1215 | /@esbuild/netbsd-x64@0.20.2: 1216 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 1217 | engines: {node: '>=12'} 1218 | cpu: [x64] 1219 | os: [netbsd] 1220 | requiresBuild: true 1221 | dev: true 1222 | optional: true 1223 | 1224 | /@esbuild/openbsd-x64@0.18.20: 1225 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 1226 | engines: {node: '>=12'} 1227 | cpu: [x64] 1228 | os: [openbsd] 1229 | requiresBuild: true 1230 | dev: true 1231 | optional: true 1232 | 1233 | /@esbuild/openbsd-x64@0.19.5: 1234 | resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} 1235 | engines: {node: '>=12'} 1236 | cpu: [x64] 1237 | os: [openbsd] 1238 | requiresBuild: true 1239 | dev: true 1240 | optional: true 1241 | 1242 | /@esbuild/openbsd-x64@0.20.2: 1243 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 1244 | engines: {node: '>=12'} 1245 | cpu: [x64] 1246 | os: [openbsd] 1247 | requiresBuild: true 1248 | dev: true 1249 | optional: true 1250 | 1251 | /@esbuild/sunos-x64@0.18.20: 1252 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 1253 | engines: {node: '>=12'} 1254 | cpu: [x64] 1255 | os: [sunos] 1256 | requiresBuild: true 1257 | dev: true 1258 | optional: true 1259 | 1260 | /@esbuild/sunos-x64@0.19.5: 1261 | resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} 1262 | engines: {node: '>=12'} 1263 | cpu: [x64] 1264 | os: [sunos] 1265 | requiresBuild: true 1266 | dev: true 1267 | optional: true 1268 | 1269 | /@esbuild/sunos-x64@0.20.2: 1270 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 1271 | engines: {node: '>=12'} 1272 | cpu: [x64] 1273 | os: [sunos] 1274 | requiresBuild: true 1275 | dev: true 1276 | optional: true 1277 | 1278 | /@esbuild/win32-arm64@0.18.20: 1279 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 1280 | engines: {node: '>=12'} 1281 | cpu: [arm64] 1282 | os: [win32] 1283 | requiresBuild: true 1284 | dev: true 1285 | optional: true 1286 | 1287 | /@esbuild/win32-arm64@0.19.5: 1288 | resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} 1289 | engines: {node: '>=12'} 1290 | cpu: [arm64] 1291 | os: [win32] 1292 | requiresBuild: true 1293 | dev: true 1294 | optional: true 1295 | 1296 | /@esbuild/win32-arm64@0.20.2: 1297 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 1298 | engines: {node: '>=12'} 1299 | cpu: [arm64] 1300 | os: [win32] 1301 | requiresBuild: true 1302 | dev: true 1303 | optional: true 1304 | 1305 | /@esbuild/win32-ia32@0.18.20: 1306 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 1307 | engines: {node: '>=12'} 1308 | cpu: [ia32] 1309 | os: [win32] 1310 | requiresBuild: true 1311 | dev: true 1312 | optional: true 1313 | 1314 | /@esbuild/win32-ia32@0.19.5: 1315 | resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} 1316 | engines: {node: '>=12'} 1317 | cpu: [ia32] 1318 | os: [win32] 1319 | requiresBuild: true 1320 | dev: true 1321 | optional: true 1322 | 1323 | /@esbuild/win32-ia32@0.20.2: 1324 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 1325 | engines: {node: '>=12'} 1326 | cpu: [ia32] 1327 | os: [win32] 1328 | requiresBuild: true 1329 | dev: true 1330 | optional: true 1331 | 1332 | /@esbuild/win32-x64@0.18.20: 1333 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 1334 | engines: {node: '>=12'} 1335 | cpu: [x64] 1336 | os: [win32] 1337 | requiresBuild: true 1338 | dev: true 1339 | optional: true 1340 | 1341 | /@esbuild/win32-x64@0.19.5: 1342 | resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} 1343 | engines: {node: '>=12'} 1344 | cpu: [x64] 1345 | os: [win32] 1346 | requiresBuild: true 1347 | dev: true 1348 | optional: true 1349 | 1350 | /@esbuild/win32-x64@0.20.2: 1351 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 1352 | engines: {node: '>=12'} 1353 | cpu: [x64] 1354 | os: [win32] 1355 | requiresBuild: true 1356 | dev: true 1357 | optional: true 1358 | 1359 | /@jest/schemas@29.6.3: 1360 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 1361 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1362 | dependencies: 1363 | '@sinclair/typebox': 0.27.8 1364 | dev: true 1365 | 1366 | /@jridgewell/gen-mapping@0.3.3: 1367 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 1368 | engines: {node: '>=6.0.0'} 1369 | dependencies: 1370 | '@jridgewell/set-array': 1.1.2 1371 | '@jridgewell/sourcemap-codec': 1.4.15 1372 | '@jridgewell/trace-mapping': 0.3.20 1373 | dev: true 1374 | 1375 | /@jridgewell/resolve-uri@3.1.1: 1376 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 1377 | engines: {node: '>=6.0.0'} 1378 | dev: true 1379 | 1380 | /@jridgewell/set-array@1.1.2: 1381 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 1382 | engines: {node: '>=6.0.0'} 1383 | dev: true 1384 | 1385 | /@jridgewell/sourcemap-codec@1.4.15: 1386 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 1387 | dev: true 1388 | 1389 | /@jridgewell/trace-mapping@0.3.20: 1390 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 1391 | dependencies: 1392 | '@jridgewell/resolve-uri': 3.1.1 1393 | '@jridgewell/sourcemap-codec': 1.4.15 1394 | dev: true 1395 | 1396 | /@nodelib/fs.scandir@2.1.5: 1397 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 1398 | engines: {node: '>= 8'} 1399 | dependencies: 1400 | '@nodelib/fs.stat': 2.0.5 1401 | run-parallel: 1.2.0 1402 | dev: true 1403 | 1404 | /@nodelib/fs.stat@2.0.5: 1405 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 1406 | engines: {node: '>= 8'} 1407 | dev: true 1408 | 1409 | /@nodelib/fs.walk@1.2.8: 1410 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 1411 | engines: {node: '>= 8'} 1412 | dependencies: 1413 | '@nodelib/fs.scandir': 2.1.5 1414 | fastq: 1.15.0 1415 | dev: true 1416 | 1417 | /@rollup/plugin-alias@5.0.1(rollup@3.29.4): 1418 | resolution: {integrity: sha512-JObvbWdOHoMy9W7SU0lvGhDtWq9PllP5mjpAy+TUslZG/WzOId9u80Hsqq1vCUn9pFJ0cxpdcnAv+QzU2zFH3Q==} 1419 | engines: {node: '>=14.0.0'} 1420 | peerDependencies: 1421 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1422 | peerDependenciesMeta: 1423 | rollup: 1424 | optional: true 1425 | dependencies: 1426 | rollup: 3.29.4 1427 | slash: 4.0.0 1428 | dev: true 1429 | 1430 | /@rollup/plugin-commonjs@25.0.7(rollup@3.29.4): 1431 | resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} 1432 | engines: {node: '>=14.0.0'} 1433 | peerDependencies: 1434 | rollup: ^2.68.0||^3.0.0||^4.0.0 1435 | peerDependenciesMeta: 1436 | rollup: 1437 | optional: true 1438 | dependencies: 1439 | '@rollup/pluginutils': 5.0.5(rollup@3.29.4) 1440 | commondir: 1.0.1 1441 | estree-walker: 2.0.2 1442 | glob: 8.1.0 1443 | is-reference: 1.2.1 1444 | magic-string: 0.30.5 1445 | rollup: 3.29.4 1446 | dev: true 1447 | 1448 | /@rollup/plugin-json@6.0.1(rollup@3.29.4): 1449 | resolution: {integrity: sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==} 1450 | engines: {node: '>=14.0.0'} 1451 | peerDependencies: 1452 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1453 | peerDependenciesMeta: 1454 | rollup: 1455 | optional: true 1456 | dependencies: 1457 | '@rollup/pluginutils': 5.0.5(rollup@3.29.4) 1458 | rollup: 3.29.4 1459 | dev: true 1460 | 1461 | /@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4): 1462 | resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} 1463 | engines: {node: '>=14.0.0'} 1464 | peerDependencies: 1465 | rollup: ^2.78.0||^3.0.0||^4.0.0 1466 | peerDependenciesMeta: 1467 | rollup: 1468 | optional: true 1469 | dependencies: 1470 | '@rollup/pluginutils': 5.0.5(rollup@3.29.4) 1471 | '@types/resolve': 1.20.2 1472 | deepmerge: 4.3.1 1473 | is-builtin-module: 3.2.1 1474 | is-module: 1.0.0 1475 | resolve: 1.22.8 1476 | rollup: 3.29.4 1477 | dev: true 1478 | 1479 | /@rollup/plugin-replace@5.0.5(rollup@3.29.4): 1480 | resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} 1481 | engines: {node: '>=14.0.0'} 1482 | peerDependencies: 1483 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1484 | peerDependenciesMeta: 1485 | rollup: 1486 | optional: true 1487 | dependencies: 1488 | '@rollup/pluginutils': 5.0.5(rollup@3.29.4) 1489 | magic-string: 0.30.5 1490 | rollup: 3.29.4 1491 | dev: true 1492 | 1493 | /@rollup/pluginutils@5.0.5(rollup@3.29.4): 1494 | resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} 1495 | engines: {node: '>=14.0.0'} 1496 | peerDependencies: 1497 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 1498 | peerDependenciesMeta: 1499 | rollup: 1500 | optional: true 1501 | dependencies: 1502 | '@types/estree': 1.0.5 1503 | estree-walker: 2.0.2 1504 | picomatch: 2.3.1 1505 | rollup: 3.29.4 1506 | dev: true 1507 | 1508 | /@rollup/rollup-android-arm-eabi@4.13.2: 1509 | resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} 1510 | cpu: [arm] 1511 | os: [android] 1512 | requiresBuild: true 1513 | dev: true 1514 | optional: true 1515 | 1516 | /@rollup/rollup-android-arm64@4.13.2: 1517 | resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} 1518 | cpu: [arm64] 1519 | os: [android] 1520 | requiresBuild: true 1521 | dev: true 1522 | optional: true 1523 | 1524 | /@rollup/rollup-darwin-arm64@4.13.2: 1525 | resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} 1526 | cpu: [arm64] 1527 | os: [darwin] 1528 | requiresBuild: true 1529 | dev: true 1530 | optional: true 1531 | 1532 | /@rollup/rollup-darwin-x64@4.13.2: 1533 | resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} 1534 | cpu: [x64] 1535 | os: [darwin] 1536 | requiresBuild: true 1537 | dev: true 1538 | optional: true 1539 | 1540 | /@rollup/rollup-linux-arm-gnueabihf@4.13.2: 1541 | resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} 1542 | cpu: [arm] 1543 | os: [linux] 1544 | requiresBuild: true 1545 | dev: true 1546 | optional: true 1547 | 1548 | /@rollup/rollup-linux-arm64-gnu@4.13.2: 1549 | resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} 1550 | cpu: [arm64] 1551 | os: [linux] 1552 | requiresBuild: true 1553 | dev: true 1554 | optional: true 1555 | 1556 | /@rollup/rollup-linux-arm64-musl@4.13.2: 1557 | resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} 1558 | cpu: [arm64] 1559 | os: [linux] 1560 | requiresBuild: true 1561 | dev: true 1562 | optional: true 1563 | 1564 | /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: 1565 | resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} 1566 | cpu: [ppc64le] 1567 | os: [linux] 1568 | requiresBuild: true 1569 | dev: true 1570 | optional: true 1571 | 1572 | /@rollup/rollup-linux-riscv64-gnu@4.13.2: 1573 | resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} 1574 | cpu: [riscv64] 1575 | os: [linux] 1576 | requiresBuild: true 1577 | dev: true 1578 | optional: true 1579 | 1580 | /@rollup/rollup-linux-s390x-gnu@4.13.2: 1581 | resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} 1582 | cpu: [s390x] 1583 | os: [linux] 1584 | requiresBuild: true 1585 | dev: true 1586 | optional: true 1587 | 1588 | /@rollup/rollup-linux-x64-gnu@4.13.2: 1589 | resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} 1590 | cpu: [x64] 1591 | os: [linux] 1592 | requiresBuild: true 1593 | dev: true 1594 | optional: true 1595 | 1596 | /@rollup/rollup-linux-x64-musl@4.13.2: 1597 | resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} 1598 | cpu: [x64] 1599 | os: [linux] 1600 | requiresBuild: true 1601 | dev: true 1602 | optional: true 1603 | 1604 | /@rollup/rollup-win32-arm64-msvc@4.13.2: 1605 | resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} 1606 | cpu: [arm64] 1607 | os: [win32] 1608 | requiresBuild: true 1609 | dev: true 1610 | optional: true 1611 | 1612 | /@rollup/rollup-win32-ia32-msvc@4.13.2: 1613 | resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} 1614 | cpu: [ia32] 1615 | os: [win32] 1616 | requiresBuild: true 1617 | dev: true 1618 | optional: true 1619 | 1620 | /@rollup/rollup-win32-x64-msvc@4.13.2: 1621 | resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} 1622 | cpu: [x64] 1623 | os: [win32] 1624 | requiresBuild: true 1625 | dev: true 1626 | optional: true 1627 | 1628 | /@sinclair/typebox@0.27.8: 1629 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 1630 | dev: true 1631 | 1632 | /@sinonjs/commons@2.0.0: 1633 | resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} 1634 | dependencies: 1635 | type-detect: 4.0.8 1636 | dev: true 1637 | 1638 | /@sinonjs/commons@3.0.1: 1639 | resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} 1640 | dependencies: 1641 | type-detect: 4.0.8 1642 | dev: true 1643 | 1644 | /@sinonjs/fake-timers@10.3.0: 1645 | resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} 1646 | dependencies: 1647 | '@sinonjs/commons': 3.0.1 1648 | dev: true 1649 | 1650 | /@sinonjs/fake-timers@11.2.2: 1651 | resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} 1652 | dependencies: 1653 | '@sinonjs/commons': 3.0.1 1654 | dev: true 1655 | 1656 | /@sinonjs/samsam@8.0.0: 1657 | resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} 1658 | dependencies: 1659 | '@sinonjs/commons': 2.0.0 1660 | lodash.get: 4.4.2 1661 | type-detect: 4.0.8 1662 | dev: true 1663 | 1664 | /@sinonjs/text-encoding@0.7.2: 1665 | resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} 1666 | dev: true 1667 | 1668 | /@smithy/abort-controller@2.2.0: 1669 | resolution: {integrity: sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==} 1670 | engines: {node: '>=14.0.0'} 1671 | dependencies: 1672 | '@smithy/types': 2.12.0 1673 | tslib: 2.6.2 1674 | dev: true 1675 | 1676 | /@smithy/config-resolver@2.2.0: 1677 | resolution: {integrity: sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==} 1678 | engines: {node: '>=14.0.0'} 1679 | dependencies: 1680 | '@smithy/node-config-provider': 2.3.0 1681 | '@smithy/types': 2.12.0 1682 | '@smithy/util-config-provider': 2.3.0 1683 | '@smithy/util-middleware': 2.2.0 1684 | tslib: 2.6.2 1685 | dev: true 1686 | 1687 | /@smithy/core@1.4.1: 1688 | resolution: {integrity: sha512-jCnbEQHvTOUQXxXOS110FIMc83dCXUlrqiG/q0QzUSYhglDj9bJVPFjXmxc6qUfARe0mEb8h9LeVoh7FUYHuUg==} 1689 | engines: {node: '>=14.0.0'} 1690 | dependencies: 1691 | '@smithy/middleware-endpoint': 2.5.0 1692 | '@smithy/middleware-retry': 2.3.0 1693 | '@smithy/middleware-serde': 2.3.0 1694 | '@smithy/protocol-http': 3.3.0 1695 | '@smithy/smithy-client': 2.5.0 1696 | '@smithy/types': 2.12.0 1697 | '@smithy/util-middleware': 2.2.0 1698 | tslib: 2.6.2 1699 | dev: true 1700 | 1701 | /@smithy/credential-provider-imds@2.3.0: 1702 | resolution: {integrity: sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==} 1703 | engines: {node: '>=14.0.0'} 1704 | dependencies: 1705 | '@smithy/node-config-provider': 2.3.0 1706 | '@smithy/property-provider': 2.2.0 1707 | '@smithy/types': 2.12.0 1708 | '@smithy/url-parser': 2.2.0 1709 | tslib: 2.6.2 1710 | dev: true 1711 | 1712 | /@smithy/eventstream-codec@2.2.0: 1713 | resolution: {integrity: sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==} 1714 | dependencies: 1715 | '@aws-crypto/crc32': 3.0.0 1716 | '@smithy/types': 2.12.0 1717 | '@smithy/util-hex-encoding': 2.2.0 1718 | tslib: 2.6.2 1719 | dev: true 1720 | 1721 | /@smithy/fetch-http-handler@2.5.0: 1722 | resolution: {integrity: sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==} 1723 | dependencies: 1724 | '@smithy/protocol-http': 3.3.0 1725 | '@smithy/querystring-builder': 2.2.0 1726 | '@smithy/types': 2.12.0 1727 | '@smithy/util-base64': 2.3.0 1728 | tslib: 2.6.2 1729 | dev: true 1730 | 1731 | /@smithy/hash-node@2.2.0: 1732 | resolution: {integrity: sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==} 1733 | engines: {node: '>=14.0.0'} 1734 | dependencies: 1735 | '@smithy/types': 2.12.0 1736 | '@smithy/util-buffer-from': 2.2.0 1737 | '@smithy/util-utf8': 2.3.0 1738 | tslib: 2.6.2 1739 | dev: true 1740 | 1741 | /@smithy/invalid-dependency@2.2.0: 1742 | resolution: {integrity: sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==} 1743 | dependencies: 1744 | '@smithy/types': 2.12.0 1745 | tslib: 2.6.2 1746 | dev: true 1747 | 1748 | /@smithy/is-array-buffer@2.2.0: 1749 | resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} 1750 | engines: {node: '>=14.0.0'} 1751 | dependencies: 1752 | tslib: 2.6.2 1753 | dev: true 1754 | 1755 | /@smithy/middleware-content-length@2.2.0: 1756 | resolution: {integrity: sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==} 1757 | engines: {node: '>=14.0.0'} 1758 | dependencies: 1759 | '@smithy/protocol-http': 3.3.0 1760 | '@smithy/types': 2.12.0 1761 | tslib: 2.6.2 1762 | dev: true 1763 | 1764 | /@smithy/middleware-endpoint@2.5.0: 1765 | resolution: {integrity: sha512-OBhI9ZEAG8Xen0xsFJwwNOt44WE2CWkfYIxTognC8x42Lfsdf0VN/wCMqpdkySMDio/vts10BiovAxQp0T0faA==} 1766 | engines: {node: '>=14.0.0'} 1767 | dependencies: 1768 | '@smithy/middleware-serde': 2.3.0 1769 | '@smithy/node-config-provider': 2.3.0 1770 | '@smithy/shared-ini-file-loader': 2.4.0 1771 | '@smithy/types': 2.12.0 1772 | '@smithy/url-parser': 2.2.0 1773 | '@smithy/util-middleware': 2.2.0 1774 | tslib: 2.6.2 1775 | dev: true 1776 | 1777 | /@smithy/middleware-retry@2.3.0: 1778 | resolution: {integrity: sha512-5H7kD0My2RkZryvYIWA4C9w6t/pdJfbgEdq+fcZhbnZsqHm/4vYFVjDsOzb5pC7PEpksuijoM9fGbM6eN4rLSg==} 1779 | engines: {node: '>=14.0.0'} 1780 | dependencies: 1781 | '@smithy/node-config-provider': 2.3.0 1782 | '@smithy/protocol-http': 3.3.0 1783 | '@smithy/service-error-classification': 2.1.5 1784 | '@smithy/smithy-client': 2.5.0 1785 | '@smithy/types': 2.12.0 1786 | '@smithy/util-middleware': 2.2.0 1787 | '@smithy/util-retry': 2.2.0 1788 | tslib: 2.6.2 1789 | uuid: 9.0.1 1790 | dev: true 1791 | 1792 | /@smithy/middleware-serde@2.3.0: 1793 | resolution: {integrity: sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==} 1794 | engines: {node: '>=14.0.0'} 1795 | dependencies: 1796 | '@smithy/types': 2.12.0 1797 | tslib: 2.6.2 1798 | dev: true 1799 | 1800 | /@smithy/middleware-stack@2.2.0: 1801 | resolution: {integrity: sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==} 1802 | engines: {node: '>=14.0.0'} 1803 | dependencies: 1804 | '@smithy/types': 2.12.0 1805 | tslib: 2.6.2 1806 | dev: true 1807 | 1808 | /@smithy/node-config-provider@2.3.0: 1809 | resolution: {integrity: sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==} 1810 | engines: {node: '>=14.0.0'} 1811 | dependencies: 1812 | '@smithy/property-provider': 2.2.0 1813 | '@smithy/shared-ini-file-loader': 2.4.0 1814 | '@smithy/types': 2.12.0 1815 | tslib: 2.6.2 1816 | dev: true 1817 | 1818 | /@smithy/node-http-handler@2.5.0: 1819 | resolution: {integrity: sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==} 1820 | engines: {node: '>=14.0.0'} 1821 | dependencies: 1822 | '@smithy/abort-controller': 2.2.0 1823 | '@smithy/protocol-http': 3.3.0 1824 | '@smithy/querystring-builder': 2.2.0 1825 | '@smithy/types': 2.12.0 1826 | tslib: 2.6.2 1827 | dev: true 1828 | 1829 | /@smithy/property-provider@2.2.0: 1830 | resolution: {integrity: sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==} 1831 | engines: {node: '>=14.0.0'} 1832 | dependencies: 1833 | '@smithy/types': 2.12.0 1834 | tslib: 2.6.2 1835 | dev: true 1836 | 1837 | /@smithy/protocol-http@3.3.0: 1838 | resolution: {integrity: sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==} 1839 | engines: {node: '>=14.0.0'} 1840 | dependencies: 1841 | '@smithy/types': 2.12.0 1842 | tslib: 2.6.2 1843 | dev: true 1844 | 1845 | /@smithy/querystring-builder@2.2.0: 1846 | resolution: {integrity: sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==} 1847 | engines: {node: '>=14.0.0'} 1848 | dependencies: 1849 | '@smithy/types': 2.12.0 1850 | '@smithy/util-uri-escape': 2.2.0 1851 | tslib: 2.6.2 1852 | dev: true 1853 | 1854 | /@smithy/querystring-parser@2.2.0: 1855 | resolution: {integrity: sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==} 1856 | engines: {node: '>=14.0.0'} 1857 | dependencies: 1858 | '@smithy/types': 2.12.0 1859 | tslib: 2.6.2 1860 | dev: true 1861 | 1862 | /@smithy/service-error-classification@2.1.5: 1863 | resolution: {integrity: sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==} 1864 | engines: {node: '>=14.0.0'} 1865 | dependencies: 1866 | '@smithy/types': 2.12.0 1867 | dev: true 1868 | 1869 | /@smithy/shared-ini-file-loader@2.4.0: 1870 | resolution: {integrity: sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==} 1871 | engines: {node: '>=14.0.0'} 1872 | dependencies: 1873 | '@smithy/types': 2.12.0 1874 | tslib: 2.6.2 1875 | dev: true 1876 | 1877 | /@smithy/signature-v4@2.2.0: 1878 | resolution: {integrity: sha512-+B5TNzj/fRZzVW3z8UUJOkNx15+4E0CLuvJmJUA1JUIZFp3rdJ/M2H5r2SqltaVPXL0oIxv/6YK92T9TsFGbFg==} 1879 | engines: {node: '>=14.0.0'} 1880 | dependencies: 1881 | '@smithy/eventstream-codec': 2.2.0 1882 | '@smithy/is-array-buffer': 2.2.0 1883 | '@smithy/types': 2.12.0 1884 | '@smithy/util-hex-encoding': 2.2.0 1885 | '@smithy/util-middleware': 2.2.0 1886 | '@smithy/util-uri-escape': 2.2.0 1887 | '@smithy/util-utf8': 2.3.0 1888 | tslib: 2.6.2 1889 | dev: true 1890 | 1891 | /@smithy/smithy-client@2.5.0: 1892 | resolution: {integrity: sha512-DDXWHWdimtS3y/Kw1Jo46KQ0ZYsDKcldFynQERUGBPDpkW1lXOTHy491ALHjwfiBQvzsVKVxl5+ocXNIgJuX4g==} 1893 | engines: {node: '>=14.0.0'} 1894 | dependencies: 1895 | '@smithy/middleware-endpoint': 2.5.0 1896 | '@smithy/middleware-stack': 2.2.0 1897 | '@smithy/protocol-http': 3.3.0 1898 | '@smithy/types': 2.12.0 1899 | '@smithy/util-stream': 2.2.0 1900 | tslib: 2.6.2 1901 | dev: true 1902 | 1903 | /@smithy/types@2.12.0: 1904 | resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==} 1905 | engines: {node: '>=14.0.0'} 1906 | dependencies: 1907 | tslib: 2.6.2 1908 | dev: true 1909 | 1910 | /@smithy/url-parser@2.2.0: 1911 | resolution: {integrity: sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==} 1912 | dependencies: 1913 | '@smithy/querystring-parser': 2.2.0 1914 | '@smithy/types': 2.12.0 1915 | tslib: 2.6.2 1916 | dev: true 1917 | 1918 | /@smithy/util-base64@2.3.0: 1919 | resolution: {integrity: sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==} 1920 | engines: {node: '>=14.0.0'} 1921 | dependencies: 1922 | '@smithy/util-buffer-from': 2.2.0 1923 | '@smithy/util-utf8': 2.3.0 1924 | tslib: 2.6.2 1925 | dev: true 1926 | 1927 | /@smithy/util-body-length-browser@2.2.0: 1928 | resolution: {integrity: sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==} 1929 | dependencies: 1930 | tslib: 2.6.2 1931 | dev: true 1932 | 1933 | /@smithy/util-body-length-node@2.3.0: 1934 | resolution: {integrity: sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==} 1935 | engines: {node: '>=14.0.0'} 1936 | dependencies: 1937 | tslib: 2.6.2 1938 | dev: true 1939 | 1940 | /@smithy/util-buffer-from@2.2.0: 1941 | resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} 1942 | engines: {node: '>=14.0.0'} 1943 | dependencies: 1944 | '@smithy/is-array-buffer': 2.2.0 1945 | tslib: 2.6.2 1946 | dev: true 1947 | 1948 | /@smithy/util-config-provider@2.3.0: 1949 | resolution: {integrity: sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==} 1950 | engines: {node: '>=14.0.0'} 1951 | dependencies: 1952 | tslib: 2.6.2 1953 | dev: true 1954 | 1955 | /@smithy/util-defaults-mode-browser@2.2.0: 1956 | resolution: {integrity: sha512-2okTdZaCBvOJszAPU/KSvlimMe35zLOKbQpHhamFJmR7t95HSe0K3C92jQPjKY3PmDBD+7iMkOnuW05F5OlF4g==} 1957 | engines: {node: '>= 10.0.0'} 1958 | dependencies: 1959 | '@smithy/property-provider': 2.2.0 1960 | '@smithy/smithy-client': 2.5.0 1961 | '@smithy/types': 2.12.0 1962 | bowser: 2.11.0 1963 | tslib: 2.6.2 1964 | dev: true 1965 | 1966 | /@smithy/util-defaults-mode-node@2.3.0: 1967 | resolution: {integrity: sha512-hfKXnNLmsW9cmLb/JXKIvtuO6Cf4SuqN5PN1C2Ru/TBIws+m1wSgb+A53vo0r66xzB6E82inKG2J7qtwdi+Kkw==} 1968 | engines: {node: '>= 10.0.0'} 1969 | dependencies: 1970 | '@smithy/config-resolver': 2.2.0 1971 | '@smithy/credential-provider-imds': 2.3.0 1972 | '@smithy/node-config-provider': 2.3.0 1973 | '@smithy/property-provider': 2.2.0 1974 | '@smithy/smithy-client': 2.5.0 1975 | '@smithy/types': 2.12.0 1976 | tslib: 2.6.2 1977 | dev: true 1978 | 1979 | /@smithy/util-endpoints@1.2.0: 1980 | resolution: {integrity: sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==} 1981 | engines: {node: '>= 14.0.0'} 1982 | dependencies: 1983 | '@smithy/node-config-provider': 2.3.0 1984 | '@smithy/types': 2.12.0 1985 | tslib: 2.6.2 1986 | dev: true 1987 | 1988 | /@smithy/util-hex-encoding@2.2.0: 1989 | resolution: {integrity: sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==} 1990 | engines: {node: '>=14.0.0'} 1991 | dependencies: 1992 | tslib: 2.6.2 1993 | dev: true 1994 | 1995 | /@smithy/util-middleware@2.2.0: 1996 | resolution: {integrity: sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==} 1997 | engines: {node: '>=14.0.0'} 1998 | dependencies: 1999 | '@smithy/types': 2.12.0 2000 | tslib: 2.6.2 2001 | dev: true 2002 | 2003 | /@smithy/util-retry@2.2.0: 2004 | resolution: {integrity: sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==} 2005 | engines: {node: '>= 14.0.0'} 2006 | dependencies: 2007 | '@smithy/service-error-classification': 2.1.5 2008 | '@smithy/types': 2.12.0 2009 | tslib: 2.6.2 2010 | dev: true 2011 | 2012 | /@smithy/util-stream@2.2.0: 2013 | resolution: {integrity: sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==} 2014 | engines: {node: '>=14.0.0'} 2015 | dependencies: 2016 | '@smithy/fetch-http-handler': 2.5.0 2017 | '@smithy/node-http-handler': 2.5.0 2018 | '@smithy/types': 2.12.0 2019 | '@smithy/util-base64': 2.3.0 2020 | '@smithy/util-buffer-from': 2.2.0 2021 | '@smithy/util-hex-encoding': 2.2.0 2022 | '@smithy/util-utf8': 2.3.0 2023 | tslib: 2.6.2 2024 | dev: true 2025 | 2026 | /@smithy/util-uri-escape@2.2.0: 2027 | resolution: {integrity: sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==} 2028 | engines: {node: '>=14.0.0'} 2029 | dependencies: 2030 | tslib: 2.6.2 2031 | dev: true 2032 | 2033 | /@smithy/util-utf8@2.3.0: 2034 | resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} 2035 | engines: {node: '>=14.0.0'} 2036 | dependencies: 2037 | '@smithy/util-buffer-from': 2.2.0 2038 | tslib: 2.6.2 2039 | dev: true 2040 | 2041 | /@types/estree@1.0.5: 2042 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 2043 | dev: true 2044 | 2045 | /@types/node@20.12.2: 2046 | resolution: {integrity: sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==} 2047 | dependencies: 2048 | undici-types: 5.26.5 2049 | dev: true 2050 | 2051 | /@types/resolve@1.20.2: 2052 | resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 2053 | dev: true 2054 | 2055 | /@types/sinon@10.0.20: 2056 | resolution: {integrity: sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==} 2057 | dependencies: 2058 | '@types/sinonjs__fake-timers': 8.1.5 2059 | dev: true 2060 | 2061 | /@types/sinonjs__fake-timers@8.1.5: 2062 | resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} 2063 | dev: true 2064 | 2065 | /@vitest/expect@1.4.0: 2066 | resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} 2067 | dependencies: 2068 | '@vitest/spy': 1.4.0 2069 | '@vitest/utils': 1.4.0 2070 | chai: 4.4.1 2071 | dev: true 2072 | 2073 | /@vitest/runner@1.4.0: 2074 | resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} 2075 | dependencies: 2076 | '@vitest/utils': 1.4.0 2077 | p-limit: 5.0.0 2078 | pathe: 1.1.2 2079 | dev: true 2080 | 2081 | /@vitest/snapshot@1.4.0: 2082 | resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} 2083 | dependencies: 2084 | magic-string: 0.30.8 2085 | pathe: 1.1.2 2086 | pretty-format: 29.7.0 2087 | dev: true 2088 | 2089 | /@vitest/spy@1.4.0: 2090 | resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} 2091 | dependencies: 2092 | tinyspy: 2.2.1 2093 | dev: true 2094 | 2095 | /@vitest/utils@1.4.0: 2096 | resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} 2097 | dependencies: 2098 | diff-sequences: 29.6.3 2099 | estree-walker: 3.0.3 2100 | loupe: 2.3.7 2101 | pretty-format: 29.7.0 2102 | dev: true 2103 | 2104 | /acorn-walk@8.3.2: 2105 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 2106 | engines: {node: '>=0.4.0'} 2107 | dev: true 2108 | 2109 | /acorn@8.11.2: 2110 | resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} 2111 | engines: {node: '>=0.4.0'} 2112 | hasBin: true 2113 | dev: true 2114 | 2115 | /acorn@8.11.3: 2116 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 2117 | engines: {node: '>=0.4.0'} 2118 | hasBin: true 2119 | dev: true 2120 | 2121 | /ansi-regex@5.0.1: 2122 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 2123 | engines: {node: '>=8'} 2124 | dev: true 2125 | 2126 | /ansi-styles@3.2.1: 2127 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 2128 | engines: {node: '>=4'} 2129 | requiresBuild: true 2130 | dependencies: 2131 | color-convert: 1.9.3 2132 | dev: true 2133 | 2134 | /ansi-styles@4.3.0: 2135 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 2136 | engines: {node: '>=8'} 2137 | dependencies: 2138 | color-convert: 2.0.1 2139 | dev: true 2140 | 2141 | /ansi-styles@5.2.0: 2142 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 2143 | engines: {node: '>=10'} 2144 | dev: true 2145 | 2146 | /assertion-error@1.1.0: 2147 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 2148 | dev: true 2149 | 2150 | /aws-sdk-client-mock@4.0.0: 2151 | resolution: {integrity: sha512-/rxo+pzCFaUozK7TyCqo3GYwzdBGn9Ai6EsT8ytXDoUXlD/Q5hw9hj2lOkCAyubECzGJFHMmQg9GZ1GOGlN/qQ==} 2152 | dependencies: 2153 | '@types/sinon': 10.0.20 2154 | sinon: 16.1.3 2155 | tslib: 2.6.2 2156 | dev: true 2157 | 2158 | /balanced-match@1.0.2: 2159 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 2160 | dev: true 2161 | 2162 | /bowser@2.11.0: 2163 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 2164 | dev: true 2165 | 2166 | /brace-expansion@2.0.1: 2167 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 2168 | dependencies: 2169 | balanced-match: 1.0.2 2170 | dev: true 2171 | 2172 | /braces@3.0.2: 2173 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 2174 | engines: {node: '>=8'} 2175 | dependencies: 2176 | fill-range: 7.0.1 2177 | dev: true 2178 | 2179 | /browserslist@4.22.1: 2180 | resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} 2181 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 2182 | hasBin: true 2183 | dependencies: 2184 | caniuse-lite: 1.0.30001561 2185 | electron-to-chromium: 1.4.579 2186 | node-releases: 2.0.13 2187 | update-browserslist-db: 1.0.13(browserslist@4.22.1) 2188 | dev: true 2189 | 2190 | /builtin-modules@3.3.0: 2191 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 2192 | engines: {node: '>=6'} 2193 | dev: true 2194 | 2195 | /cac@6.7.14: 2196 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 2197 | engines: {node: '>=8'} 2198 | dev: true 2199 | 2200 | /caniuse-lite@1.0.30001561: 2201 | resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} 2202 | dev: true 2203 | 2204 | /chai@4.4.1: 2205 | resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} 2206 | engines: {node: '>=4'} 2207 | dependencies: 2208 | assertion-error: 1.1.0 2209 | check-error: 1.0.3 2210 | deep-eql: 4.1.3 2211 | get-func-name: 2.0.2 2212 | loupe: 2.3.7 2213 | pathval: 1.1.1 2214 | type-detect: 4.0.8 2215 | dev: true 2216 | 2217 | /chalk@2.4.2: 2218 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 2219 | engines: {node: '>=4'} 2220 | requiresBuild: true 2221 | dependencies: 2222 | ansi-styles: 3.2.1 2223 | escape-string-regexp: 1.0.5 2224 | supports-color: 5.5.0 2225 | dev: true 2226 | 2227 | /chalk@4.1.2: 2228 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 2229 | engines: {node: '>=10'} 2230 | dependencies: 2231 | ansi-styles: 4.3.0 2232 | supports-color: 7.2.0 2233 | dev: true 2234 | 2235 | /chalk@5.3.0: 2236 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 2237 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 2238 | dev: true 2239 | 2240 | /check-error@1.0.3: 2241 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 2242 | dependencies: 2243 | get-func-name: 2.0.2 2244 | dev: true 2245 | 2246 | /citty@0.1.4: 2247 | resolution: {integrity: sha512-Q3bK1huLxzQrvj7hImJ7Z1vKYJRPQCDnd0EjXfHMidcjecGOMuLrmuQmtWmFkuKLcMThlGh1yCKG8IEc6VeNXQ==} 2248 | dependencies: 2249 | consola: 3.2.3 2250 | dev: true 2251 | 2252 | /cliui@8.0.1: 2253 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 2254 | engines: {node: '>=12'} 2255 | dependencies: 2256 | string-width: 4.2.3 2257 | strip-ansi: 6.0.1 2258 | wrap-ansi: 7.0.0 2259 | dev: true 2260 | 2261 | /color-convert@1.9.3: 2262 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 2263 | requiresBuild: true 2264 | dependencies: 2265 | color-name: 1.1.3 2266 | dev: true 2267 | 2268 | /color-convert@2.0.1: 2269 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 2270 | engines: {node: '>=7.0.0'} 2271 | dependencies: 2272 | color-name: 1.1.4 2273 | dev: true 2274 | 2275 | /color-name@1.1.3: 2276 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 2277 | requiresBuild: true 2278 | dev: true 2279 | 2280 | /color-name@1.1.4: 2281 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 2282 | dev: true 2283 | 2284 | /commondir@1.0.1: 2285 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 2286 | dev: true 2287 | 2288 | /concurrently@8.2.2: 2289 | resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} 2290 | engines: {node: ^14.13.0 || >=16.0.0} 2291 | hasBin: true 2292 | dependencies: 2293 | chalk: 4.1.2 2294 | date-fns: 2.30.0 2295 | lodash: 4.17.21 2296 | rxjs: 7.8.1 2297 | shell-quote: 1.8.1 2298 | spawn-command: 0.0.2 2299 | supports-color: 8.1.1 2300 | tree-kill: 1.2.2 2301 | yargs: 17.7.2 2302 | dev: true 2303 | 2304 | /consola@3.2.3: 2305 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 2306 | engines: {node: ^14.18.0 || >=16.10.0} 2307 | dev: true 2308 | 2309 | /convert-source-map@2.0.0: 2310 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 2311 | dev: true 2312 | 2313 | /cross-spawn@7.0.3: 2314 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 2315 | engines: {node: '>= 8'} 2316 | dependencies: 2317 | path-key: 3.1.1 2318 | shebang-command: 2.0.0 2319 | which: 2.0.2 2320 | dev: true 2321 | 2322 | /date-fns@2.30.0: 2323 | resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} 2324 | engines: {node: '>=0.11'} 2325 | dependencies: 2326 | '@babel/runtime': 7.23.2 2327 | dev: true 2328 | 2329 | /debug@4.3.4: 2330 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 2331 | engines: {node: '>=6.0'} 2332 | peerDependencies: 2333 | supports-color: '*' 2334 | peerDependenciesMeta: 2335 | supports-color: 2336 | optional: true 2337 | dependencies: 2338 | ms: 2.1.2 2339 | dev: true 2340 | 2341 | /deep-eql@4.1.3: 2342 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 2343 | engines: {node: '>=6'} 2344 | dependencies: 2345 | type-detect: 4.0.8 2346 | dev: true 2347 | 2348 | /deepmerge@4.3.1: 2349 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 2350 | engines: {node: '>=0.10.0'} 2351 | dev: true 2352 | 2353 | /defu@6.1.3: 2354 | resolution: {integrity: sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==} 2355 | dev: true 2356 | 2357 | /diff-sequences@29.6.3: 2358 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 2359 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 2360 | dev: true 2361 | 2362 | /diff@5.2.0: 2363 | resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 2364 | engines: {node: '>=0.3.1'} 2365 | dev: true 2366 | 2367 | /dir-glob@3.0.1: 2368 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 2369 | engines: {node: '>=8'} 2370 | dependencies: 2371 | path-type: 4.0.0 2372 | dev: true 2373 | 2374 | /electron-to-chromium@1.4.579: 2375 | resolution: {integrity: sha512-bJKvA+awBIzYR0xRced7PrQuRIwGQPpo6ZLP62GAShahU9fWpsNN2IP6BSP1BLDDSbxvBVRGAMWlvVVq3npmLA==} 2376 | dev: true 2377 | 2378 | /emoji-regex@8.0.0: 2379 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 2380 | dev: true 2381 | 2382 | /esbuild@0.18.20: 2383 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 2384 | engines: {node: '>=12'} 2385 | hasBin: true 2386 | requiresBuild: true 2387 | optionalDependencies: 2388 | '@esbuild/android-arm': 0.18.20 2389 | '@esbuild/android-arm64': 0.18.20 2390 | '@esbuild/android-x64': 0.18.20 2391 | '@esbuild/darwin-arm64': 0.18.20 2392 | '@esbuild/darwin-x64': 0.18.20 2393 | '@esbuild/freebsd-arm64': 0.18.20 2394 | '@esbuild/freebsd-x64': 0.18.20 2395 | '@esbuild/linux-arm': 0.18.20 2396 | '@esbuild/linux-arm64': 0.18.20 2397 | '@esbuild/linux-ia32': 0.18.20 2398 | '@esbuild/linux-loong64': 0.18.20 2399 | '@esbuild/linux-mips64el': 0.18.20 2400 | '@esbuild/linux-ppc64': 0.18.20 2401 | '@esbuild/linux-riscv64': 0.18.20 2402 | '@esbuild/linux-s390x': 0.18.20 2403 | '@esbuild/linux-x64': 0.18.20 2404 | '@esbuild/netbsd-x64': 0.18.20 2405 | '@esbuild/openbsd-x64': 0.18.20 2406 | '@esbuild/sunos-x64': 0.18.20 2407 | '@esbuild/win32-arm64': 0.18.20 2408 | '@esbuild/win32-ia32': 0.18.20 2409 | '@esbuild/win32-x64': 0.18.20 2410 | dev: true 2411 | 2412 | /esbuild@0.19.5: 2413 | resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} 2414 | engines: {node: '>=12'} 2415 | hasBin: true 2416 | requiresBuild: true 2417 | optionalDependencies: 2418 | '@esbuild/android-arm': 0.19.5 2419 | '@esbuild/android-arm64': 0.19.5 2420 | '@esbuild/android-x64': 0.19.5 2421 | '@esbuild/darwin-arm64': 0.19.5 2422 | '@esbuild/darwin-x64': 0.19.5 2423 | '@esbuild/freebsd-arm64': 0.19.5 2424 | '@esbuild/freebsd-x64': 0.19.5 2425 | '@esbuild/linux-arm': 0.19.5 2426 | '@esbuild/linux-arm64': 0.19.5 2427 | '@esbuild/linux-ia32': 0.19.5 2428 | '@esbuild/linux-loong64': 0.19.5 2429 | '@esbuild/linux-mips64el': 0.19.5 2430 | '@esbuild/linux-ppc64': 0.19.5 2431 | '@esbuild/linux-riscv64': 0.19.5 2432 | '@esbuild/linux-s390x': 0.19.5 2433 | '@esbuild/linux-x64': 0.19.5 2434 | '@esbuild/netbsd-x64': 0.19.5 2435 | '@esbuild/openbsd-x64': 0.19.5 2436 | '@esbuild/sunos-x64': 0.19.5 2437 | '@esbuild/win32-arm64': 0.19.5 2438 | '@esbuild/win32-ia32': 0.19.5 2439 | '@esbuild/win32-x64': 0.19.5 2440 | dev: true 2441 | 2442 | /esbuild@0.20.2: 2443 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 2444 | engines: {node: '>=12'} 2445 | hasBin: true 2446 | requiresBuild: true 2447 | optionalDependencies: 2448 | '@esbuild/aix-ppc64': 0.20.2 2449 | '@esbuild/android-arm': 0.20.2 2450 | '@esbuild/android-arm64': 0.20.2 2451 | '@esbuild/android-x64': 0.20.2 2452 | '@esbuild/darwin-arm64': 0.20.2 2453 | '@esbuild/darwin-x64': 0.20.2 2454 | '@esbuild/freebsd-arm64': 0.20.2 2455 | '@esbuild/freebsd-x64': 0.20.2 2456 | '@esbuild/linux-arm': 0.20.2 2457 | '@esbuild/linux-arm64': 0.20.2 2458 | '@esbuild/linux-ia32': 0.20.2 2459 | '@esbuild/linux-loong64': 0.20.2 2460 | '@esbuild/linux-mips64el': 0.20.2 2461 | '@esbuild/linux-ppc64': 0.20.2 2462 | '@esbuild/linux-riscv64': 0.20.2 2463 | '@esbuild/linux-s390x': 0.20.2 2464 | '@esbuild/linux-x64': 0.20.2 2465 | '@esbuild/netbsd-x64': 0.20.2 2466 | '@esbuild/openbsd-x64': 0.20.2 2467 | '@esbuild/sunos-x64': 0.20.2 2468 | '@esbuild/win32-arm64': 0.20.2 2469 | '@esbuild/win32-ia32': 0.20.2 2470 | '@esbuild/win32-x64': 0.20.2 2471 | dev: true 2472 | 2473 | /escalade@3.1.1: 2474 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 2475 | engines: {node: '>=6'} 2476 | dev: true 2477 | 2478 | /escape-string-regexp@1.0.5: 2479 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 2480 | engines: {node: '>=0.8.0'} 2481 | requiresBuild: true 2482 | dev: true 2483 | 2484 | /estree-walker@2.0.2: 2485 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 2486 | dev: true 2487 | 2488 | /estree-walker@3.0.3: 2489 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 2490 | dependencies: 2491 | '@types/estree': 1.0.5 2492 | dev: true 2493 | 2494 | /execa@8.0.1: 2495 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 2496 | engines: {node: '>=16.17'} 2497 | dependencies: 2498 | cross-spawn: 7.0.3 2499 | get-stream: 8.0.1 2500 | human-signals: 5.0.0 2501 | is-stream: 3.0.0 2502 | merge-stream: 2.0.0 2503 | npm-run-path: 5.3.0 2504 | onetime: 6.0.0 2505 | signal-exit: 4.1.0 2506 | strip-final-newline: 3.0.0 2507 | dev: true 2508 | 2509 | /fast-glob@3.3.2: 2510 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 2511 | engines: {node: '>=8.6.0'} 2512 | dependencies: 2513 | '@nodelib/fs.stat': 2.0.5 2514 | '@nodelib/fs.walk': 1.2.8 2515 | glob-parent: 5.1.2 2516 | merge2: 1.4.1 2517 | micromatch: 4.0.5 2518 | dev: true 2519 | 2520 | /fast-xml-parser@4.2.5: 2521 | resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} 2522 | hasBin: true 2523 | dependencies: 2524 | strnum: 1.0.5 2525 | dev: true 2526 | 2527 | /fastq@1.15.0: 2528 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 2529 | dependencies: 2530 | reusify: 1.0.4 2531 | dev: true 2532 | 2533 | /fill-range@7.0.1: 2534 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2535 | engines: {node: '>=8'} 2536 | dependencies: 2537 | to-regex-range: 5.0.1 2538 | dev: true 2539 | 2540 | /fs-extra@11.1.1: 2541 | resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} 2542 | engines: {node: '>=14.14'} 2543 | dependencies: 2544 | graceful-fs: 4.2.11 2545 | jsonfile: 6.1.0 2546 | universalify: 2.0.1 2547 | dev: true 2548 | 2549 | /fs.realpath@1.0.0: 2550 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2551 | dev: true 2552 | 2553 | /fsevents@2.3.3: 2554 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2555 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2556 | os: [darwin] 2557 | requiresBuild: true 2558 | dev: true 2559 | optional: true 2560 | 2561 | /function-bind@1.1.2: 2562 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 2563 | dev: true 2564 | 2565 | /gensync@1.0.0-beta.2: 2566 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 2567 | engines: {node: '>=6.9.0'} 2568 | dev: true 2569 | 2570 | /get-caller-file@2.0.5: 2571 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 2572 | engines: {node: 6.* || 8.* || >= 10.*} 2573 | dev: true 2574 | 2575 | /get-func-name@2.0.2: 2576 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 2577 | dev: true 2578 | 2579 | /get-stream@8.0.1: 2580 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 2581 | engines: {node: '>=16'} 2582 | dev: true 2583 | 2584 | /glob-parent@5.1.2: 2585 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2586 | engines: {node: '>= 6'} 2587 | dependencies: 2588 | is-glob: 4.0.3 2589 | dev: true 2590 | 2591 | /glob@8.1.0: 2592 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 2593 | engines: {node: '>=12'} 2594 | dependencies: 2595 | fs.realpath: 1.0.0 2596 | inflight: 1.0.6 2597 | inherits: 2.0.4 2598 | minimatch: 5.1.6 2599 | once: 1.4.0 2600 | dev: true 2601 | 2602 | /globals@11.12.0: 2603 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 2604 | engines: {node: '>=4'} 2605 | dev: true 2606 | 2607 | /globby@13.2.2: 2608 | resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} 2609 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2610 | dependencies: 2611 | dir-glob: 3.0.1 2612 | fast-glob: 3.3.2 2613 | ignore: 5.2.4 2614 | merge2: 1.4.1 2615 | slash: 4.0.0 2616 | dev: true 2617 | 2618 | /graceful-fs@4.2.11: 2619 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2620 | dev: true 2621 | 2622 | /has-flag@3.0.0: 2623 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2624 | engines: {node: '>=4'} 2625 | requiresBuild: true 2626 | dev: true 2627 | 2628 | /has-flag@4.0.0: 2629 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2630 | engines: {node: '>=8'} 2631 | dev: true 2632 | 2633 | /hasown@2.0.0: 2634 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 2635 | engines: {node: '>= 0.4'} 2636 | dependencies: 2637 | function-bind: 1.1.2 2638 | dev: true 2639 | 2640 | /hookable@5.5.3: 2641 | resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 2642 | dev: true 2643 | 2644 | /human-signals@5.0.0: 2645 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 2646 | engines: {node: '>=16.17.0'} 2647 | dev: true 2648 | 2649 | /husky@9.0.11: 2650 | resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} 2651 | engines: {node: '>=18'} 2652 | hasBin: true 2653 | dev: true 2654 | 2655 | /ignore@5.2.4: 2656 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 2657 | engines: {node: '>= 4'} 2658 | dev: true 2659 | 2660 | /inflight@1.0.6: 2661 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2662 | dependencies: 2663 | once: 1.4.0 2664 | wrappy: 1.0.2 2665 | dev: true 2666 | 2667 | /inherits@2.0.4: 2668 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2669 | dev: true 2670 | 2671 | /is-builtin-module@3.2.1: 2672 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 2673 | engines: {node: '>=6'} 2674 | dependencies: 2675 | builtin-modules: 3.3.0 2676 | dev: true 2677 | 2678 | /is-core-module@2.13.1: 2679 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2680 | dependencies: 2681 | hasown: 2.0.0 2682 | dev: true 2683 | 2684 | /is-extglob@2.1.1: 2685 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2686 | engines: {node: '>=0.10.0'} 2687 | dev: true 2688 | 2689 | /is-fullwidth-code-point@3.0.0: 2690 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2691 | engines: {node: '>=8'} 2692 | dev: true 2693 | 2694 | /is-glob@4.0.3: 2695 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2696 | engines: {node: '>=0.10.0'} 2697 | dependencies: 2698 | is-extglob: 2.1.1 2699 | dev: true 2700 | 2701 | /is-module@1.0.0: 2702 | resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 2703 | dev: true 2704 | 2705 | /is-number@7.0.0: 2706 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2707 | engines: {node: '>=0.12.0'} 2708 | dev: true 2709 | 2710 | /is-reference@1.2.1: 2711 | resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 2712 | dependencies: 2713 | '@types/estree': 1.0.5 2714 | dev: true 2715 | 2716 | /is-stream@3.0.0: 2717 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2718 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2719 | dev: true 2720 | 2721 | /isexe@2.0.0: 2722 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2723 | dev: true 2724 | 2725 | /jiti@1.21.0: 2726 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 2727 | hasBin: true 2728 | dev: true 2729 | 2730 | /js-tokens@4.0.0: 2731 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2732 | requiresBuild: true 2733 | dev: true 2734 | 2735 | /js-tokens@9.0.0: 2736 | resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} 2737 | dev: true 2738 | 2739 | /jsesc@2.5.2: 2740 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 2741 | engines: {node: '>=4'} 2742 | hasBin: true 2743 | dev: true 2744 | 2745 | /json5@2.2.3: 2746 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 2747 | engines: {node: '>=6'} 2748 | hasBin: true 2749 | dev: true 2750 | 2751 | /jsonc-parser@3.2.0: 2752 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 2753 | dev: true 2754 | 2755 | /jsonfile@6.1.0: 2756 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 2757 | dependencies: 2758 | universalify: 2.0.1 2759 | optionalDependencies: 2760 | graceful-fs: 4.2.11 2761 | dev: true 2762 | 2763 | /just-extend@6.2.0: 2764 | resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} 2765 | dev: true 2766 | 2767 | /local-pkg@0.5.0: 2768 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 2769 | engines: {node: '>=14'} 2770 | dependencies: 2771 | mlly: 1.6.1 2772 | pkg-types: 1.0.3 2773 | dev: true 2774 | 2775 | /lodash.get@4.4.2: 2776 | resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} 2777 | dev: true 2778 | 2779 | /lodash@4.17.21: 2780 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2781 | dev: true 2782 | 2783 | /loupe@2.3.7: 2784 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 2785 | dependencies: 2786 | get-func-name: 2.0.2 2787 | dev: true 2788 | 2789 | /lru-cache@5.1.1: 2790 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 2791 | dependencies: 2792 | yallist: 3.1.1 2793 | dev: true 2794 | 2795 | /magic-string@0.30.5: 2796 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 2797 | engines: {node: '>=12'} 2798 | dependencies: 2799 | '@jridgewell/sourcemap-codec': 1.4.15 2800 | dev: true 2801 | 2802 | /magic-string@0.30.8: 2803 | resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} 2804 | engines: {node: '>=12'} 2805 | dependencies: 2806 | '@jridgewell/sourcemap-codec': 1.4.15 2807 | dev: true 2808 | 2809 | /merge-stream@2.0.0: 2810 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2811 | dev: true 2812 | 2813 | /merge2@1.4.1: 2814 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2815 | engines: {node: '>= 8'} 2816 | dev: true 2817 | 2818 | /micromatch@4.0.5: 2819 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2820 | engines: {node: '>=8.6'} 2821 | dependencies: 2822 | braces: 3.0.2 2823 | picomatch: 2.3.1 2824 | dev: true 2825 | 2826 | /mimic-fn@4.0.0: 2827 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2828 | engines: {node: '>=12'} 2829 | dev: true 2830 | 2831 | /minimatch@5.1.6: 2832 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 2833 | engines: {node: '>=10'} 2834 | dependencies: 2835 | brace-expansion: 2.0.1 2836 | dev: true 2837 | 2838 | /mkdist@1.3.0(typescript@5.4.3): 2839 | resolution: {integrity: sha512-ZQrUvcL7LkRdzMREpDyg9AT18N9Tl5jc2qeKAUeEw0KGsgykbHbuRvysGAzTuGtwuSg0WQyNit5jh/k+Er3JEg==} 2840 | hasBin: true 2841 | peerDependencies: 2842 | sass: ^1.63.6 2843 | typescript: '>=5.1.6' 2844 | peerDependenciesMeta: 2845 | sass: 2846 | optional: true 2847 | typescript: 2848 | optional: true 2849 | dependencies: 2850 | citty: 0.1.4 2851 | defu: 6.1.3 2852 | esbuild: 0.18.20 2853 | fs-extra: 11.1.1 2854 | globby: 13.2.2 2855 | jiti: 1.21.0 2856 | mlly: 1.4.2 2857 | mri: 1.2.0 2858 | pathe: 1.1.1 2859 | typescript: 5.4.3 2860 | dev: true 2861 | 2862 | /mlly@1.4.2: 2863 | resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} 2864 | dependencies: 2865 | acorn: 8.11.2 2866 | pathe: 1.1.1 2867 | pkg-types: 1.0.3 2868 | ufo: 1.3.1 2869 | dev: true 2870 | 2871 | /mlly@1.6.1: 2872 | resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} 2873 | dependencies: 2874 | acorn: 8.11.3 2875 | pathe: 1.1.2 2876 | pkg-types: 1.0.3 2877 | ufo: 1.5.3 2878 | dev: true 2879 | 2880 | /mri@1.2.0: 2881 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 2882 | engines: {node: '>=4'} 2883 | dev: true 2884 | 2885 | /ms@2.1.2: 2886 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2887 | dev: true 2888 | 2889 | /nanoid@3.3.7: 2890 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2891 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2892 | hasBin: true 2893 | dev: true 2894 | 2895 | /nise@5.1.9: 2896 | resolution: {integrity: sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==} 2897 | dependencies: 2898 | '@sinonjs/commons': 3.0.1 2899 | '@sinonjs/fake-timers': 11.2.2 2900 | '@sinonjs/text-encoding': 0.7.2 2901 | just-extend: 6.2.0 2902 | path-to-regexp: 6.2.1 2903 | dev: true 2904 | 2905 | /node-releases@2.0.13: 2906 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 2907 | dev: true 2908 | 2909 | /npm-run-path@5.3.0: 2910 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 2911 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2912 | dependencies: 2913 | path-key: 4.0.0 2914 | dev: true 2915 | 2916 | /once@1.4.0: 2917 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2918 | dependencies: 2919 | wrappy: 1.0.2 2920 | dev: true 2921 | 2922 | /onetime@6.0.0: 2923 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2924 | engines: {node: '>=12'} 2925 | dependencies: 2926 | mimic-fn: 4.0.0 2927 | dev: true 2928 | 2929 | /p-limit@5.0.0: 2930 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 2931 | engines: {node: '>=18'} 2932 | dependencies: 2933 | yocto-queue: 1.0.0 2934 | dev: true 2935 | 2936 | /path-key@3.1.1: 2937 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2938 | engines: {node: '>=8'} 2939 | dev: true 2940 | 2941 | /path-key@4.0.0: 2942 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 2943 | engines: {node: '>=12'} 2944 | dev: true 2945 | 2946 | /path-parse@1.0.7: 2947 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2948 | dev: true 2949 | 2950 | /path-to-regexp@6.2.1: 2951 | resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 2952 | dev: true 2953 | 2954 | /path-type@4.0.0: 2955 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2956 | engines: {node: '>=8'} 2957 | dev: true 2958 | 2959 | /pathe@1.1.1: 2960 | resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} 2961 | dev: true 2962 | 2963 | /pathe@1.1.2: 2964 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 2965 | dev: true 2966 | 2967 | /pathval@1.1.1: 2968 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2969 | dev: true 2970 | 2971 | /picocolors@1.0.0: 2972 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2973 | dev: true 2974 | 2975 | /picomatch@2.3.1: 2976 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2977 | engines: {node: '>=8.6'} 2978 | dev: true 2979 | 2980 | /pkg-types@1.0.3: 2981 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} 2982 | dependencies: 2983 | jsonc-parser: 3.2.0 2984 | mlly: 1.4.2 2985 | pathe: 1.1.1 2986 | dev: true 2987 | 2988 | /postcss@8.4.38: 2989 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 2990 | engines: {node: ^10 || ^12 || >=14} 2991 | dependencies: 2992 | nanoid: 3.3.7 2993 | picocolors: 1.0.0 2994 | source-map-js: 1.2.0 2995 | dev: true 2996 | 2997 | /prettier@3.2.5: 2998 | resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} 2999 | engines: {node: '>=14'} 3000 | hasBin: true 3001 | dev: true 3002 | 3003 | /pretty-bytes@6.1.1: 3004 | resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} 3005 | engines: {node: ^14.13.1 || >=16.0.0} 3006 | dev: true 3007 | 3008 | /pretty-format@29.7.0: 3009 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 3010 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 3011 | dependencies: 3012 | '@jest/schemas': 29.6.3 3013 | ansi-styles: 5.2.0 3014 | react-is: 18.2.0 3015 | dev: true 3016 | 3017 | /queue-microtask@1.2.3: 3018 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3019 | dev: true 3020 | 3021 | /react-is@18.2.0: 3022 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 3023 | dev: true 3024 | 3025 | /regenerator-runtime@0.14.0: 3026 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} 3027 | dev: true 3028 | 3029 | /require-directory@2.1.1: 3030 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 3031 | engines: {node: '>=0.10.0'} 3032 | dev: true 3033 | 3034 | /resolve@1.22.8: 3035 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3036 | hasBin: true 3037 | dependencies: 3038 | is-core-module: 2.13.1 3039 | path-parse: 1.0.7 3040 | supports-preserve-symlinks-flag: 1.0.0 3041 | dev: true 3042 | 3043 | /reusify@1.0.4: 3044 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3045 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3046 | dev: true 3047 | 3048 | /rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.4.3): 3049 | resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} 3050 | engines: {node: '>=16'} 3051 | peerDependencies: 3052 | rollup: ^3.29.4 || ^4 3053 | typescript: ^4.5 || ^5.0 3054 | dependencies: 3055 | magic-string: 0.30.5 3056 | rollup: 3.29.4 3057 | typescript: 5.4.3 3058 | optionalDependencies: 3059 | '@babel/code-frame': 7.24.2 3060 | dev: true 3061 | 3062 | /rollup@3.29.4: 3063 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 3064 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 3065 | hasBin: true 3066 | optionalDependencies: 3067 | fsevents: 2.3.3 3068 | dev: true 3069 | 3070 | /rollup@4.13.2: 3071 | resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} 3072 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 3073 | hasBin: true 3074 | dependencies: 3075 | '@types/estree': 1.0.5 3076 | optionalDependencies: 3077 | '@rollup/rollup-android-arm-eabi': 4.13.2 3078 | '@rollup/rollup-android-arm64': 4.13.2 3079 | '@rollup/rollup-darwin-arm64': 4.13.2 3080 | '@rollup/rollup-darwin-x64': 4.13.2 3081 | '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 3082 | '@rollup/rollup-linux-arm64-gnu': 4.13.2 3083 | '@rollup/rollup-linux-arm64-musl': 4.13.2 3084 | '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 3085 | '@rollup/rollup-linux-riscv64-gnu': 4.13.2 3086 | '@rollup/rollup-linux-s390x-gnu': 4.13.2 3087 | '@rollup/rollup-linux-x64-gnu': 4.13.2 3088 | '@rollup/rollup-linux-x64-musl': 4.13.2 3089 | '@rollup/rollup-win32-arm64-msvc': 4.13.2 3090 | '@rollup/rollup-win32-ia32-msvc': 4.13.2 3091 | '@rollup/rollup-win32-x64-msvc': 4.13.2 3092 | fsevents: 2.3.3 3093 | dev: true 3094 | 3095 | /run-parallel@1.2.0: 3096 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3097 | dependencies: 3098 | queue-microtask: 1.2.3 3099 | dev: true 3100 | 3101 | /rxjs@7.8.1: 3102 | resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 3103 | dependencies: 3104 | tslib: 2.6.2 3105 | dev: true 3106 | 3107 | /scule@1.0.0: 3108 | resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} 3109 | dev: true 3110 | 3111 | /semver@6.3.1: 3112 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 3113 | hasBin: true 3114 | dev: true 3115 | 3116 | /shebang-command@2.0.0: 3117 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3118 | engines: {node: '>=8'} 3119 | dependencies: 3120 | shebang-regex: 3.0.0 3121 | dev: true 3122 | 3123 | /shebang-regex@3.0.0: 3124 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3125 | engines: {node: '>=8'} 3126 | dev: true 3127 | 3128 | /shell-quote@1.8.1: 3129 | resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} 3130 | dev: true 3131 | 3132 | /siginfo@2.0.0: 3133 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 3134 | dev: true 3135 | 3136 | /signal-exit@4.1.0: 3137 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3138 | engines: {node: '>=14'} 3139 | dev: true 3140 | 3141 | /sinon@16.1.3: 3142 | resolution: {integrity: sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA==} 3143 | dependencies: 3144 | '@sinonjs/commons': 3.0.1 3145 | '@sinonjs/fake-timers': 10.3.0 3146 | '@sinonjs/samsam': 8.0.0 3147 | diff: 5.2.0 3148 | nise: 5.1.9 3149 | supports-color: 7.2.0 3150 | dev: true 3151 | 3152 | /slash@4.0.0: 3153 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} 3154 | engines: {node: '>=12'} 3155 | dev: true 3156 | 3157 | /source-map-js@1.2.0: 3158 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 3159 | engines: {node: '>=0.10.0'} 3160 | dev: true 3161 | 3162 | /spawn-command@0.0.2: 3163 | resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} 3164 | dev: true 3165 | 3166 | /stackback@0.0.2: 3167 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 3168 | dev: true 3169 | 3170 | /std-env@3.7.0: 3171 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 3172 | dev: true 3173 | 3174 | /string-width@4.2.3: 3175 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3176 | engines: {node: '>=8'} 3177 | dependencies: 3178 | emoji-regex: 8.0.0 3179 | is-fullwidth-code-point: 3.0.0 3180 | strip-ansi: 6.0.1 3181 | dev: true 3182 | 3183 | /strip-ansi@6.0.1: 3184 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3185 | engines: {node: '>=8'} 3186 | dependencies: 3187 | ansi-regex: 5.0.1 3188 | dev: true 3189 | 3190 | /strip-final-newline@3.0.0: 3191 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3192 | engines: {node: '>=12'} 3193 | dev: true 3194 | 3195 | /strip-literal@2.1.0: 3196 | resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} 3197 | dependencies: 3198 | js-tokens: 9.0.0 3199 | dev: true 3200 | 3201 | /strnum@1.0.5: 3202 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 3203 | dev: true 3204 | 3205 | /supports-color@5.5.0: 3206 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3207 | engines: {node: '>=4'} 3208 | requiresBuild: true 3209 | dependencies: 3210 | has-flag: 3.0.0 3211 | dev: true 3212 | 3213 | /supports-color@7.2.0: 3214 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3215 | engines: {node: '>=8'} 3216 | dependencies: 3217 | has-flag: 4.0.0 3218 | dev: true 3219 | 3220 | /supports-color@8.1.1: 3221 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 3222 | engines: {node: '>=10'} 3223 | dependencies: 3224 | has-flag: 4.0.0 3225 | dev: true 3226 | 3227 | /supports-preserve-symlinks-flag@1.0.0: 3228 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3229 | engines: {node: '>= 0.4'} 3230 | dev: true 3231 | 3232 | /tinybench@2.6.0: 3233 | resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} 3234 | dev: true 3235 | 3236 | /tinypool@0.8.3: 3237 | resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} 3238 | engines: {node: '>=14.0.0'} 3239 | dev: true 3240 | 3241 | /tinyspy@2.2.1: 3242 | resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} 3243 | engines: {node: '>=14.0.0'} 3244 | dev: true 3245 | 3246 | /to-fast-properties@2.0.0: 3247 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3248 | engines: {node: '>=4'} 3249 | dev: true 3250 | 3251 | /to-regex-range@5.0.1: 3252 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3253 | engines: {node: '>=8.0'} 3254 | dependencies: 3255 | is-number: 7.0.0 3256 | dev: true 3257 | 3258 | /tree-kill@1.2.2: 3259 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 3260 | hasBin: true 3261 | dev: true 3262 | 3263 | /tslib@1.14.1: 3264 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 3265 | dev: true 3266 | 3267 | /tslib@2.6.2: 3268 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3269 | dev: true 3270 | 3271 | /type-detect@4.0.8: 3272 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3273 | engines: {node: '>=4'} 3274 | dev: true 3275 | 3276 | /typescript@5.4.3: 3277 | resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} 3278 | engines: {node: '>=14.17'} 3279 | hasBin: true 3280 | dev: true 3281 | 3282 | /ufo@1.3.1: 3283 | resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} 3284 | dev: true 3285 | 3286 | /ufo@1.5.3: 3287 | resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} 3288 | dev: true 3289 | 3290 | /unbuild@2.0.0(typescript@5.4.3): 3291 | resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} 3292 | hasBin: true 3293 | peerDependencies: 3294 | typescript: ^5.1.6 3295 | peerDependenciesMeta: 3296 | typescript: 3297 | optional: true 3298 | dependencies: 3299 | '@rollup/plugin-alias': 5.0.1(rollup@3.29.4) 3300 | '@rollup/plugin-commonjs': 25.0.7(rollup@3.29.4) 3301 | '@rollup/plugin-json': 6.0.1(rollup@3.29.4) 3302 | '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) 3303 | '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) 3304 | '@rollup/pluginutils': 5.0.5(rollup@3.29.4) 3305 | chalk: 5.3.0 3306 | citty: 0.1.4 3307 | consola: 3.2.3 3308 | defu: 6.1.3 3309 | esbuild: 0.19.5 3310 | globby: 13.2.2 3311 | hookable: 5.5.3 3312 | jiti: 1.21.0 3313 | magic-string: 0.30.5 3314 | mkdist: 1.3.0(typescript@5.4.3) 3315 | mlly: 1.4.2 3316 | pathe: 1.1.1 3317 | pkg-types: 1.0.3 3318 | pretty-bytes: 6.1.1 3319 | rollup: 3.29.4 3320 | rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.4.3) 3321 | scule: 1.0.0 3322 | typescript: 5.4.3 3323 | untyped: 1.4.0 3324 | transitivePeerDependencies: 3325 | - sass 3326 | - supports-color 3327 | dev: true 3328 | 3329 | /undici-types@5.26.5: 3330 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3331 | dev: true 3332 | 3333 | /universalify@2.0.1: 3334 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 3335 | engines: {node: '>= 10.0.0'} 3336 | dev: true 3337 | 3338 | /untyped@1.4.0: 3339 | resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} 3340 | hasBin: true 3341 | dependencies: 3342 | '@babel/core': 7.23.3 3343 | '@babel/standalone': 7.23.3 3344 | '@babel/types': 7.23.3 3345 | defu: 6.1.3 3346 | jiti: 1.21.0 3347 | mri: 1.2.0 3348 | scule: 1.0.0 3349 | transitivePeerDependencies: 3350 | - supports-color 3351 | dev: true 3352 | 3353 | /update-browserslist-db@1.0.13(browserslist@4.22.1): 3354 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3355 | hasBin: true 3356 | peerDependencies: 3357 | browserslist: '>= 4.21.0' 3358 | dependencies: 3359 | browserslist: 4.22.1 3360 | escalade: 3.1.1 3361 | picocolors: 1.0.0 3362 | dev: true 3363 | 3364 | /uuid@9.0.1: 3365 | resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} 3366 | hasBin: true 3367 | dev: true 3368 | 3369 | /vite-node@1.4.0(@types/node@20.12.2): 3370 | resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} 3371 | engines: {node: ^18.0.0 || >=20.0.0} 3372 | hasBin: true 3373 | dependencies: 3374 | cac: 6.7.14 3375 | debug: 4.3.4 3376 | pathe: 1.1.2 3377 | picocolors: 1.0.0 3378 | vite: 5.2.7(@types/node@20.12.2) 3379 | transitivePeerDependencies: 3380 | - '@types/node' 3381 | - less 3382 | - lightningcss 3383 | - sass 3384 | - stylus 3385 | - sugarss 3386 | - supports-color 3387 | - terser 3388 | dev: true 3389 | 3390 | /vite@5.2.7(@types/node@20.12.2): 3391 | resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} 3392 | engines: {node: ^18.0.0 || >=20.0.0} 3393 | hasBin: true 3394 | peerDependencies: 3395 | '@types/node': ^18.0.0 || >=20.0.0 3396 | less: '*' 3397 | lightningcss: ^1.21.0 3398 | sass: '*' 3399 | stylus: '*' 3400 | sugarss: '*' 3401 | terser: ^5.4.0 3402 | peerDependenciesMeta: 3403 | '@types/node': 3404 | optional: true 3405 | less: 3406 | optional: true 3407 | lightningcss: 3408 | optional: true 3409 | sass: 3410 | optional: true 3411 | stylus: 3412 | optional: true 3413 | sugarss: 3414 | optional: true 3415 | terser: 3416 | optional: true 3417 | dependencies: 3418 | '@types/node': 20.12.2 3419 | esbuild: 0.20.2 3420 | postcss: 8.4.38 3421 | rollup: 4.13.2 3422 | optionalDependencies: 3423 | fsevents: 2.3.3 3424 | dev: true 3425 | 3426 | /vitest@1.4.0(@types/node@20.12.2): 3427 | resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} 3428 | engines: {node: ^18.0.0 || >=20.0.0} 3429 | hasBin: true 3430 | peerDependencies: 3431 | '@edge-runtime/vm': '*' 3432 | '@types/node': ^18.0.0 || >=20.0.0 3433 | '@vitest/browser': 1.4.0 3434 | '@vitest/ui': 1.4.0 3435 | happy-dom: '*' 3436 | jsdom: '*' 3437 | peerDependenciesMeta: 3438 | '@edge-runtime/vm': 3439 | optional: true 3440 | '@types/node': 3441 | optional: true 3442 | '@vitest/browser': 3443 | optional: true 3444 | '@vitest/ui': 3445 | optional: true 3446 | happy-dom: 3447 | optional: true 3448 | jsdom: 3449 | optional: true 3450 | dependencies: 3451 | '@types/node': 20.12.2 3452 | '@vitest/expect': 1.4.0 3453 | '@vitest/runner': 1.4.0 3454 | '@vitest/snapshot': 1.4.0 3455 | '@vitest/spy': 1.4.0 3456 | '@vitest/utils': 1.4.0 3457 | acorn-walk: 8.3.2 3458 | chai: 4.4.1 3459 | debug: 4.3.4 3460 | execa: 8.0.1 3461 | local-pkg: 0.5.0 3462 | magic-string: 0.30.8 3463 | pathe: 1.1.2 3464 | picocolors: 1.0.0 3465 | std-env: 3.7.0 3466 | strip-literal: 2.1.0 3467 | tinybench: 2.6.0 3468 | tinypool: 0.8.3 3469 | vite: 5.2.7(@types/node@20.12.2) 3470 | vite-node: 1.4.0(@types/node@20.12.2) 3471 | why-is-node-running: 2.2.2 3472 | transitivePeerDependencies: 3473 | - less 3474 | - lightningcss 3475 | - sass 3476 | - stylus 3477 | - sugarss 3478 | - supports-color 3479 | - terser 3480 | dev: true 3481 | 3482 | /which@2.0.2: 3483 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3484 | engines: {node: '>= 8'} 3485 | hasBin: true 3486 | dependencies: 3487 | isexe: 2.0.0 3488 | dev: true 3489 | 3490 | /why-is-node-running@2.2.2: 3491 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 3492 | engines: {node: '>=8'} 3493 | hasBin: true 3494 | dependencies: 3495 | siginfo: 2.0.0 3496 | stackback: 0.0.2 3497 | dev: true 3498 | 3499 | /wrap-ansi@7.0.0: 3500 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3501 | engines: {node: '>=10'} 3502 | dependencies: 3503 | ansi-styles: 4.3.0 3504 | string-width: 4.2.3 3505 | strip-ansi: 6.0.1 3506 | dev: true 3507 | 3508 | /wrappy@1.0.2: 3509 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3510 | dev: true 3511 | 3512 | /y18n@5.0.8: 3513 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 3514 | engines: {node: '>=10'} 3515 | dev: true 3516 | 3517 | /yallist@3.1.1: 3518 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 3519 | dev: true 3520 | 3521 | /yargs-parser@21.1.1: 3522 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 3523 | engines: {node: '>=12'} 3524 | dev: true 3525 | 3526 | /yargs@17.7.2: 3527 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 3528 | engines: {node: '>=12'} 3529 | dependencies: 3530 | cliui: 8.0.1 3531 | escalade: 3.1.1 3532 | get-caller-file: 2.0.5 3533 | require-directory: 2.1.1 3534 | string-width: 4.2.3 3535 | y18n: 5.0.8 3536 | yargs-parser: 21.1.1 3537 | dev: true 3538 | 3539 | /yocto-queue@1.0.0: 3540 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 3541 | engines: {node: '>=12.20'} 3542 | dev: true 3543 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": ["config:base"] 4 | } 5 | -------------------------------------------------------------------------------- /src/athena-query.ts: -------------------------------------------------------------------------------- 1 | import * as helpers from "./helper"; 2 | import type { Athena } from "@aws-sdk/client-athena"; 3 | 4 | type Options = { 5 | /** 6 | * The name of the workgroup in which the query is being started. 7 | */ 8 | workgroup?: string; 9 | 10 | /** 11 | * The name of the database used in the query execution. 12 | * The database must exist in the catalog. 13 | */ 14 | db?: string; 15 | 16 | /** 17 | * The name of the data catalog used in the query execution. 18 | */ 19 | catalog?: string; 20 | 21 | /** 22 | * The location in Amazon S3 where your query and calculation results are stored. 23 | */ 24 | outputLocation?: string; 25 | }; 26 | 27 | export class AthenaQuery { 28 | constructor( 29 | private readonly athena: Athena, 30 | private readonly options?: Options, 31 | ) {} 32 | 33 | /** 34 | * @see https://github.com/classmethod/athena-query#usage 35 | * 36 | * @param sql 37 | * @param options 38 | */ 39 | async *query( 40 | sql: string, 41 | options?: { 42 | /** 43 | * A list of values for the parameters in a query. 44 | * The values are applied sequentially to the parameters in the query in the order in which the parameters occur. 45 | */ 46 | executionParameters?: (string | number | BigInt)[]; 47 | 48 | /** 49 | * The maximum number of results (rows) to return in this request. 50 | * 51 | * @deprecated We recommend you to use LIMIT clause in SQL. 52 | * Because even if you set it, athena-query will continue to retrieve results unless you break your for-loop. 53 | * 54 | * @see https://docs.aws.amazon.com/athena/latest/ug/select.html#select-parameters 55 | */ 56 | maxResults?: number; 57 | }, 58 | ): AsyncGenerator { 59 | const QueryExecutionId = await helpers.startQueryExecution({ 60 | athena: this.athena, 61 | sql, 62 | executionParameters: options?.executionParameters?.map((param) => { 63 | const typeOfParam = typeof param; 64 | switch (typeOfParam) { 65 | case "bigint": 66 | case "number": 67 | return param.toString(); 68 | case "string": 69 | return `'${param}'`; 70 | default: 71 | throw new Error(`${typeOfParam} type is not allowed.`); 72 | } 73 | }), 74 | ...this.options, 75 | }); 76 | 77 | await helpers.waitExecutionCompleted({ 78 | athena: this.athena, 79 | QueryExecutionId, 80 | }); 81 | 82 | let nextToken: string | undefined; 83 | 84 | do { 85 | const queryResults = await helpers.getQueryResults({ 86 | athena: this.athena, 87 | NextToken: nextToken, 88 | MaxResults: options?.maxResults, 89 | QueryExecutionId, 90 | }); 91 | 92 | yield* queryResults.items; 93 | 94 | nextToken = queryResults.nextToken; 95 | } while (nextToken); 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/helper.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | Athena, 3 | GetQueryResultsCommandOutput, 4 | ResultConfiguration, 5 | } from "@aws-sdk/client-athena"; 6 | 7 | export type AtheneRecordData = Record; 8 | type AtheneRecord = AtheneRecordData[]; 9 | 10 | async function startQueryExecution(params: { 11 | athena: Athena; 12 | sql: string; 13 | executionParameters?: string[]; 14 | workgroup?: string; 15 | db?: string; 16 | catalog?: string; 17 | outputLocation?: string; 18 | }) { 19 | const output = await params.athena.startQueryExecution({ 20 | QueryString: params.sql, 21 | ExecutionParameters: params.executionParameters, 22 | WorkGroup: params.workgroup || "primary", 23 | QueryExecutionContext: { 24 | Database: params.db || "default", 25 | Catalog: params.catalog, 26 | }, 27 | ResultConfiguration: { 28 | OutputLocation: params.outputLocation, 29 | }, 30 | }); 31 | 32 | if (!output.QueryExecutionId) { 33 | throw new Error("No QueryExecutionId was responded."); 34 | } 35 | 36 | return output.QueryExecutionId; 37 | } 38 | 39 | async function waitExecutionCompleted(params: { 40 | athena: Athena; 41 | QueryExecutionId: string; 42 | }): Promise { 43 | const data = await params.athena.getQueryExecution({ 44 | QueryExecutionId: params.QueryExecutionId, 45 | }); 46 | 47 | const state = data.QueryExecution?.Status?.State; 48 | const reason = data.QueryExecution?.Status?.StateChangeReason; 49 | 50 | if (state === "SUCCEEDED") { 51 | return; 52 | } else if (state === "FAILED") { 53 | throw new Error(reason); 54 | } else { 55 | await wait(200); 56 | await waitExecutionCompleted(params); 57 | } 58 | } 59 | 60 | async function getQueryResults(params: { 61 | athena: Athena; 62 | MaxResults?: number; 63 | NextToken?: string; 64 | QueryExecutionId: string; 65 | }): Promise<{ items: AtheneRecord; nextToken?: string }> { 66 | const queryResults = await params.athena.getQueryResults({ 67 | QueryExecutionId: params.QueryExecutionId, 68 | MaxResults: params.MaxResults, 69 | NextToken: params.NextToken, 70 | }); 71 | return { 72 | items: cleanUpPaginatedDML( 73 | queryResults, 74 | // If NextToken is not given, ignore first data. 75 | // Because the first data is header info. 76 | !params.NextToken, 77 | ), 78 | nextToken: queryResults.NextToken, 79 | }; 80 | } 81 | 82 | function cleanUpPaginatedDML( 83 | queryResults: GetQueryResultsCommandOutput, 84 | ignoreFirstData: boolean, 85 | ): AtheneRecord { 86 | const dataTypes = getDataTypes(queryResults); 87 | if (!dataTypes) return []; 88 | 89 | const columnNames = Object.keys(dataTypes); 90 | 91 | const items = queryResults.ResultSet?.Rows?.reduce((acc, { Data }, index) => { 92 | if (ignoreFirstData && index === 0) return acc; 93 | if (!Data) return acc; 94 | 95 | const rowObject = Data?.reduce( 96 | (acc, row, index) => { 97 | if (row.VarCharValue !== undefined && row.VarCharValue !== null) { 98 | // use mutable operation for performance 99 | acc[columnNames[index]] = row.VarCharValue; 100 | } 101 | return acc; 102 | }, 103 | {} as Record, 104 | ); 105 | 106 | // use mutable operation for performance 107 | acc.push(addDataType(rowObject, dataTypes)); 108 | return acc; 109 | }, [] as AtheneRecord); 110 | 111 | return items ?? []; 112 | } 113 | 114 | function addDataType( 115 | input: Record, 116 | dataTypes: Record, 117 | ): AtheneRecordData { 118 | const updatedObjectWithDataType: Record< 119 | string, 120 | null | string | number | BigInt 121 | > = {}; 122 | 123 | for (const key in input) { 124 | if (input[key] === null || input[key] === undefined) { 125 | updatedObjectWithDataType[key] = null; 126 | } else { 127 | switch (dataTypes[key]) { 128 | case "varchar": 129 | updatedObjectWithDataType[key] = input[key]; 130 | break; 131 | case "boolean": 132 | updatedObjectWithDataType[key] = JSON.parse(input[key].toLowerCase()); 133 | break; 134 | case "bigint": 135 | updatedObjectWithDataType[key] = BigInt(input[key]); 136 | break; 137 | case "integer": 138 | case "tinyint": 139 | case "smallint": 140 | case "int": 141 | case "float": 142 | case "double": 143 | updatedObjectWithDataType[key] = Number(input[key]); 144 | break; 145 | case "json": 146 | updatedObjectWithDataType[key] = JSON.parse(input[key]); 147 | break; 148 | default: 149 | updatedObjectWithDataType[key] = input[key]; 150 | } 151 | } 152 | } 153 | return updatedObjectWithDataType; 154 | } 155 | 156 | function getDataTypes( 157 | queryResults: GetQueryResultsCommandOutput, 158 | ): Record | undefined { 159 | const columnInfoArray = queryResults.ResultSet?.ResultSetMetadata?.ColumnInfo; 160 | 161 | const columnInfoObject = columnInfoArray?.reduce( 162 | (acc, columnInfo) => { 163 | if (columnInfo.Name && columnInfo.Type) { 164 | acc[columnInfo.Name] = columnInfo.Type; 165 | } 166 | return acc; 167 | }, 168 | {} as Record, 169 | ); 170 | 171 | return columnInfoObject; 172 | } 173 | 174 | const wait = (ms: number) => new Promise((res) => setTimeout(res, ms)); 175 | 176 | export { startQueryExecution, waitExecutionCompleted, getQueryResults }; 177 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { AthenaQuery } from "./athena-query"; 2 | 3 | export default AthenaQuery; 4 | -------------------------------------------------------------------------------- /test/index.test.ts: -------------------------------------------------------------------------------- 1 | import { beforeEach, test, expect } from "vitest"; 2 | import { 3 | Athena, 4 | AthenaClient, 5 | GetQueryExecutionCommand, 6 | GetQueryResultsCommand, 7 | StartQueryExecutionCommand, 8 | } from "@aws-sdk/client-athena"; 9 | import { mockClient } from "aws-sdk-client-mock"; 10 | import AthenaQuery from "../src"; 11 | 12 | const athenaMock = mockClient(AthenaClient); 13 | 14 | const athena = new Athena({}); 15 | 16 | beforeEach(() => { 17 | athenaMock.reset(); 18 | }); 19 | 20 | test("parse to json following ColumnInfo", async () => { 21 | athenaMock 22 | .on(StartQueryExecutionCommand) 23 | .resolves({ QueryExecutionId: "test-QueryExecutionId" }) 24 | .on(GetQueryExecutionCommand) 25 | .resolves({ QueryExecution: { Status: { State: "SUCCEEDED" } } }) 26 | .on(GetQueryResultsCommand) 27 | .resolves({ 28 | ResultSet: { 29 | ResultSetMetadata: { 30 | ColumnInfo: [ 31 | { Name: "name", Type: "varchar" }, 32 | { Name: "disabled", Type: "boolean" }, 33 | { Name: "timestamp", Type: "bigint" }, 34 | { Name: "score1", Type: "integer" }, 35 | { Name: "score2", Type: "tinyint" }, 36 | { Name: "score3", Type: "smallint" }, 37 | { Name: "score4", Type: "int" }, 38 | { Name: "rate1", Type: "float" }, 39 | { Name: "rate2", Type: "double" }, 40 | { Name: "metadata", Type: "json" }, 41 | ], 42 | }, 43 | Rows: [ 44 | { 45 | // header row 46 | Data: [ 47 | { VarCharValue: "name" }, 48 | { VarCharValue: "disabled" }, 49 | { VarCharValue: "timestamp" }, 50 | { VarCharValue: "score1" }, 51 | { VarCharValue: "score2" }, 52 | { VarCharValue: "score3" }, 53 | { VarCharValue: "score4" }, 54 | { VarCharValue: "rate1" }, 55 | { VarCharValue: "rate2" }, 56 | { VarCharValue: "metadata" }, 57 | ], 58 | }, 59 | { 60 | Data: [ 61 | { VarCharValue: "test-name-1" }, 62 | { VarCharValue: "true" }, 63 | { VarCharValue: "1669718600001" }, 64 | { VarCharValue: "101" }, 65 | { VarCharValue: "102" }, 66 | { VarCharValue: "103" }, 67 | { VarCharValue: "104" }, 68 | { VarCharValue: "1.01" }, 69 | { VarCharValue: "1.02" }, 70 | { 71 | VarCharValue: JSON.stringify({ 72 | key1: "value1", 73 | key2: "value2", 74 | }), 75 | }, 76 | ], 77 | }, 78 | ], 79 | }, 80 | }); 81 | 82 | const athenaQuery = new AthenaQuery(athena); 83 | const resultGen = athenaQuery.query(""); 84 | 85 | const res1 = await resultGen.next(); 86 | 87 | expect(res1.value).toEqual({ 88 | name: "test-name-1", 89 | disabled: true, 90 | timestamp: 1669718600001n, 91 | score1: 101, 92 | score2: 102, 93 | score3: 103, 94 | score4: 104, 95 | rate1: 1.01, 96 | rate2: 1.02, 97 | metadata: { key1: "value1", key2: "value2" }, 98 | }); 99 | }); 100 | 101 | test("wait query completed", async () => { 102 | athenaMock 103 | .on(StartQueryExecutionCommand) 104 | .resolves({ QueryExecutionId: "test-QueryExecutionId" }) 105 | .on(GetQueryExecutionCommand) 106 | .resolvesOnce({ QueryExecution: { Status: { State: "QUEUED" } } }) 107 | .resolvesOnce({ QueryExecution: { Status: { State: "RUNNING" } } }) 108 | .resolvesOnce({ QueryExecution: { Status: { State: "SUCCEEDED" } } }) 109 | .on(GetQueryResultsCommand) 110 | .resolves({ 111 | ResultSet: { 112 | ResultSetMetadata: { 113 | ColumnInfo: [{ Name: "name", Type: "varchar" }], 114 | }, 115 | Rows: [ 116 | { Data: [{ VarCharValue: "test-name-1" }] }, // header row 117 | { Data: [{ VarCharValue: "test-name-1" }] }, 118 | ], 119 | }, 120 | }); 121 | 122 | const athenaQuery = new AthenaQuery(athena); 123 | const resultGen = athenaQuery.query(""); 124 | 125 | const res1 = await resultGen.next(); 126 | 127 | expect(res1.done).toBe(false); 128 | expect(res1.value).toEqual({ name: "test-name-1" }); 129 | }); 130 | 131 | test("get items with generator", async () => { 132 | athenaMock 133 | .on(StartQueryExecutionCommand) 134 | .resolves({ QueryExecutionId: "test-QueryExecutionId" }) 135 | .on(GetQueryExecutionCommand) 136 | .resolves({ QueryExecution: { Status: { State: "SUCCEEDED" } } }) 137 | .on(GetQueryResultsCommand) 138 | .resolvesOnce({ 139 | NextToken: "test-NextToken-1", 140 | ResultSet: { 141 | ResultSetMetadata: { 142 | ColumnInfo: [{ Name: "name", Type: "varchar" }], 143 | }, 144 | Rows: [ 145 | { Data: [{ VarCharValue: "name" }] }, // header row 146 | { Data: [{ VarCharValue: "test-name-1" }] }, 147 | { Data: [{ VarCharValue: "test-name-2" }] }, 148 | ], 149 | }, 150 | }) 151 | .resolvesOnce({ 152 | ResultSet: { 153 | ResultSetMetadata: { 154 | ColumnInfo: [{ Name: "name", Type: "varchar" }], 155 | }, 156 | Rows: [{ Data: [{ VarCharValue: "test-name-3" }] }], 157 | }, 158 | }); 159 | 160 | const athenaQuery = new AthenaQuery(athena); 161 | const queryResultGen = athenaQuery.query(""); 162 | 163 | const res1 = await queryResultGen.next(); 164 | expect(res1.done).toBe(false); 165 | expect(res1.value).toEqual({ name: "test-name-1" }); 166 | 167 | const res2 = await queryResultGen.next(); 168 | expect(res2.done).toBe(false); 169 | expect(res2.value).toEqual({ name: "test-name-2" }); 170 | 171 | const res3 = await queryResultGen.next(); 172 | expect(res3.done).toBe(false); 173 | expect(res3.value).toEqual({ name: "test-name-3" }); 174 | 175 | const res4 = await queryResultGen.next(); 176 | expect(res4.done).toBe(true); 177 | expect(res4.value).toBe(undefined); 178 | }); 179 | 180 | test("get all item with generator", async () => { 181 | athenaMock 182 | .on(StartQueryExecutionCommand) 183 | .resolves({ QueryExecutionId: "test-QueryExecutionId" }) 184 | .on(GetQueryExecutionCommand) 185 | .resolves({ QueryExecution: { Status: { State: "SUCCEEDED" } } }) 186 | .on(GetQueryResultsCommand) 187 | .resolvesOnce({ 188 | NextToken: "test-NextToken-1", 189 | ResultSet: { 190 | ResultSetMetadata: { 191 | ColumnInfo: [{ Name: "name", Type: "varchar" }], 192 | }, 193 | Rows: [ 194 | { Data: [{ VarCharValue: "name" }] }, // header row 195 | { Data: [{ VarCharValue: "test-name-1" }] }, 196 | { Data: [{ VarCharValue: "test-name-2" }] }, 197 | ], 198 | }, 199 | }) 200 | .resolvesOnce({ 201 | NextToken: "test-NextToken-2", 202 | ResultSet: { 203 | ResultSetMetadata: { 204 | ColumnInfo: [{ Name: "name", Type: "varchar" }], 205 | }, 206 | Rows: [ 207 | { Data: [{ VarCharValue: "test-name-3" }] }, 208 | { Data: [{ VarCharValue: "test-name-4" }] }, 209 | ], 210 | }, 211 | }) 212 | .resolvesOnce({ 213 | ResultSet: { 214 | ResultSetMetadata: { 215 | ColumnInfo: [{ Name: "name", Type: "varchar" }], 216 | }, 217 | Rows: [{ Data: [{ VarCharValue: "test-name-5" }] }], 218 | }, 219 | }); 220 | 221 | const allItems = []; 222 | 223 | const athenaQuery = new AthenaQuery(athena); 224 | for await (const item of athenaQuery.query("")) { 225 | allItems.push(item); 226 | } 227 | 228 | expect(allItems).toEqual([ 229 | { name: "test-name-1" }, 230 | { name: "test-name-2" }, 231 | { name: "test-name-3" }, 232 | { name: "test-name-4" }, 233 | { name: "test-name-5" }, 234 | ]); 235 | }); 236 | 237 | test("pass args to sdk", async () => { 238 | athenaMock 239 | .on(StartQueryExecutionCommand) 240 | .resolves({ QueryExecutionId: "test-QueryExecutionId" }) 241 | .on(GetQueryExecutionCommand) 242 | .resolves({ QueryExecution: { Status: { State: "SUCCEEDED" } } }) 243 | .on(GetQueryResultsCommand) 244 | .resolves({ 245 | ResultSet: { 246 | ResultSetMetadata: { 247 | ColumnInfo: [{ Name: "name", Type: "varchar" }], 248 | }, 249 | Rows: [ 250 | // header row 251 | { Data: [{ VarCharValue: "name" }] }, 252 | { Data: [{ VarCharValue: "test-name-1" }] }, 253 | ], 254 | }, 255 | }); 256 | 257 | const athenaQuery = new AthenaQuery(athena, { 258 | db: "test-db", 259 | workgroup: "test-workgroup", 260 | catalog: "test-catalog", 261 | outputLocation: "s3//example/path", 262 | }); 263 | const resultGen = athenaQuery.query("SELECT test FROM test;", { 264 | executionParameters: ["test", 123, 456n], 265 | maxResults: 100, 266 | }); 267 | 268 | await resultGen.next(); 269 | 270 | expect( 271 | athenaMock.commandCalls(StartQueryExecutionCommand)[0].args[0].input, 272 | ).toEqual({ 273 | QueryString: "SELECT test FROM test;", 274 | ExecutionParameters: ["'test'", "123", "456"], 275 | WorkGroup: "test-workgroup", 276 | QueryExecutionContext: { 277 | Catalog: "test-catalog", 278 | Database: "test-db", 279 | }, 280 | ResultConfiguration: { 281 | OutputLocation: "s3//example/path", 282 | }, 283 | }); 284 | 285 | expect( 286 | athenaMock.commandCalls(GetQueryExecutionCommand)[0].args[0].input, 287 | ).toEqual({ 288 | QueryExecutionId: "test-QueryExecutionId", 289 | }); 290 | 291 | expect( 292 | athenaMock.commandCalls(GetQueryResultsCommand)[0].args[0].input, 293 | ).toEqual({ 294 | QueryExecutionId: "test-QueryExecutionId", 295 | MaxResults: 100, 296 | }); 297 | }); 298 | 299 | test("throw exception when query is respond as failed", async () => { 300 | athenaMock 301 | .on(StartQueryExecutionCommand) 302 | .resolves({ QueryExecutionId: "test-QueryExecutionId" }) 303 | .on(GetQueryExecutionCommand) 304 | .resolves({ 305 | QueryExecution: { 306 | Status: { State: "FAILED", StateChangeReason: "for-test" }, 307 | }, 308 | }); 309 | 310 | const athenaQuery = new AthenaQuery(athena); 311 | const resultGen = athenaQuery.query(""); 312 | 313 | await expect(resultGen.next()).rejects.toThrow("for-test"); 314 | }); 315 | 316 | test("throw exception when query is respond as failed", async () => { 317 | athenaMock 318 | .on(StartQueryExecutionCommand) 319 | .resolves({ QueryExecutionId: undefined }); 320 | 321 | const athenaQuery = new AthenaQuery(athena); 322 | const resultGen = athenaQuery.query(""); 323 | 324 | await expect(resultGen.next()).rejects.toThrow( 325 | "No QueryExecutionId was responded.", 326 | ); 327 | }); 328 | 329 | test("If empty string is returned from AthenaSDK, it will be returned as an empty string", async () => { 330 | athenaMock 331 | .on(StartQueryExecutionCommand) 332 | .resolves({ QueryExecutionId: "test-QueryExecutionId" }) 333 | .on(GetQueryExecutionCommand) 334 | .resolves({ QueryExecution: { Status: { State: "SUCCEEDED" } } }) 335 | .on(GetQueryResultsCommand) 336 | .resolves({ 337 | ResultSet: { 338 | ResultSetMetadata: { 339 | ColumnInfo: [ 340 | { Name: "nullValue", Type: "unknown" }, 341 | { Name: "emptyValue", Type: "varchar" }, 342 | ], 343 | }, 344 | Rows: [ 345 | { 346 | // header row 347 | Data: [ 348 | { VarCharValue: "nullValue" }, 349 | { VarCharValue: "emptyValue" }, 350 | ], 351 | }, 352 | { 353 | Data: [{}, { VarCharValue: "" }], 354 | }, 355 | ], 356 | }, 357 | }); 358 | 359 | const athenaQuery = new AthenaQuery(athena); 360 | const resultGen = athenaQuery.query(""); 361 | const res1 = await resultGen.next(); 362 | expect(res1.value).toEqual({ 363 | // nullValue is removed from the object 364 | emptyValue: "", 365 | }); 366 | }); 367 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "exclude": ["dist", "examples"], 3 | "compilerOptions": { 4 | /* Visit https://aka.ms/tsconfig to read more about this file */ 5 | 6 | /* Projects */ 7 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 8 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 9 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 10 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 11 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 12 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 13 | 14 | /* Language and Environment */ 15 | "target": "ES2020" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 16 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 17 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 18 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 19 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 20 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 21 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 22 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 23 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 24 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 25 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 26 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 27 | 28 | /* Modules */ 29 | "module": "esnext" /* Specify what module code is generated. */, 30 | // "rootDir": "./", /* Specify the root folder within your source files. */ 31 | "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, 32 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 33 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 34 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 35 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 36 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 37 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 38 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 39 | // "resolveJsonModule": true, /* Enable importing .json files. */ 40 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 41 | 42 | /* JavaScript Support */ 43 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 44 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 45 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 46 | 47 | /* Emit */ 48 | "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, 49 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 50 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 51 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 52 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 53 | "outDir": "dist" /* Specify an output folder for all emitted files. */, 54 | // "removeComments": true, /* Disable emitting comments. */ 55 | // "noEmit": true, /* Disable emitting files from a compilation. */ 56 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 57 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 58 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 59 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 60 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 61 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 62 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 63 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 64 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 65 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 66 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 67 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 68 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 69 | // "declarationDir": "." /* Specify the output directory for generated declaration files. */, 70 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 71 | 72 | /* Interop Constraints */ 73 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 74 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 75 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, 76 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 77 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 78 | 79 | /* Type Checking */ 80 | "strict": true /* Enable all strict type-checking options. */, 81 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 82 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 83 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 84 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 85 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 86 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 87 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 88 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 89 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 90 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 91 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 92 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 93 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 94 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 95 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 96 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 97 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 98 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 99 | 100 | /* Completeness */ 101 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 102 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 103 | } 104 | } 105 | --------------------------------------------------------------------------------