├── .gitattributes ├── .github ├── renovate.json5 └── workflows │ ├── release.yaml │ └── ts.yaml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── LICENSE ├── README.md ├── action.yaml ├── eslint.config.js ├── jest.config.js ├── package.json ├── pnpm-lock.yaml ├── src ├── ecr.ts ├── ecr_public.ts ├── main.ts └── run.ts ├── tests ├── ecr.test.ts ├── ecr_public.test.ts ├── fixtures │ ├── lifecycle-policy.json │ └── repository-policy.json └── run.test.ts └── tsconfig.json /.gitattributes: -------------------------------------------------------------------------------- 1 | dist/** -diff linguist-generated=true -------------------------------------------------------------------------------- /.github/renovate.json5: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "github>int128/renovate-base", 4 | "github>int128/typescript-action-renovate-config", 5 | "helpers:pinGitHubActionDigests", 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | pull_request: 5 | paths: 6 | - .github/workflows/release.yaml 7 | push: 8 | branches: 9 | - main 10 | tags: 11 | - v* 12 | 13 | jobs: 14 | tag: 15 | runs-on: ubuntu-latest 16 | timeout-minutes: 10 17 | steps: 18 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 19 | - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 20 | with: 21 | node-version: 20 22 | - run: npm install -g pnpm@latest-10 23 | - run: pnpm i 24 | - run: pnpm build 25 | - uses: int128/release-typescript-action@4b93cf2f4b55fbce962db4c9acb89760c4a699d9 # v1.36.0 26 | -------------------------------------------------------------------------------- /.github/workflows/ts.yaml: -------------------------------------------------------------------------------- 1 | name: ts 2 | 3 | on: 4 | pull_request: 5 | paths: 6 | - src/** 7 | - tests/** 8 | - '*.json' 9 | - '*.yaml' 10 | - .github/workflows/ts.yaml 11 | push: 12 | branches: 13 | - main 14 | paths: 15 | - src/** 16 | - tests/** 17 | - '*.json' 18 | - '*.yaml' 19 | - .github/workflows/ts.yaml 20 | 21 | jobs: 22 | test: 23 | runs-on: ubuntu-latest 24 | timeout-minutes: 10 25 | steps: 26 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 27 | - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 28 | with: 29 | node-version: 20 30 | - run: npm install -g pnpm@latest-10 31 | - run: pnpm i 32 | - run: pnpm test 33 | - run: pnpm build 34 | 35 | generate: 36 | runs-on: ubuntu-latest 37 | timeout-minutes: 10 38 | steps: 39 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 40 | - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 41 | with: 42 | node-version: 20 43 | - run: npm install -g pnpm@latest-10 44 | - run: pnpm i 45 | - run: pnpm lint --fix 46 | - run: pnpm format 47 | - uses: int128/update-generated-files-action@f6dc44e35ce252932e9018f1c38d1e2a4ff80e14 # v2.60.0 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependency directory 2 | node_modules 3 | 4 | # Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # Diagnostic reports (https://nodejs.org/api/report.html) 14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 15 | 16 | # Runtime data 17 | pids 18 | *.pid 19 | *.seed 20 | *.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | lib-cov 24 | 25 | # Coverage directory used by tools like istanbul 26 | coverage 27 | *.lcov 28 | 29 | # nyc test coverage 30 | .nyc_output 31 | 32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 33 | .grunt 34 | 35 | # Bower dependency directory (https://bower.io/) 36 | bower_components 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | jspm_packages/ 46 | 47 | # TypeScript v1 declaration files 48 | typings/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Optional REPL history 60 | .node_repl_history 61 | 62 | # Output of 'npm pack' 63 | *.tgz 64 | 65 | # Yarn Integrity file 66 | .yarn-integrity 67 | 68 | # dotenv environment variables file 69 | .env 70 | .env.test 71 | 72 | # parcel-bundler cache (https://parceljs.org/) 73 | .cache 74 | 75 | # next.js build output 76 | .next 77 | 78 | # nuxt.js build output 79 | .nuxt 80 | 81 | # vuepress build output 82 | .vuepress/dist 83 | 84 | # Serverless directories 85 | .serverless/ 86 | 87 | # FuseBox cache 88 | .fusebox/ 89 | 90 | # DynamoDB Local files 91 | .dynamodb/ 92 | 93 | # OS metadata 94 | .DS_Store 95 | Thumbs.db 96 | 97 | # Ignore built ts files 98 | __tests__/runner/* 99 | lib/ 100 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | lib/ 3 | node_modules/ -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "semi": false, 4 | "singleQuote": true 5 | } 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2018 GitHub, Inc. and contributors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # create-ecr-repository-action [![ts](https://github.com/int128/create-ecr-repository-action/actions/workflows/ts.yaml/badge.svg)](https://github.com/int128/create-ecr-repository-action/actions/workflows/ts.yaml) 2 | 3 | This is a GitHub Action to create a repository into Amazon ECR or ECR Public registry if it does not exist. 4 | It can put a lifecycle policy to the repository for cost saving. 5 | 6 | 7 | ## Getting Started 8 | 9 | To create a repository: 10 | 11 | ```yaml 12 | jobs: 13 | build: 14 | steps: 15 | - uses: int128/create-ecr-repository-action@v1 16 | with: 17 | repository: hello-world 18 | ``` 19 | 20 | If the repository exists, this action does nothing. 21 | 22 | 23 | ### Put a lifecycle policy 24 | 25 | To create a repository with a lifecycle policy: 26 | 27 | ```yaml 28 | - uses: int128/create-ecr-repository-action@v1 29 | with: 30 | repository: hello-world 31 | lifecycle-policy: config/lifecycle-policy.json 32 | ``` 33 | 34 | If the repository exists, this action just puts the lifecycle policy. 35 | 36 | 37 | ### Create into ECR Public 38 | 39 | To create a repository into ECR Public registry: 40 | 41 | ```yaml 42 | - uses: int128/create-ecr-repository-action@v1 43 | with: 44 | repository: hello-world 45 | public: true 46 | ``` 47 | 48 | If the repository exists, this action does nothing. 49 | Note that currently ECR Public does not support the lifecycle polocy. 50 | 51 | 52 | ### Full example 53 | 54 | Here is a full example to build an image and put it into an ECR repository: 55 | 56 | ```yaml 57 | jobs: 58 | build: 59 | runs-on: ubuntu-latest 60 | permissions: 61 | id-token: write 62 | contents: read 63 | steps: 64 | - uses: aws-actions/configure-aws-credentials@v1 65 | with: 66 | role-to-assume: arn:aws:iam::ACCOUNT:role/ROLE 67 | - uses: aws-actions/amazon-ecr-login@v1 68 | - uses: int128/create-ecr-repository-action@v1 69 | id: ecr 70 | with: 71 | repository: ${{ github.repository }} 72 | - uses: docker/metadata-action@v4 73 | id: metadata 74 | with: 75 | images: ${{ steps.ecr.outputs.repository-uri }} 76 | - uses: docker/build-push-action@v3 77 | with: 78 | push: true 79 | tags: ${{ steps.metadata.outputs.tags }} 80 | labels: ${{ steps.metadata.outputs.labels }} 81 | ``` 82 | 83 | 84 | ## Inputs 85 | 86 | | Name | Default | Description 87 | |------|---------|------------ 88 | | `public` | `false` | Set `true` to create into ECR Public registry 89 | | `repository` | (required) | Repository name to create 90 | | `lifecycle-policy` | - | Path to a file of lifecycle policy for the repository 91 | | `repository-policy` | - | Path to a file of repository policy for the repository 92 | 93 | ## Outputs 94 | 95 | | Name | Description 96 | |------|------------ 97 | | `repository-uri` | URI of the repository (in form of `ACCOUNT.dkr.ecr.REGION.amazonaws.com/NAME` or `public.ecr.aws/ID/NAME`) 98 | -------------------------------------------------------------------------------- /action.yaml: -------------------------------------------------------------------------------- 1 | name: create-ecr-repository-action 2 | description: Create Amazon ECR repository if not exist 3 | author: int128 4 | 5 | inputs: 6 | public: 7 | required: true 8 | description: set true to create into ECR Public registry 9 | default: 'false' 10 | repository: 11 | required: true 12 | description: repository name to create 13 | lifecycle-policy: 14 | required: false 15 | description: path to lifecycle policy file of the repository (optional) 16 | repository-policy: 17 | required: false 18 | description: path to repository policy file of the repository (optional) 19 | 20 | outputs: 21 | repository-uri: 22 | description: URI of the repository, i.e. ACCOUNT.dkr.ecr.REGION.amazonaws.com/NAME 23 | 24 | runs: 25 | using: 'node20' 26 | main: 'dist/index.js' 27 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | import eslint from '@eslint/js' 4 | import jest from 'eslint-plugin-jest' 5 | import tseslint from 'typescript-eslint' 6 | 7 | export default tseslint.config( 8 | { 9 | ignores: ['.git/', 'node_modules/', 'dist/', '*.config.*'], 10 | }, 11 | eslint.configs.recommended, 12 | ...tseslint.configs.recommendedTypeChecked, 13 | jest.configs['flat/recommended'], 14 | { 15 | languageOptions: { 16 | parserOptions: { 17 | project: true, 18 | }, 19 | }, 20 | }, 21 | ) 22 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('ts-jest').JestConfigWithTsJest} */ 2 | export default { 3 | preset: 'ts-jest/presets/default-esm', 4 | clearMocks: true, 5 | // https://kulshekhar.github.io/ts-jest/docs/guides/esm-support/ 6 | moduleNameMapper: { 7 | '^(\\.{1,2}/.*)\\.js$': '$1', 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "format": "prettier --write **/*.ts", 5 | "lint": "eslint .", 6 | "build": "ncc build --source-map --license licenses.txt src/main.ts", 7 | "test": "jest" 8 | }, 9 | "type": "module", 10 | "dependencies": { 11 | "@actions/core": "1.11.1", 12 | "@aws-sdk/client-ecr": "3.826.0", 13 | "@aws-sdk/client-ecr-public": "3.826.0" 14 | }, 15 | "devDependencies": { 16 | "@eslint/js": "9.28.0", 17 | "@tsconfig/node20": "20.1.5", 18 | "@types/jest": "29.5.14", 19 | "@types/node": "20.19.0", 20 | "@vercel/ncc": "0.38.3", 21 | "aws-sdk-client-mock": "4.1.0", 22 | "eslint": "9.28.0", 23 | "eslint-plugin-jest": "28.13.0", 24 | "jest": "29.7.0", 25 | "pnpm": "10.12.1", 26 | "prettier": "3.5.3", 27 | "ts-jest": "29.3.4", 28 | "typescript": "5.8.3", 29 | "typescript-eslint": "8.33.1" 30 | }, 31 | "packageManager": "pnpm@10.12.1" 32 | } 33 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@actions/core': 12 | specifier: 1.11.1 13 | version: 1.11.1 14 | '@aws-sdk/client-ecr': 15 | specifier: 3.826.0 16 | version: 3.826.0 17 | '@aws-sdk/client-ecr-public': 18 | specifier: 3.826.0 19 | version: 3.826.0 20 | devDependencies: 21 | '@eslint/js': 22 | specifier: 9.28.0 23 | version: 9.28.0 24 | '@tsconfig/node20': 25 | specifier: 20.1.5 26 | version: 20.1.5 27 | '@types/jest': 28 | specifier: 29.5.14 29 | version: 29.5.14 30 | '@types/node': 31 | specifier: 20.19.0 32 | version: 20.19.0 33 | '@vercel/ncc': 34 | specifier: 0.38.3 35 | version: 0.38.3 36 | aws-sdk-client-mock: 37 | specifier: 4.1.0 38 | version: 4.1.0 39 | eslint: 40 | specifier: 9.28.0 41 | version: 9.28.0 42 | eslint-plugin-jest: 43 | specifier: 28.13.0 44 | version: 28.13.0(@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(jest@29.7.0(@types/node@20.19.0))(typescript@5.8.3) 45 | jest: 46 | specifier: 29.7.0 47 | version: 29.7.0(@types/node@20.19.0) 48 | pnpm: 49 | specifier: 10.12.1 50 | version: 10.12.1 51 | prettier: 52 | specifier: 3.5.3 53 | version: 3.5.3 54 | ts-jest: 55 | specifier: 29.3.4 56 | version: 29.3.4(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.19.0))(typescript@5.8.3) 57 | typescript: 58 | specifier: 5.8.3 59 | version: 5.8.3 60 | typescript-eslint: 61 | specifier: 8.33.1 62 | version: 8.33.1(eslint@9.28.0)(typescript@5.8.3) 63 | 64 | packages: 65 | 66 | '@aashutoshrathi/word-wrap@1.2.6': 67 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 68 | engines: {node: '>=0.10.0'} 69 | 70 | '@actions/core@1.11.1': 71 | resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} 72 | 73 | '@actions/exec@1.1.1': 74 | resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} 75 | 76 | '@actions/http-client@2.2.0': 77 | resolution: {integrity: sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==} 78 | 79 | '@actions/io@1.1.3': 80 | resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} 81 | 82 | '@ampproject/remapping@2.3.0': 83 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 84 | engines: {node: '>=6.0.0'} 85 | 86 | '@aws-crypto/sha256-browser@5.2.0': 87 | resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} 88 | 89 | '@aws-crypto/sha256-js@5.2.0': 90 | resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} 91 | engines: {node: '>=16.0.0'} 92 | 93 | '@aws-crypto/supports-web-crypto@5.2.0': 94 | resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} 95 | 96 | '@aws-crypto/util@5.2.0': 97 | resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} 98 | 99 | '@aws-sdk/client-ecr-public@3.826.0': 100 | resolution: {integrity: sha512-br7b3maWdFS+XThMtMp6/pwA67qm1TcgzelbSGzfqnsj3HzFRuD6jLthaacyAFKrSSnWj5NTKtCX6eMUO0sTBw==} 101 | engines: {node: '>=18.0.0'} 102 | 103 | '@aws-sdk/client-ecr@3.826.0': 104 | resolution: {integrity: sha512-ijkwk6UjvcOzsDh6sY1uaopOVlUHDbQhnwIsnMnbyruU9nytom4Ga4NYOUhRu/3Fb3gHen8lbyTRAjcMExFljQ==} 105 | engines: {node: '>=18.0.0'} 106 | 107 | '@aws-sdk/client-sso@3.826.0': 108 | resolution: {integrity: sha512-/FEKnUC3xPkLL4RuRydwzx+y4b55HIX6qLPbGnyIs+sNmCUyc/62ijtV1Ml+b++YzEF6jWNBsJOxeyZdgrJ3Ig==} 109 | engines: {node: '>=18.0.0'} 110 | 111 | '@aws-sdk/core@3.826.0': 112 | resolution: {integrity: sha512-BGbQYzWj3ps+dblq33FY5tz/SsgJCcXX0zjQlSC07tYvU1jHTUvsefphyig+fY38xZ4wdKjbTop+KUmXUYrOXw==} 113 | engines: {node: '>=18.0.0'} 114 | 115 | '@aws-sdk/credential-provider-env@3.826.0': 116 | resolution: {integrity: sha512-DK3pQY8+iKK3MGDdC3uOZQ2psU01obaKlTYhEwNu4VWzgwQL4Vi3sWj4xSWGEK41vqZxiRLq6fOq7ysRI+qEZA==} 117 | engines: {node: '>=18.0.0'} 118 | 119 | '@aws-sdk/credential-provider-http@3.826.0': 120 | resolution: {integrity: sha512-N+IVZBh+yx/9GbMZTKO/gErBi/FYZQtcFRItoLbY+6WU+0cSWyZYfkoeOxHmQV3iX9k65oljERIWUmL9x6OSQg==} 121 | engines: {node: '>=18.0.0'} 122 | 123 | '@aws-sdk/credential-provider-ini@3.826.0': 124 | resolution: {integrity: sha512-g7n+qSklq/Lzjxe2Ke5QFNCgYn26a3ydZnbFIk8QqYin4pzG+qiunaqJjpV3c/EeHMlfK8bBc7MXAylKzGRccQ==} 125 | engines: {node: '>=18.0.0'} 126 | 127 | '@aws-sdk/credential-provider-node@3.826.0': 128 | resolution: {integrity: sha512-UfIJXxHjmSxH6bea00HBPLkjNI2D04enQA/xNLZvB+4xtzt1/gYdCis1P4/73f5aGVVVB4/zQMobBbnjkrmbQw==} 129 | engines: {node: '>=18.0.0'} 130 | 131 | '@aws-sdk/credential-provider-process@3.826.0': 132 | resolution: {integrity: sha512-kURrc4amu3NLtw1yZw7EoLNEVhmOMRUTs+chaNcmS+ERm3yK0nKjaJzmKahmwlTQTSl3wJ8jjK7x962VPo+zWw==} 133 | engines: {node: '>=18.0.0'} 134 | 135 | '@aws-sdk/credential-provider-sso@3.826.0': 136 | resolution: {integrity: sha512-F19J3zcfoom6OnQ0MyAtvduVKQXPgkz9i5ExSO01J2CzjbyMhCDA99qAjHYe+LwhW+W7P/jzBPd0+uOQ2Nhh9Q==} 137 | engines: {node: '>=18.0.0'} 138 | 139 | '@aws-sdk/credential-provider-web-identity@3.826.0': 140 | resolution: {integrity: sha512-o27GZ6Hy7qhuvMFVUL2eFEpBzf33Jaa/x3u3SHwU0nL7ko7jmbpeF0x4+wmagpI9X2IvVlUxIs0VaQ3YayPLEA==} 141 | engines: {node: '>=18.0.0'} 142 | 143 | '@aws-sdk/middleware-host-header@3.821.0': 144 | resolution: {integrity: sha512-xSMR+sopSeWGx5/4pAGhhfMvGBHioVBbqGvDs6pG64xfNwM5vq5s5v6D04e2i+uSTj4qGa71dLUs5I0UzAK3sw==} 145 | engines: {node: '>=18.0.0'} 146 | 147 | '@aws-sdk/middleware-logger@3.821.0': 148 | resolution: {integrity: sha512-0cvI0ipf2tGx7fXYEEN5fBeZDz2RnHyb9xftSgUsEq7NBxjV0yTZfLJw6Za5rjE6snC80dRN8+bTNR1tuG89zA==} 149 | engines: {node: '>=18.0.0'} 150 | 151 | '@aws-sdk/middleware-recursion-detection@3.821.0': 152 | resolution: {integrity: sha512-efmaifbhBoqKG3bAoEfDdcM8hn1psF+4qa7ykWuYmfmah59JBeqHLfz5W9m9JoTwoKPkFcVLWZxnyZzAnVBOIg==} 153 | engines: {node: '>=18.0.0'} 154 | 155 | '@aws-sdk/middleware-user-agent@3.826.0': 156 | resolution: {integrity: sha512-j404+EcfBbtTlAhyObjXbdKwwDXO1pCxHvR5Fw8FXNvp/H330j6YnXgs3SJ6d3bZUwUJ/ztPx2S5AlBbLVLDFw==} 157 | engines: {node: '>=18.0.0'} 158 | 159 | '@aws-sdk/nested-clients@3.826.0': 160 | resolution: {integrity: sha512-p7olPq0uTtHqGuXI1GSc/gzKDvV55PMbLtnmupEDfnY9SoRu+QatbWQ6da9sI1lhOcNmRMgiNQBXFzaUFrG+SQ==} 161 | engines: {node: '>=18.0.0'} 162 | 163 | '@aws-sdk/region-config-resolver@3.821.0': 164 | resolution: {integrity: sha512-t8og+lRCIIy5nlId0bScNpCkif8sc0LhmtaKsbm0ZPm3sCa/WhCbSZibjbZ28FNjVCV+p0D9RYZx0VDDbtWyjw==} 165 | engines: {node: '>=18.0.0'} 166 | 167 | '@aws-sdk/token-providers@3.826.0': 168 | resolution: {integrity: sha512-iCOcVAqGPSHtQL8ZBXifZMEcHyUl9wJ8HvLZ5l1ohA/3ZNP+dqEPGi7jfhR5jZKs+xyp2jxByFqfil9PjI9c5A==} 169 | engines: {node: '>=18.0.0'} 170 | 171 | '@aws-sdk/types@3.821.0': 172 | resolution: {integrity: sha512-Znroqdai1a90TlxGaJ+FK1lwC0fHpo97Xjsp5UKGR5JODYm7f9+/fF17ebO1KdoBr/Rm0UIFiF5VmI8ts9F1eA==} 173 | engines: {node: '>=18.0.0'} 174 | 175 | '@aws-sdk/util-endpoints@3.821.0': 176 | resolution: {integrity: sha512-Uknt/zUZnLE76zaAAPEayOeF5/4IZ2puTFXvcSCWHsi9m3tqbb9UozlnlVqvCZLCRWfQryZQoG2W4XSS3qgk5A==} 177 | engines: {node: '>=18.0.0'} 178 | 179 | '@aws-sdk/util-locate-window@3.495.0': 180 | resolution: {integrity: sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==} 181 | engines: {node: '>=14.0.0'} 182 | 183 | '@aws-sdk/util-user-agent-browser@3.821.0': 184 | resolution: {integrity: sha512-irWZHyM0Jr1xhC+38OuZ7JB6OXMLPZlj48thElpsO1ZSLRkLZx5+I7VV6k3sp2yZ7BYbKz/G2ojSv4wdm7XTLw==} 185 | 186 | '@aws-sdk/util-user-agent-node@3.826.0': 187 | resolution: {integrity: sha512-wHw6bZQWIMcFF/8r03aY9Itp6JLBYY4absGGhCDK1dc3tPEfi8NVSdb05a/Oz+g4TVaDdxLo0OQ/OKMS1DFRHQ==} 188 | engines: {node: '>=18.0.0'} 189 | peerDependencies: 190 | aws-crt: '>=1.0.0' 191 | peerDependenciesMeta: 192 | aws-crt: 193 | optional: true 194 | 195 | '@aws-sdk/xml-builder@3.821.0': 196 | resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==} 197 | engines: {node: '>=18.0.0'} 198 | 199 | '@babel/code-frame@7.23.5': 200 | resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} 201 | engines: {node: '>=6.9.0'} 202 | 203 | '@babel/compat-data@7.23.5': 204 | resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} 205 | engines: {node: '>=6.9.0'} 206 | 207 | '@babel/core@7.24.0': 208 | resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} 209 | engines: {node: '>=6.9.0'} 210 | 211 | '@babel/generator@7.23.6': 212 | resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} 213 | engines: {node: '>=6.9.0'} 214 | 215 | '@babel/helper-compilation-targets@7.23.6': 216 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} 217 | engines: {node: '>=6.9.0'} 218 | 219 | '@babel/helper-environment-visitor@7.22.20': 220 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 221 | engines: {node: '>=6.9.0'} 222 | 223 | '@babel/helper-function-name@7.23.0': 224 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 225 | engines: {node: '>=6.9.0'} 226 | 227 | '@babel/helper-hoist-variables@7.22.5': 228 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 229 | engines: {node: '>=6.9.0'} 230 | 231 | '@babel/helper-module-imports@7.22.15': 232 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 233 | engines: {node: '>=6.9.0'} 234 | 235 | '@babel/helper-module-transforms@7.23.3': 236 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 237 | engines: {node: '>=6.9.0'} 238 | peerDependencies: 239 | '@babel/core': ^7.0.0 240 | 241 | '@babel/helper-plugin-utils@7.24.0': 242 | resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} 243 | engines: {node: '>=6.9.0'} 244 | 245 | '@babel/helper-simple-access@7.22.5': 246 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 247 | engines: {node: '>=6.9.0'} 248 | 249 | '@babel/helper-split-export-declaration@7.22.6': 250 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 251 | engines: {node: '>=6.9.0'} 252 | 253 | '@babel/helper-string-parser@7.23.4': 254 | resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} 255 | engines: {node: '>=6.9.0'} 256 | 257 | '@babel/helper-validator-identifier@7.22.20': 258 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 259 | engines: {node: '>=6.9.0'} 260 | 261 | '@babel/helper-validator-option@7.23.5': 262 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} 263 | engines: {node: '>=6.9.0'} 264 | 265 | '@babel/helpers@7.24.0': 266 | resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} 267 | engines: {node: '>=6.9.0'} 268 | 269 | '@babel/highlight@7.23.4': 270 | resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} 271 | engines: {node: '>=6.9.0'} 272 | 273 | '@babel/parser@7.24.0': 274 | resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} 275 | engines: {node: '>=6.0.0'} 276 | hasBin: true 277 | 278 | '@babel/plugin-syntax-async-generators@7.8.4': 279 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} 280 | peerDependencies: 281 | '@babel/core': ^7.0.0-0 282 | 283 | '@babel/plugin-syntax-bigint@7.8.3': 284 | resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} 285 | peerDependencies: 286 | '@babel/core': ^7.0.0-0 287 | 288 | '@babel/plugin-syntax-class-properties@7.12.13': 289 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} 290 | peerDependencies: 291 | '@babel/core': ^7.0.0-0 292 | 293 | '@babel/plugin-syntax-import-meta@7.10.4': 294 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} 295 | peerDependencies: 296 | '@babel/core': ^7.0.0-0 297 | 298 | '@babel/plugin-syntax-json-strings@7.8.3': 299 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} 300 | peerDependencies: 301 | '@babel/core': ^7.0.0-0 302 | 303 | '@babel/plugin-syntax-jsx@7.23.3': 304 | resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} 305 | engines: {node: '>=6.9.0'} 306 | peerDependencies: 307 | '@babel/core': ^7.0.0-0 308 | 309 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4': 310 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} 311 | peerDependencies: 312 | '@babel/core': ^7.0.0-0 313 | 314 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': 315 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} 316 | peerDependencies: 317 | '@babel/core': ^7.0.0-0 318 | 319 | '@babel/plugin-syntax-numeric-separator@7.10.4': 320 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} 321 | peerDependencies: 322 | '@babel/core': ^7.0.0-0 323 | 324 | '@babel/plugin-syntax-object-rest-spread@7.8.3': 325 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} 326 | peerDependencies: 327 | '@babel/core': ^7.0.0-0 328 | 329 | '@babel/plugin-syntax-optional-catch-binding@7.8.3': 330 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} 331 | peerDependencies: 332 | '@babel/core': ^7.0.0-0 333 | 334 | '@babel/plugin-syntax-optional-chaining@7.8.3': 335 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} 336 | peerDependencies: 337 | '@babel/core': ^7.0.0-0 338 | 339 | '@babel/plugin-syntax-top-level-await@7.14.5': 340 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} 341 | engines: {node: '>=6.9.0'} 342 | peerDependencies: 343 | '@babel/core': ^7.0.0-0 344 | 345 | '@babel/plugin-syntax-typescript@7.23.3': 346 | resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} 347 | engines: {node: '>=6.9.0'} 348 | peerDependencies: 349 | '@babel/core': ^7.0.0-0 350 | 351 | '@babel/template@7.24.0': 352 | resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} 353 | engines: {node: '>=6.9.0'} 354 | 355 | '@babel/traverse@7.24.0': 356 | resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} 357 | engines: {node: '>=6.9.0'} 358 | 359 | '@babel/types@7.24.0': 360 | resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} 361 | engines: {node: '>=6.9.0'} 362 | 363 | '@bcoe/v8-coverage@0.2.3': 364 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 365 | 366 | '@eslint-community/eslint-utils@4.7.0': 367 | resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} 368 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 369 | peerDependencies: 370 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 371 | 372 | '@eslint-community/regexpp@4.12.1': 373 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 374 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 375 | 376 | '@eslint/config-array@0.20.0': 377 | resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} 378 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 379 | 380 | '@eslint/config-helpers@0.2.1': 381 | resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==} 382 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 383 | 384 | '@eslint/core@0.14.0': 385 | resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} 386 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 387 | 388 | '@eslint/eslintrc@3.3.1': 389 | resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 390 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 391 | 392 | '@eslint/js@9.28.0': 393 | resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} 394 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 395 | 396 | '@eslint/object-schema@2.1.6': 397 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 398 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 399 | 400 | '@eslint/plugin-kit@0.3.1': 401 | resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} 402 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 403 | 404 | '@fastify/busboy@2.1.1': 405 | resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} 406 | engines: {node: '>=14'} 407 | 408 | '@humanfs/core@0.19.1': 409 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 410 | engines: {node: '>=18.18.0'} 411 | 412 | '@humanfs/node@0.16.6': 413 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 414 | engines: {node: '>=18.18.0'} 415 | 416 | '@humanwhocodes/module-importer@1.0.1': 417 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 418 | engines: {node: '>=12.22'} 419 | 420 | '@humanwhocodes/retry@0.3.1': 421 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 422 | engines: {node: '>=18.18'} 423 | 424 | '@humanwhocodes/retry@0.4.2': 425 | resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} 426 | engines: {node: '>=18.18'} 427 | 428 | '@istanbuljs/load-nyc-config@1.1.0': 429 | resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} 430 | engines: {node: '>=8'} 431 | 432 | '@istanbuljs/schema@0.1.3': 433 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 434 | engines: {node: '>=8'} 435 | 436 | '@jest/console@29.7.0': 437 | resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} 438 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 439 | 440 | '@jest/core@29.7.0': 441 | resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} 442 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 443 | peerDependencies: 444 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 445 | peerDependenciesMeta: 446 | node-notifier: 447 | optional: true 448 | 449 | '@jest/environment@29.7.0': 450 | resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} 451 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 452 | 453 | '@jest/expect-utils@29.7.0': 454 | resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} 455 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 456 | 457 | '@jest/expect@29.7.0': 458 | resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} 459 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 460 | 461 | '@jest/fake-timers@29.7.0': 462 | resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} 463 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 464 | 465 | '@jest/globals@29.7.0': 466 | resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} 467 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 468 | 469 | '@jest/reporters@29.7.0': 470 | resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} 471 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 472 | peerDependencies: 473 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 474 | peerDependenciesMeta: 475 | node-notifier: 476 | optional: true 477 | 478 | '@jest/schemas@29.6.3': 479 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 480 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 481 | 482 | '@jest/source-map@29.6.3': 483 | resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} 484 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 485 | 486 | '@jest/test-result@29.7.0': 487 | resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} 488 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 489 | 490 | '@jest/test-sequencer@29.7.0': 491 | resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} 492 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 493 | 494 | '@jest/transform@29.7.0': 495 | resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} 496 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 497 | 498 | '@jest/types@29.6.3': 499 | resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} 500 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 501 | 502 | '@jridgewell/gen-mapping@0.3.5': 503 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 504 | engines: {node: '>=6.0.0'} 505 | 506 | '@jridgewell/resolve-uri@3.1.2': 507 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 508 | engines: {node: '>=6.0.0'} 509 | 510 | '@jridgewell/set-array@1.2.1': 511 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 512 | engines: {node: '>=6.0.0'} 513 | 514 | '@jridgewell/sourcemap-codec@1.4.15': 515 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 516 | 517 | '@jridgewell/trace-mapping@0.3.24': 518 | resolution: {integrity: sha512-+VaWXDa6+l6MhflBvVXjIEAzb59nQ2JUK3bwRp2zRpPtU+8TFRy9Gg/5oIcNlkEL5PGlBFGfemUVvIgLnTzq7Q==} 519 | 520 | '@nodelib/fs.scandir@2.1.5': 521 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 522 | engines: {node: '>= 8'} 523 | 524 | '@nodelib/fs.stat@2.0.5': 525 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 526 | engines: {node: '>= 8'} 527 | 528 | '@nodelib/fs.walk@1.2.8': 529 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 530 | engines: {node: '>= 8'} 531 | 532 | '@sinclair/typebox@0.27.8': 533 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 534 | 535 | '@sinonjs/commons@2.0.0': 536 | resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} 537 | 538 | '@sinonjs/commons@3.0.1': 539 | resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} 540 | 541 | '@sinonjs/fake-timers@10.3.0': 542 | resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} 543 | 544 | '@sinonjs/fake-timers@11.2.2': 545 | resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} 546 | 547 | '@sinonjs/fake-timers@13.0.2': 548 | resolution: {integrity: sha512-4Bb+oqXZTSTZ1q27Izly9lv8B9dlV61CROxPiVtywwzv5SnytJqhvYe6FclHYuXml4cd1VHPo1zd5PmTeJozvA==} 549 | 550 | '@sinonjs/samsam@8.0.0': 551 | resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} 552 | 553 | '@sinonjs/text-encoding@0.7.3': 554 | resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} 555 | 556 | '@smithy/abort-controller@4.0.4': 557 | resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==} 558 | engines: {node: '>=18.0.0'} 559 | 560 | '@smithy/config-resolver@4.1.4': 561 | resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} 562 | engines: {node: '>=18.0.0'} 563 | 564 | '@smithy/core@3.5.3': 565 | resolution: {integrity: sha512-xa5byV9fEguZNofCclv6v9ra0FYh5FATQW/da7FQUVTic94DfrN/NvmKZjrMyzbpqfot9ZjBaO8U1UeTbmSLuA==} 566 | engines: {node: '>=18.0.0'} 567 | 568 | '@smithy/credential-provider-imds@4.0.6': 569 | resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==} 570 | engines: {node: '>=18.0.0'} 571 | 572 | '@smithy/fetch-http-handler@5.0.4': 573 | resolution: {integrity: sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==} 574 | engines: {node: '>=18.0.0'} 575 | 576 | '@smithy/hash-node@4.0.4': 577 | resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==} 578 | engines: {node: '>=18.0.0'} 579 | 580 | '@smithy/invalid-dependency@4.0.4': 581 | resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==} 582 | engines: {node: '>=18.0.0'} 583 | 584 | '@smithy/is-array-buffer@2.2.0': 585 | resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} 586 | engines: {node: '>=14.0.0'} 587 | 588 | '@smithy/is-array-buffer@4.0.0': 589 | resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} 590 | engines: {node: '>=18.0.0'} 591 | 592 | '@smithy/middleware-content-length@4.0.4': 593 | resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} 594 | engines: {node: '>=18.0.0'} 595 | 596 | '@smithy/middleware-endpoint@4.1.11': 597 | resolution: {integrity: sha512-zDogwtRLzKl58lVS8wPcARevFZNBOOqnmzWWxVe9XiaXU2CADFjvJ9XfNibgkOWs08sxLuSr81NrpY4mgp9OwQ==} 598 | engines: {node: '>=18.0.0'} 599 | 600 | '@smithy/middleware-retry@4.1.12': 601 | resolution: {integrity: sha512-wvIH70c4e91NtRxdaLZF+mbLZ/HcC6yg7ySKUiufL6ESp6zJUSnJucZ309AvG9nqCFHSRB5I6T3Ez1Q9wCh0Ww==} 602 | engines: {node: '>=18.0.0'} 603 | 604 | '@smithy/middleware-serde@4.0.8': 605 | resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==} 606 | engines: {node: '>=18.0.0'} 607 | 608 | '@smithy/middleware-stack@4.0.4': 609 | resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==} 610 | engines: {node: '>=18.0.0'} 611 | 612 | '@smithy/node-config-provider@4.1.3': 613 | resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==} 614 | engines: {node: '>=18.0.0'} 615 | 616 | '@smithy/node-http-handler@4.0.6': 617 | resolution: {integrity: sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==} 618 | engines: {node: '>=18.0.0'} 619 | 620 | '@smithy/property-provider@4.0.4': 621 | resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==} 622 | engines: {node: '>=18.0.0'} 623 | 624 | '@smithy/protocol-http@5.1.2': 625 | resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==} 626 | engines: {node: '>=18.0.0'} 627 | 628 | '@smithy/querystring-builder@4.0.4': 629 | resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==} 630 | engines: {node: '>=18.0.0'} 631 | 632 | '@smithy/querystring-parser@4.0.4': 633 | resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==} 634 | engines: {node: '>=18.0.0'} 635 | 636 | '@smithy/service-error-classification@4.0.5': 637 | resolution: {integrity: sha512-LvcfhrnCBvCmTee81pRlh1F39yTS/+kYleVeLCwNtkY8wtGg8V/ca9rbZZvYIl8OjlMtL6KIjaiL/lgVqHD2nA==} 638 | engines: {node: '>=18.0.0'} 639 | 640 | '@smithy/shared-ini-file-loader@4.0.4': 641 | resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==} 642 | engines: {node: '>=18.0.0'} 643 | 644 | '@smithy/signature-v4@5.1.2': 645 | resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} 646 | engines: {node: '>=18.0.0'} 647 | 648 | '@smithy/smithy-client@4.4.3': 649 | resolution: {integrity: sha512-xxzNYgA0HD6ETCe5QJubsxP0hQH3QK3kbpJz3QrosBCuIWyEXLR/CO5hFb2OeawEKUxMNhz3a1nuJNN2np2RMA==} 650 | engines: {node: '>=18.0.0'} 651 | 652 | '@smithy/types@4.3.1': 653 | resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==} 654 | engines: {node: '>=18.0.0'} 655 | 656 | '@smithy/url-parser@4.0.4': 657 | resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==} 658 | engines: {node: '>=18.0.0'} 659 | 660 | '@smithy/util-base64@4.0.0': 661 | resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} 662 | engines: {node: '>=18.0.0'} 663 | 664 | '@smithy/util-body-length-browser@4.0.0': 665 | resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} 666 | engines: {node: '>=18.0.0'} 667 | 668 | '@smithy/util-body-length-node@4.0.0': 669 | resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} 670 | engines: {node: '>=18.0.0'} 671 | 672 | '@smithy/util-buffer-from@2.2.0': 673 | resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} 674 | engines: {node: '>=14.0.0'} 675 | 676 | '@smithy/util-buffer-from@4.0.0': 677 | resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} 678 | engines: {node: '>=18.0.0'} 679 | 680 | '@smithy/util-config-provider@4.0.0': 681 | resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} 682 | engines: {node: '>=18.0.0'} 683 | 684 | '@smithy/util-defaults-mode-browser@4.0.19': 685 | resolution: {integrity: sha512-mvLMh87xSmQrV5XqnUYEPoiFFeEGYeAKIDDKdhE2ahqitm8OHM3aSvhqL6rrK6wm1brIk90JhxDf5lf2hbrLbQ==} 686 | engines: {node: '>=18.0.0'} 687 | 688 | '@smithy/util-defaults-mode-node@4.0.19': 689 | resolution: {integrity: sha512-8tYnx+LUfj6m+zkUUIrIQJxPM1xVxfRBvoGHua7R/i6qAxOMjqR6CpEpDwKoIs1o0+hOjGvkKE23CafKL0vJ9w==} 690 | engines: {node: '>=18.0.0'} 691 | 692 | '@smithy/util-endpoints@3.0.6': 693 | resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==} 694 | engines: {node: '>=18.0.0'} 695 | 696 | '@smithy/util-hex-encoding@4.0.0': 697 | resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} 698 | engines: {node: '>=18.0.0'} 699 | 700 | '@smithy/util-middleware@4.0.4': 701 | resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==} 702 | engines: {node: '>=18.0.0'} 703 | 704 | '@smithy/util-retry@4.0.5': 705 | resolution: {integrity: sha512-V7MSjVDTlEt/plmOFBn1762Dyu5uqMrV2Pl2X0dYk4XvWfdWJNe9Bs5Bzb56wkCuiWjSfClVMGcsuKrGj7S/yg==} 706 | engines: {node: '>=18.0.0'} 707 | 708 | '@smithy/util-stream@4.2.2': 709 | resolution: {integrity: sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==} 710 | engines: {node: '>=18.0.0'} 711 | 712 | '@smithy/util-uri-escape@4.0.0': 713 | resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} 714 | engines: {node: '>=18.0.0'} 715 | 716 | '@smithy/util-utf8@2.3.0': 717 | resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} 718 | engines: {node: '>=14.0.0'} 719 | 720 | '@smithy/util-utf8@4.0.0': 721 | resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} 722 | engines: {node: '>=18.0.0'} 723 | 724 | '@smithy/util-waiter@4.0.5': 725 | resolution: {integrity: sha512-4QvC49HTteI1gfemu0I1syWovJgPvGn7CVUoN9ZFkdvr/cCFkrEL7qNCdx/2eICqDWEGnnr68oMdSIPCLAriSQ==} 726 | engines: {node: '>=18.0.0'} 727 | 728 | '@tsconfig/node20@20.1.5': 729 | resolution: {integrity: sha512-Vm8e3WxDTqMGPU4GATF9keQAIy1Drd7bPwlgzKJnZtoOsTm1tduUTbDjg0W5qERvGuxPI2h9RbMufH0YdfBylA==} 730 | 731 | '@types/babel__core@7.20.5': 732 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 733 | 734 | '@types/babel__generator@7.6.8': 735 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 736 | 737 | '@types/babel__template@7.4.4': 738 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 739 | 740 | '@types/babel__traverse@7.20.5': 741 | resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} 742 | 743 | '@types/estree@1.0.6': 744 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 745 | 746 | '@types/graceful-fs@4.1.9': 747 | resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} 748 | 749 | '@types/istanbul-lib-coverage@2.0.6': 750 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 751 | 752 | '@types/istanbul-lib-report@3.0.3': 753 | resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} 754 | 755 | '@types/istanbul-reports@3.0.4': 756 | resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} 757 | 758 | '@types/jest@29.5.14': 759 | resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} 760 | 761 | '@types/json-schema@7.0.15': 762 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 763 | 764 | '@types/node@20.19.0': 765 | resolution: {integrity: sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==} 766 | 767 | '@types/sinon@17.0.3': 768 | resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} 769 | 770 | '@types/sinonjs__fake-timers@8.1.5': 771 | resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} 772 | 773 | '@types/stack-utils@2.0.3': 774 | resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} 775 | 776 | '@types/yargs-parser@21.0.3': 777 | resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} 778 | 779 | '@types/yargs@17.0.32': 780 | resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} 781 | 782 | '@typescript-eslint/eslint-plugin@8.33.1': 783 | resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} 784 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 785 | peerDependencies: 786 | '@typescript-eslint/parser': ^8.33.1 787 | eslint: ^8.57.0 || ^9.0.0 788 | typescript: '>=4.8.4 <5.9.0' 789 | 790 | '@typescript-eslint/parser@8.33.1': 791 | resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} 792 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 793 | peerDependencies: 794 | eslint: ^8.57.0 || ^9.0.0 795 | typescript: '>=4.8.4 <5.9.0' 796 | 797 | '@typescript-eslint/project-service@8.33.1': 798 | resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} 799 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 800 | peerDependencies: 801 | typescript: '>=4.8.4 <5.9.0' 802 | 803 | '@typescript-eslint/scope-manager@8.33.1': 804 | resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} 805 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 806 | 807 | '@typescript-eslint/tsconfig-utils@8.33.1': 808 | resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} 809 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 810 | peerDependencies: 811 | typescript: '>=4.8.4 <5.9.0' 812 | 813 | '@typescript-eslint/type-utils@8.33.1': 814 | resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} 815 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 816 | peerDependencies: 817 | eslint: ^8.57.0 || ^9.0.0 818 | typescript: '>=4.8.4 <5.9.0' 819 | 820 | '@typescript-eslint/types@8.33.1': 821 | resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} 822 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 823 | 824 | '@typescript-eslint/typescript-estree@8.33.1': 825 | resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} 826 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 827 | peerDependencies: 828 | typescript: '>=4.8.4 <5.9.0' 829 | 830 | '@typescript-eslint/utils@8.33.1': 831 | resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} 832 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 833 | peerDependencies: 834 | eslint: ^8.57.0 || ^9.0.0 835 | typescript: '>=4.8.4 <5.9.0' 836 | 837 | '@typescript-eslint/visitor-keys@8.33.1': 838 | resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} 839 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 840 | 841 | '@vercel/ncc@0.38.3': 842 | resolution: {integrity: sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==} 843 | hasBin: true 844 | 845 | acorn-jsx@5.3.2: 846 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 847 | peerDependencies: 848 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 849 | 850 | acorn@8.14.0: 851 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 852 | engines: {node: '>=0.4.0'} 853 | hasBin: true 854 | 855 | ajv@6.12.6: 856 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 857 | 858 | ansi-escapes@4.3.2: 859 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 860 | engines: {node: '>=8'} 861 | 862 | ansi-regex@5.0.1: 863 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 864 | engines: {node: '>=8'} 865 | 866 | ansi-styles@3.2.1: 867 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 868 | engines: {node: '>=4'} 869 | 870 | ansi-styles@4.3.0: 871 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 872 | engines: {node: '>=8'} 873 | 874 | ansi-styles@5.2.0: 875 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 876 | engines: {node: '>=10'} 877 | 878 | anymatch@3.1.3: 879 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 880 | engines: {node: '>= 8'} 881 | 882 | argparse@1.0.10: 883 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 884 | 885 | argparse@2.0.1: 886 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 887 | 888 | async@3.2.5: 889 | resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} 890 | 891 | aws-sdk-client-mock@4.1.0: 892 | resolution: {integrity: sha512-h/tOYTkXEsAcV3//6C1/7U4ifSpKyJvb6auveAepqqNJl6TdZaPFEtKjBQNf8UxQdDP850knB2i/whq4zlsxJw==} 893 | 894 | babel-jest@29.7.0: 895 | resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} 896 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 897 | peerDependencies: 898 | '@babel/core': ^7.8.0 899 | 900 | babel-plugin-istanbul@6.1.1: 901 | resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} 902 | engines: {node: '>=8'} 903 | 904 | babel-plugin-jest-hoist@29.6.3: 905 | resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} 906 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 907 | 908 | babel-preset-current-node-syntax@1.0.1: 909 | resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} 910 | peerDependencies: 911 | '@babel/core': ^7.0.0 912 | 913 | babel-preset-jest@29.6.3: 914 | resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} 915 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 916 | peerDependencies: 917 | '@babel/core': ^7.0.0 918 | 919 | balanced-match@1.0.2: 920 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 921 | 922 | bowser@2.11.0: 923 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 924 | 925 | brace-expansion@1.1.11: 926 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 927 | 928 | brace-expansion@2.0.1: 929 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 930 | 931 | braces@3.0.2: 932 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 933 | engines: {node: '>=8'} 934 | 935 | browserslist@4.23.0: 936 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 937 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 938 | hasBin: true 939 | 940 | bs-logger@0.2.6: 941 | resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} 942 | engines: {node: '>= 6'} 943 | 944 | bser@2.1.1: 945 | resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} 946 | 947 | buffer-from@1.1.2: 948 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 949 | 950 | callsites@3.1.0: 951 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 952 | engines: {node: '>=6'} 953 | 954 | camelcase@5.3.1: 955 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 956 | engines: {node: '>=6'} 957 | 958 | camelcase@6.3.0: 959 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 960 | engines: {node: '>=10'} 961 | 962 | caniuse-lite@1.0.30001591: 963 | resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} 964 | 965 | chalk@2.4.2: 966 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 967 | engines: {node: '>=4'} 968 | 969 | chalk@4.1.2: 970 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 971 | engines: {node: '>=10'} 972 | 973 | char-regex@1.0.2: 974 | resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} 975 | engines: {node: '>=10'} 976 | 977 | ci-info@3.9.0: 978 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 979 | engines: {node: '>=8'} 980 | 981 | cjs-module-lexer@1.2.3: 982 | resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} 983 | 984 | cliui@8.0.1: 985 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 986 | engines: {node: '>=12'} 987 | 988 | co@4.6.0: 989 | resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} 990 | engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} 991 | 992 | collect-v8-coverage@1.0.2: 993 | resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} 994 | 995 | color-convert@1.9.3: 996 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 997 | 998 | color-convert@2.0.1: 999 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1000 | engines: {node: '>=7.0.0'} 1001 | 1002 | color-name@1.1.3: 1003 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1004 | 1005 | color-name@1.1.4: 1006 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1007 | 1008 | concat-map@0.0.1: 1009 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1010 | 1011 | convert-source-map@2.0.0: 1012 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1013 | 1014 | create-jest@29.7.0: 1015 | resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} 1016 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1017 | hasBin: true 1018 | 1019 | cross-spawn@7.0.6: 1020 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1021 | engines: {node: '>= 8'} 1022 | 1023 | debug@4.4.0: 1024 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 1025 | engines: {node: '>=6.0'} 1026 | peerDependencies: 1027 | supports-color: '*' 1028 | peerDependenciesMeta: 1029 | supports-color: 1030 | optional: true 1031 | 1032 | dedent@1.5.1: 1033 | resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} 1034 | peerDependencies: 1035 | babel-plugin-macros: ^3.1.0 1036 | peerDependenciesMeta: 1037 | babel-plugin-macros: 1038 | optional: true 1039 | 1040 | deep-is@0.1.4: 1041 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1042 | 1043 | deepmerge@4.3.1: 1044 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 1045 | engines: {node: '>=0.10.0'} 1046 | 1047 | detect-newline@3.1.0: 1048 | resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} 1049 | engines: {node: '>=8'} 1050 | 1051 | diff-sequences@29.6.3: 1052 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 1053 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1054 | 1055 | diff@5.2.0: 1056 | resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 1057 | engines: {node: '>=0.3.1'} 1058 | 1059 | ejs@3.1.10: 1060 | resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} 1061 | engines: {node: '>=0.10.0'} 1062 | hasBin: true 1063 | 1064 | electron-to-chromium@1.4.690: 1065 | resolution: {integrity: sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==} 1066 | 1067 | emittery@0.13.1: 1068 | resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} 1069 | engines: {node: '>=12'} 1070 | 1071 | emoji-regex@8.0.0: 1072 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1073 | 1074 | error-ex@1.3.2: 1075 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1076 | 1077 | escalade@3.1.2: 1078 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1079 | engines: {node: '>=6'} 1080 | 1081 | escape-string-regexp@1.0.5: 1082 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1083 | engines: {node: '>=0.8.0'} 1084 | 1085 | escape-string-regexp@2.0.0: 1086 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 1087 | engines: {node: '>=8'} 1088 | 1089 | escape-string-regexp@4.0.0: 1090 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1091 | engines: {node: '>=10'} 1092 | 1093 | eslint-plugin-jest@28.13.0: 1094 | resolution: {integrity: sha512-4AuBcFWOriOeEqy6s4Zup/dQ7E1EPTyyfDaMYmM2YP9xEWPWwK3yYifH1dzY6aHRvyx7y53qMSIyT5s+jrorsQ==} 1095 | engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} 1096 | peerDependencies: 1097 | '@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 || ^8.0.0 1098 | eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 1099 | jest: '*' 1100 | peerDependenciesMeta: 1101 | '@typescript-eslint/eslint-plugin': 1102 | optional: true 1103 | jest: 1104 | optional: true 1105 | 1106 | eslint-scope@8.3.0: 1107 | resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} 1108 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1109 | 1110 | eslint-visitor-keys@3.4.3: 1111 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1112 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1113 | 1114 | eslint-visitor-keys@4.2.0: 1115 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 1116 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1117 | 1118 | eslint@9.28.0: 1119 | resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} 1120 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1121 | hasBin: true 1122 | peerDependencies: 1123 | jiti: '*' 1124 | peerDependenciesMeta: 1125 | jiti: 1126 | optional: true 1127 | 1128 | espree@10.3.0: 1129 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 1130 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1131 | 1132 | esprima@4.0.1: 1133 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1134 | engines: {node: '>=4'} 1135 | hasBin: true 1136 | 1137 | esquery@1.5.0: 1138 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1139 | engines: {node: '>=0.10'} 1140 | 1141 | esrecurse@4.3.0: 1142 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1143 | engines: {node: '>=4.0'} 1144 | 1145 | estraverse@5.3.0: 1146 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1147 | engines: {node: '>=4.0'} 1148 | 1149 | esutils@2.0.3: 1150 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1151 | engines: {node: '>=0.10.0'} 1152 | 1153 | execa@5.1.1: 1154 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1155 | engines: {node: '>=10'} 1156 | 1157 | exit@0.1.2: 1158 | resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} 1159 | engines: {node: '>= 0.8.0'} 1160 | 1161 | expect@29.7.0: 1162 | resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} 1163 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1164 | 1165 | fast-deep-equal@3.1.3: 1166 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1167 | 1168 | fast-glob@3.3.2: 1169 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1170 | engines: {node: '>=8.6.0'} 1171 | 1172 | fast-json-stable-stringify@2.1.0: 1173 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1174 | 1175 | fast-levenshtein@2.0.6: 1176 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1177 | 1178 | fast-xml-parser@4.4.1: 1179 | resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} 1180 | hasBin: true 1181 | 1182 | fastq@1.17.1: 1183 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1184 | 1185 | fb-watchman@2.0.2: 1186 | resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} 1187 | 1188 | file-entry-cache@8.0.0: 1189 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 1190 | engines: {node: '>=16.0.0'} 1191 | 1192 | filelist@1.0.4: 1193 | resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} 1194 | 1195 | fill-range@7.0.1: 1196 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1197 | engines: {node: '>=8'} 1198 | 1199 | find-up@4.1.0: 1200 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1201 | engines: {node: '>=8'} 1202 | 1203 | find-up@5.0.0: 1204 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1205 | engines: {node: '>=10'} 1206 | 1207 | flat-cache@4.0.1: 1208 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 1209 | engines: {node: '>=16'} 1210 | 1211 | flatted@3.3.1: 1212 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1213 | 1214 | fs.realpath@1.0.0: 1215 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1216 | 1217 | fsevents@2.3.3: 1218 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1219 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1220 | os: [darwin] 1221 | 1222 | function-bind@1.1.2: 1223 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1224 | 1225 | gensync@1.0.0-beta.2: 1226 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1227 | engines: {node: '>=6.9.0'} 1228 | 1229 | get-caller-file@2.0.5: 1230 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1231 | engines: {node: 6.* || 8.* || >= 10.*} 1232 | 1233 | get-package-type@0.1.0: 1234 | resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} 1235 | engines: {node: '>=8.0.0'} 1236 | 1237 | get-stream@6.0.1: 1238 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1239 | engines: {node: '>=10'} 1240 | 1241 | glob-parent@5.1.2: 1242 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1243 | engines: {node: '>= 6'} 1244 | 1245 | glob-parent@6.0.2: 1246 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1247 | engines: {node: '>=10.13.0'} 1248 | 1249 | glob@7.2.3: 1250 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1251 | deprecated: Glob versions prior to v9 are no longer supported 1252 | 1253 | globals@11.12.0: 1254 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1255 | engines: {node: '>=4'} 1256 | 1257 | globals@14.0.0: 1258 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 1259 | engines: {node: '>=18'} 1260 | 1261 | graceful-fs@4.2.11: 1262 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1263 | 1264 | graphemer@1.4.0: 1265 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1266 | 1267 | has-flag@3.0.0: 1268 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1269 | engines: {node: '>=4'} 1270 | 1271 | has-flag@4.0.0: 1272 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1273 | engines: {node: '>=8'} 1274 | 1275 | hasown@2.0.1: 1276 | resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} 1277 | engines: {node: '>= 0.4'} 1278 | 1279 | html-escaper@2.0.2: 1280 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 1281 | 1282 | human-signals@2.1.0: 1283 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1284 | engines: {node: '>=10.17.0'} 1285 | 1286 | ignore@5.3.1: 1287 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1288 | engines: {node: '>= 4'} 1289 | 1290 | ignore@7.0.4: 1291 | resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} 1292 | engines: {node: '>= 4'} 1293 | 1294 | import-fresh@3.3.0: 1295 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1296 | engines: {node: '>=6'} 1297 | 1298 | import-local@3.1.0: 1299 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} 1300 | engines: {node: '>=8'} 1301 | hasBin: true 1302 | 1303 | imurmurhash@0.1.4: 1304 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1305 | engines: {node: '>=0.8.19'} 1306 | 1307 | inflight@1.0.6: 1308 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1309 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1310 | 1311 | inherits@2.0.4: 1312 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1313 | 1314 | is-arrayish@0.2.1: 1315 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1316 | 1317 | is-core-module@2.13.1: 1318 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1319 | 1320 | is-extglob@2.1.1: 1321 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1322 | engines: {node: '>=0.10.0'} 1323 | 1324 | is-fullwidth-code-point@3.0.0: 1325 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1326 | engines: {node: '>=8'} 1327 | 1328 | is-generator-fn@2.1.0: 1329 | resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} 1330 | engines: {node: '>=6'} 1331 | 1332 | is-glob@4.0.3: 1333 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1334 | engines: {node: '>=0.10.0'} 1335 | 1336 | is-number@7.0.0: 1337 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1338 | engines: {node: '>=0.12.0'} 1339 | 1340 | is-stream@2.0.1: 1341 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1342 | engines: {node: '>=8'} 1343 | 1344 | isexe@2.0.0: 1345 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1346 | 1347 | istanbul-lib-coverage@3.2.2: 1348 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 1349 | engines: {node: '>=8'} 1350 | 1351 | istanbul-lib-instrument@5.2.1: 1352 | resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} 1353 | engines: {node: '>=8'} 1354 | 1355 | istanbul-lib-instrument@6.0.2: 1356 | resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} 1357 | engines: {node: '>=10'} 1358 | 1359 | istanbul-lib-report@3.0.1: 1360 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 1361 | engines: {node: '>=10'} 1362 | 1363 | istanbul-lib-source-maps@4.0.1: 1364 | resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} 1365 | engines: {node: '>=10'} 1366 | 1367 | istanbul-reports@3.1.7: 1368 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 1369 | engines: {node: '>=8'} 1370 | 1371 | jake@10.9.2: 1372 | resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} 1373 | engines: {node: '>=10'} 1374 | hasBin: true 1375 | 1376 | jest-changed-files@29.7.0: 1377 | resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} 1378 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1379 | 1380 | jest-circus@29.7.0: 1381 | resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} 1382 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1383 | 1384 | jest-cli@29.7.0: 1385 | resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} 1386 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1387 | hasBin: true 1388 | peerDependencies: 1389 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 1390 | peerDependenciesMeta: 1391 | node-notifier: 1392 | optional: true 1393 | 1394 | jest-config@29.7.0: 1395 | resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} 1396 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1397 | peerDependencies: 1398 | '@types/node': '*' 1399 | ts-node: '>=9.0.0' 1400 | peerDependenciesMeta: 1401 | '@types/node': 1402 | optional: true 1403 | ts-node: 1404 | optional: true 1405 | 1406 | jest-diff@29.7.0: 1407 | resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} 1408 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1409 | 1410 | jest-docblock@29.7.0: 1411 | resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} 1412 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1413 | 1414 | jest-each@29.7.0: 1415 | resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} 1416 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1417 | 1418 | jest-environment-node@29.7.0: 1419 | resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} 1420 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1421 | 1422 | jest-get-type@29.6.3: 1423 | resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} 1424 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1425 | 1426 | jest-haste-map@29.7.0: 1427 | resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} 1428 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1429 | 1430 | jest-leak-detector@29.7.0: 1431 | resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} 1432 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1433 | 1434 | jest-matcher-utils@29.7.0: 1435 | resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} 1436 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1437 | 1438 | jest-message-util@29.7.0: 1439 | resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} 1440 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1441 | 1442 | jest-mock@29.7.0: 1443 | resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} 1444 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1445 | 1446 | jest-pnp-resolver@1.2.3: 1447 | resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} 1448 | engines: {node: '>=6'} 1449 | peerDependencies: 1450 | jest-resolve: '*' 1451 | peerDependenciesMeta: 1452 | jest-resolve: 1453 | optional: true 1454 | 1455 | jest-regex-util@29.6.3: 1456 | resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} 1457 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1458 | 1459 | jest-resolve-dependencies@29.7.0: 1460 | resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} 1461 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1462 | 1463 | jest-resolve@29.7.0: 1464 | resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} 1465 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1466 | 1467 | jest-runner@29.7.0: 1468 | resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} 1469 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1470 | 1471 | jest-runtime@29.7.0: 1472 | resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} 1473 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1474 | 1475 | jest-snapshot@29.7.0: 1476 | resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} 1477 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1478 | 1479 | jest-util@29.7.0: 1480 | resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} 1481 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1482 | 1483 | jest-validate@29.7.0: 1484 | resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} 1485 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1486 | 1487 | jest-watcher@29.7.0: 1488 | resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} 1489 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1490 | 1491 | jest-worker@29.7.0: 1492 | resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} 1493 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1494 | 1495 | jest@29.7.0: 1496 | resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} 1497 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1498 | hasBin: true 1499 | peerDependencies: 1500 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 1501 | peerDependenciesMeta: 1502 | node-notifier: 1503 | optional: true 1504 | 1505 | js-tokens@4.0.0: 1506 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1507 | 1508 | js-yaml@3.14.1: 1509 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1510 | hasBin: true 1511 | 1512 | js-yaml@4.1.0: 1513 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1514 | hasBin: true 1515 | 1516 | jsesc@2.5.2: 1517 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1518 | engines: {node: '>=4'} 1519 | hasBin: true 1520 | 1521 | json-buffer@3.0.1: 1522 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1523 | 1524 | json-parse-even-better-errors@2.3.1: 1525 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1526 | 1527 | json-schema-traverse@0.4.1: 1528 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1529 | 1530 | json-stable-stringify-without-jsonify@1.0.1: 1531 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1532 | 1533 | json5@2.2.3: 1534 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1535 | engines: {node: '>=6'} 1536 | hasBin: true 1537 | 1538 | just-extend@6.2.0: 1539 | resolution: {integrity: sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==} 1540 | 1541 | keyv@4.5.4: 1542 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1543 | 1544 | kleur@3.0.3: 1545 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1546 | engines: {node: '>=6'} 1547 | 1548 | leven@3.1.0: 1549 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} 1550 | engines: {node: '>=6'} 1551 | 1552 | levn@0.4.1: 1553 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1554 | engines: {node: '>= 0.8.0'} 1555 | 1556 | lines-and-columns@1.2.4: 1557 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1558 | 1559 | locate-path@5.0.0: 1560 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1561 | engines: {node: '>=8'} 1562 | 1563 | locate-path@6.0.0: 1564 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1565 | engines: {node: '>=10'} 1566 | 1567 | lodash.get@4.4.2: 1568 | resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} 1569 | deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. 1570 | 1571 | lodash.memoize@4.1.2: 1572 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} 1573 | 1574 | lodash.merge@4.6.2: 1575 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1576 | 1577 | lru-cache@5.1.1: 1578 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1579 | 1580 | make-dir@4.0.0: 1581 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 1582 | engines: {node: '>=10'} 1583 | 1584 | make-error@1.3.6: 1585 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1586 | 1587 | makeerror@1.0.12: 1588 | resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} 1589 | 1590 | merge-stream@2.0.0: 1591 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1592 | 1593 | merge2@1.4.1: 1594 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1595 | engines: {node: '>= 8'} 1596 | 1597 | micromatch@4.0.5: 1598 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1599 | engines: {node: '>=8.6'} 1600 | 1601 | mimic-fn@2.1.0: 1602 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1603 | engines: {node: '>=6'} 1604 | 1605 | minimatch@3.1.2: 1606 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1607 | 1608 | minimatch@5.1.6: 1609 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 1610 | engines: {node: '>=10'} 1611 | 1612 | minimatch@9.0.4: 1613 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 1614 | engines: {node: '>=16 || 14 >=14.17'} 1615 | 1616 | ms@2.1.3: 1617 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1618 | 1619 | natural-compare@1.4.0: 1620 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1621 | 1622 | nise@6.1.1: 1623 | resolution: {integrity: sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==} 1624 | 1625 | node-int64@0.4.0: 1626 | resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} 1627 | 1628 | node-releases@2.0.14: 1629 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1630 | 1631 | normalize-path@3.0.0: 1632 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1633 | engines: {node: '>=0.10.0'} 1634 | 1635 | npm-run-path@4.0.1: 1636 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1637 | engines: {node: '>=8'} 1638 | 1639 | once@1.4.0: 1640 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1641 | 1642 | onetime@5.1.2: 1643 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1644 | engines: {node: '>=6'} 1645 | 1646 | optionator@0.9.3: 1647 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 1648 | engines: {node: '>= 0.8.0'} 1649 | 1650 | p-limit@2.3.0: 1651 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1652 | engines: {node: '>=6'} 1653 | 1654 | p-limit@3.1.0: 1655 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1656 | engines: {node: '>=10'} 1657 | 1658 | p-locate@4.1.0: 1659 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1660 | engines: {node: '>=8'} 1661 | 1662 | p-locate@5.0.0: 1663 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1664 | engines: {node: '>=10'} 1665 | 1666 | p-try@2.2.0: 1667 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1668 | engines: {node: '>=6'} 1669 | 1670 | parent-module@1.0.1: 1671 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1672 | engines: {node: '>=6'} 1673 | 1674 | parse-json@5.2.0: 1675 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1676 | engines: {node: '>=8'} 1677 | 1678 | path-exists@4.0.0: 1679 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1680 | engines: {node: '>=8'} 1681 | 1682 | path-is-absolute@1.0.1: 1683 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1684 | engines: {node: '>=0.10.0'} 1685 | 1686 | path-key@3.1.1: 1687 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1688 | engines: {node: '>=8'} 1689 | 1690 | path-parse@1.0.7: 1691 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1692 | 1693 | path-to-regexp@8.1.0: 1694 | resolution: {integrity: sha512-Bqn3vc8CMHty6zuD+tG23s6v2kwxslHEhTj4eYaVKGIEB+YX/2wd0/rgXLFD9G9id9KCtbVy/3ZgmvZjpa0UdQ==} 1695 | engines: {node: '>=16'} 1696 | 1697 | picocolors@1.0.0: 1698 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1699 | 1700 | picomatch@2.3.1: 1701 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1702 | engines: {node: '>=8.6'} 1703 | 1704 | pirates@4.0.6: 1705 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1706 | engines: {node: '>= 6'} 1707 | 1708 | pkg-dir@4.2.0: 1709 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1710 | engines: {node: '>=8'} 1711 | 1712 | pnpm@10.12.1: 1713 | resolution: {integrity: sha512-8N2oWA8O6UgcXHmh2Se5Fk8sR46QmSrSaLuyRlpzaYQ5HWMz0sMnkTV4soBK8zR0ylVLopwEqLEwYKcXZ1rjrA==} 1714 | engines: {node: '>=18.12'} 1715 | hasBin: true 1716 | 1717 | prelude-ls@1.2.1: 1718 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1719 | engines: {node: '>= 0.8.0'} 1720 | 1721 | prettier@3.5.3: 1722 | resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} 1723 | engines: {node: '>=14'} 1724 | hasBin: true 1725 | 1726 | pretty-format@29.7.0: 1727 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 1728 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1729 | 1730 | prompts@2.4.2: 1731 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 1732 | engines: {node: '>= 6'} 1733 | 1734 | punycode@2.3.1: 1735 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1736 | engines: {node: '>=6'} 1737 | 1738 | pure-rand@6.0.4: 1739 | resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} 1740 | 1741 | queue-microtask@1.2.3: 1742 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1743 | 1744 | react-is@18.2.0: 1745 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 1746 | 1747 | require-directory@2.1.1: 1748 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1749 | engines: {node: '>=0.10.0'} 1750 | 1751 | resolve-cwd@3.0.0: 1752 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} 1753 | engines: {node: '>=8'} 1754 | 1755 | resolve-from@4.0.0: 1756 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1757 | engines: {node: '>=4'} 1758 | 1759 | resolve-from@5.0.0: 1760 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1761 | engines: {node: '>=8'} 1762 | 1763 | resolve.exports@2.0.2: 1764 | resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} 1765 | engines: {node: '>=10'} 1766 | 1767 | resolve@1.22.8: 1768 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1769 | hasBin: true 1770 | 1771 | reusify@1.0.4: 1772 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1773 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1774 | 1775 | run-parallel@1.2.0: 1776 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1777 | 1778 | semver@6.3.1: 1779 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1780 | hasBin: true 1781 | 1782 | semver@7.7.2: 1783 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 1784 | engines: {node: '>=10'} 1785 | hasBin: true 1786 | 1787 | shebang-command@2.0.0: 1788 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1789 | engines: {node: '>=8'} 1790 | 1791 | shebang-regex@3.0.0: 1792 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1793 | engines: {node: '>=8'} 1794 | 1795 | signal-exit@3.0.7: 1796 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1797 | 1798 | sinon@18.0.1: 1799 | resolution: {integrity: sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==} 1800 | 1801 | sisteransi@1.0.5: 1802 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 1803 | 1804 | slash@3.0.0: 1805 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1806 | engines: {node: '>=8'} 1807 | 1808 | source-map-support@0.5.13: 1809 | resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} 1810 | 1811 | source-map@0.6.1: 1812 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1813 | engines: {node: '>=0.10.0'} 1814 | 1815 | sprintf-js@1.0.3: 1816 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1817 | 1818 | stack-utils@2.0.6: 1819 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} 1820 | engines: {node: '>=10'} 1821 | 1822 | string-length@4.0.2: 1823 | resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} 1824 | engines: {node: '>=10'} 1825 | 1826 | string-width@4.2.3: 1827 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1828 | engines: {node: '>=8'} 1829 | 1830 | strip-ansi@6.0.1: 1831 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1832 | engines: {node: '>=8'} 1833 | 1834 | strip-bom@4.0.0: 1835 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} 1836 | engines: {node: '>=8'} 1837 | 1838 | strip-final-newline@2.0.0: 1839 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1840 | engines: {node: '>=6'} 1841 | 1842 | strip-json-comments@3.1.1: 1843 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1844 | engines: {node: '>=8'} 1845 | 1846 | strnum@1.0.5: 1847 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 1848 | 1849 | supports-color@5.5.0: 1850 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1851 | engines: {node: '>=4'} 1852 | 1853 | supports-color@7.2.0: 1854 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1855 | engines: {node: '>=8'} 1856 | 1857 | supports-color@8.1.1: 1858 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1859 | engines: {node: '>=10'} 1860 | 1861 | supports-preserve-symlinks-flag@1.0.0: 1862 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1863 | engines: {node: '>= 0.4'} 1864 | 1865 | test-exclude@6.0.0: 1866 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 1867 | engines: {node: '>=8'} 1868 | 1869 | tmpl@1.0.5: 1870 | resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} 1871 | 1872 | to-fast-properties@2.0.0: 1873 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1874 | engines: {node: '>=4'} 1875 | 1876 | to-regex-range@5.0.1: 1877 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1878 | engines: {node: '>=8.0'} 1879 | 1880 | ts-api-utils@2.1.0: 1881 | resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 1882 | engines: {node: '>=18.12'} 1883 | peerDependencies: 1884 | typescript: '>=4.8.4' 1885 | 1886 | ts-jest@29.3.4: 1887 | resolution: {integrity: sha512-Iqbrm8IXOmV+ggWHOTEbjwyCf2xZlUMv5npExksXohL+tk8va4Fjhb+X2+Rt9NBmgO7bJ8WpnMLOwih/DnMlFA==} 1888 | engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} 1889 | hasBin: true 1890 | peerDependencies: 1891 | '@babel/core': '>=7.0.0-beta.0 <8' 1892 | '@jest/transform': ^29.0.0 1893 | '@jest/types': ^29.0.0 1894 | babel-jest: ^29.0.0 1895 | esbuild: '*' 1896 | jest: ^29.0.0 1897 | typescript: '>=4.3 <6' 1898 | peerDependenciesMeta: 1899 | '@babel/core': 1900 | optional: true 1901 | '@jest/transform': 1902 | optional: true 1903 | '@jest/types': 1904 | optional: true 1905 | babel-jest: 1906 | optional: true 1907 | esbuild: 1908 | optional: true 1909 | 1910 | tslib@2.6.2: 1911 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1912 | 1913 | tunnel@0.0.6: 1914 | resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} 1915 | engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} 1916 | 1917 | type-check@0.4.0: 1918 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1919 | engines: {node: '>= 0.8.0'} 1920 | 1921 | type-detect@4.0.8: 1922 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 1923 | engines: {node: '>=4'} 1924 | 1925 | type-fest@0.21.3: 1926 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 1927 | engines: {node: '>=10'} 1928 | 1929 | type-fest@4.41.0: 1930 | resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} 1931 | engines: {node: '>=16'} 1932 | 1933 | typescript-eslint@8.33.1: 1934 | resolution: {integrity: sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==} 1935 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1936 | peerDependencies: 1937 | eslint: ^8.57.0 || ^9.0.0 1938 | typescript: '>=4.8.4 <5.9.0' 1939 | 1940 | typescript@5.8.3: 1941 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 1942 | engines: {node: '>=14.17'} 1943 | hasBin: true 1944 | 1945 | undici-types@6.21.0: 1946 | resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 1947 | 1948 | undici@5.28.3: 1949 | resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} 1950 | engines: {node: '>=14.0'} 1951 | 1952 | update-browserslist-db@1.0.13: 1953 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 1954 | hasBin: true 1955 | peerDependencies: 1956 | browserslist: '>= 4.21.0' 1957 | 1958 | uri-js@4.4.1: 1959 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1960 | 1961 | uuid@9.0.1: 1962 | resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} 1963 | hasBin: true 1964 | 1965 | v8-to-istanbul@9.2.0: 1966 | resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} 1967 | engines: {node: '>=10.12.0'} 1968 | 1969 | walker@1.0.8: 1970 | resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} 1971 | 1972 | which@2.0.2: 1973 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1974 | engines: {node: '>= 8'} 1975 | hasBin: true 1976 | 1977 | wrap-ansi@7.0.0: 1978 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1979 | engines: {node: '>=10'} 1980 | 1981 | wrappy@1.0.2: 1982 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1983 | 1984 | write-file-atomic@4.0.2: 1985 | resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} 1986 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} 1987 | 1988 | y18n@5.0.8: 1989 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1990 | engines: {node: '>=10'} 1991 | 1992 | yallist@3.1.1: 1993 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1994 | 1995 | yargs-parser@21.1.1: 1996 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1997 | engines: {node: '>=12'} 1998 | 1999 | yargs@17.7.2: 2000 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 2001 | engines: {node: '>=12'} 2002 | 2003 | yocto-queue@0.1.0: 2004 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2005 | engines: {node: '>=10'} 2006 | 2007 | snapshots: 2008 | 2009 | '@aashutoshrathi/word-wrap@1.2.6': {} 2010 | 2011 | '@actions/core@1.11.1': 2012 | dependencies: 2013 | '@actions/exec': 1.1.1 2014 | '@actions/http-client': 2.2.0 2015 | 2016 | '@actions/exec@1.1.1': 2017 | dependencies: 2018 | '@actions/io': 1.1.3 2019 | 2020 | '@actions/http-client@2.2.0': 2021 | dependencies: 2022 | tunnel: 0.0.6 2023 | undici: 5.28.3 2024 | 2025 | '@actions/io@1.1.3': {} 2026 | 2027 | '@ampproject/remapping@2.3.0': 2028 | dependencies: 2029 | '@jridgewell/gen-mapping': 0.3.5 2030 | '@jridgewell/trace-mapping': 0.3.24 2031 | 2032 | '@aws-crypto/sha256-browser@5.2.0': 2033 | dependencies: 2034 | '@aws-crypto/sha256-js': 5.2.0 2035 | '@aws-crypto/supports-web-crypto': 5.2.0 2036 | '@aws-crypto/util': 5.2.0 2037 | '@aws-sdk/types': 3.821.0 2038 | '@aws-sdk/util-locate-window': 3.495.0 2039 | '@smithy/util-utf8': 2.3.0 2040 | tslib: 2.6.2 2041 | 2042 | '@aws-crypto/sha256-js@5.2.0': 2043 | dependencies: 2044 | '@aws-crypto/util': 5.2.0 2045 | '@aws-sdk/types': 3.821.0 2046 | tslib: 2.6.2 2047 | 2048 | '@aws-crypto/supports-web-crypto@5.2.0': 2049 | dependencies: 2050 | tslib: 2.6.2 2051 | 2052 | '@aws-crypto/util@5.2.0': 2053 | dependencies: 2054 | '@aws-sdk/types': 3.821.0 2055 | '@smithy/util-utf8': 2.3.0 2056 | tslib: 2.6.2 2057 | 2058 | '@aws-sdk/client-ecr-public@3.826.0': 2059 | dependencies: 2060 | '@aws-crypto/sha256-browser': 5.2.0 2061 | '@aws-crypto/sha256-js': 5.2.0 2062 | '@aws-sdk/core': 3.826.0 2063 | '@aws-sdk/credential-provider-node': 3.826.0 2064 | '@aws-sdk/middleware-host-header': 3.821.0 2065 | '@aws-sdk/middleware-logger': 3.821.0 2066 | '@aws-sdk/middleware-recursion-detection': 3.821.0 2067 | '@aws-sdk/middleware-user-agent': 3.826.0 2068 | '@aws-sdk/region-config-resolver': 3.821.0 2069 | '@aws-sdk/types': 3.821.0 2070 | '@aws-sdk/util-endpoints': 3.821.0 2071 | '@aws-sdk/util-user-agent-browser': 3.821.0 2072 | '@aws-sdk/util-user-agent-node': 3.826.0 2073 | '@smithy/config-resolver': 4.1.4 2074 | '@smithy/core': 3.5.3 2075 | '@smithy/fetch-http-handler': 5.0.4 2076 | '@smithy/hash-node': 4.0.4 2077 | '@smithy/invalid-dependency': 4.0.4 2078 | '@smithy/middleware-content-length': 4.0.4 2079 | '@smithy/middleware-endpoint': 4.1.11 2080 | '@smithy/middleware-retry': 4.1.12 2081 | '@smithy/middleware-serde': 4.0.8 2082 | '@smithy/middleware-stack': 4.0.4 2083 | '@smithy/node-config-provider': 4.1.3 2084 | '@smithy/node-http-handler': 4.0.6 2085 | '@smithy/protocol-http': 5.1.2 2086 | '@smithy/smithy-client': 4.4.3 2087 | '@smithy/types': 4.3.1 2088 | '@smithy/url-parser': 4.0.4 2089 | '@smithy/util-base64': 4.0.0 2090 | '@smithy/util-body-length-browser': 4.0.0 2091 | '@smithy/util-body-length-node': 4.0.0 2092 | '@smithy/util-defaults-mode-browser': 4.0.19 2093 | '@smithy/util-defaults-mode-node': 4.0.19 2094 | '@smithy/util-endpoints': 3.0.6 2095 | '@smithy/util-middleware': 4.0.4 2096 | '@smithy/util-retry': 4.0.5 2097 | '@smithy/util-utf8': 4.0.0 2098 | tslib: 2.6.2 2099 | transitivePeerDependencies: 2100 | - aws-crt 2101 | 2102 | '@aws-sdk/client-ecr@3.826.0': 2103 | dependencies: 2104 | '@aws-crypto/sha256-browser': 5.2.0 2105 | '@aws-crypto/sha256-js': 5.2.0 2106 | '@aws-sdk/core': 3.826.0 2107 | '@aws-sdk/credential-provider-node': 3.826.0 2108 | '@aws-sdk/middleware-host-header': 3.821.0 2109 | '@aws-sdk/middleware-logger': 3.821.0 2110 | '@aws-sdk/middleware-recursion-detection': 3.821.0 2111 | '@aws-sdk/middleware-user-agent': 3.826.0 2112 | '@aws-sdk/region-config-resolver': 3.821.0 2113 | '@aws-sdk/types': 3.821.0 2114 | '@aws-sdk/util-endpoints': 3.821.0 2115 | '@aws-sdk/util-user-agent-browser': 3.821.0 2116 | '@aws-sdk/util-user-agent-node': 3.826.0 2117 | '@smithy/config-resolver': 4.1.4 2118 | '@smithy/core': 3.5.3 2119 | '@smithy/fetch-http-handler': 5.0.4 2120 | '@smithy/hash-node': 4.0.4 2121 | '@smithy/invalid-dependency': 4.0.4 2122 | '@smithy/middleware-content-length': 4.0.4 2123 | '@smithy/middleware-endpoint': 4.1.11 2124 | '@smithy/middleware-retry': 4.1.12 2125 | '@smithy/middleware-serde': 4.0.8 2126 | '@smithy/middleware-stack': 4.0.4 2127 | '@smithy/node-config-provider': 4.1.3 2128 | '@smithy/node-http-handler': 4.0.6 2129 | '@smithy/protocol-http': 5.1.2 2130 | '@smithy/smithy-client': 4.4.3 2131 | '@smithy/types': 4.3.1 2132 | '@smithy/url-parser': 4.0.4 2133 | '@smithy/util-base64': 4.0.0 2134 | '@smithy/util-body-length-browser': 4.0.0 2135 | '@smithy/util-body-length-node': 4.0.0 2136 | '@smithy/util-defaults-mode-browser': 4.0.19 2137 | '@smithy/util-defaults-mode-node': 4.0.19 2138 | '@smithy/util-endpoints': 3.0.6 2139 | '@smithy/util-middleware': 4.0.4 2140 | '@smithy/util-retry': 4.0.5 2141 | '@smithy/util-utf8': 4.0.0 2142 | '@smithy/util-waiter': 4.0.5 2143 | tslib: 2.6.2 2144 | transitivePeerDependencies: 2145 | - aws-crt 2146 | 2147 | '@aws-sdk/client-sso@3.826.0': 2148 | dependencies: 2149 | '@aws-crypto/sha256-browser': 5.2.0 2150 | '@aws-crypto/sha256-js': 5.2.0 2151 | '@aws-sdk/core': 3.826.0 2152 | '@aws-sdk/middleware-host-header': 3.821.0 2153 | '@aws-sdk/middleware-logger': 3.821.0 2154 | '@aws-sdk/middleware-recursion-detection': 3.821.0 2155 | '@aws-sdk/middleware-user-agent': 3.826.0 2156 | '@aws-sdk/region-config-resolver': 3.821.0 2157 | '@aws-sdk/types': 3.821.0 2158 | '@aws-sdk/util-endpoints': 3.821.0 2159 | '@aws-sdk/util-user-agent-browser': 3.821.0 2160 | '@aws-sdk/util-user-agent-node': 3.826.0 2161 | '@smithy/config-resolver': 4.1.4 2162 | '@smithy/core': 3.5.3 2163 | '@smithy/fetch-http-handler': 5.0.4 2164 | '@smithy/hash-node': 4.0.4 2165 | '@smithy/invalid-dependency': 4.0.4 2166 | '@smithy/middleware-content-length': 4.0.4 2167 | '@smithy/middleware-endpoint': 4.1.11 2168 | '@smithy/middleware-retry': 4.1.12 2169 | '@smithy/middleware-serde': 4.0.8 2170 | '@smithy/middleware-stack': 4.0.4 2171 | '@smithy/node-config-provider': 4.1.3 2172 | '@smithy/node-http-handler': 4.0.6 2173 | '@smithy/protocol-http': 5.1.2 2174 | '@smithy/smithy-client': 4.4.3 2175 | '@smithy/types': 4.3.1 2176 | '@smithy/url-parser': 4.0.4 2177 | '@smithy/util-base64': 4.0.0 2178 | '@smithy/util-body-length-browser': 4.0.0 2179 | '@smithy/util-body-length-node': 4.0.0 2180 | '@smithy/util-defaults-mode-browser': 4.0.19 2181 | '@smithy/util-defaults-mode-node': 4.0.19 2182 | '@smithy/util-endpoints': 3.0.6 2183 | '@smithy/util-middleware': 4.0.4 2184 | '@smithy/util-retry': 4.0.5 2185 | '@smithy/util-utf8': 4.0.0 2186 | tslib: 2.6.2 2187 | transitivePeerDependencies: 2188 | - aws-crt 2189 | 2190 | '@aws-sdk/core@3.826.0': 2191 | dependencies: 2192 | '@aws-sdk/types': 3.821.0 2193 | '@aws-sdk/xml-builder': 3.821.0 2194 | '@smithy/core': 3.5.3 2195 | '@smithy/node-config-provider': 4.1.3 2196 | '@smithy/property-provider': 4.0.4 2197 | '@smithy/protocol-http': 5.1.2 2198 | '@smithy/signature-v4': 5.1.2 2199 | '@smithy/smithy-client': 4.4.3 2200 | '@smithy/types': 4.3.1 2201 | '@smithy/util-base64': 4.0.0 2202 | '@smithy/util-body-length-browser': 4.0.0 2203 | '@smithy/util-middleware': 4.0.4 2204 | '@smithy/util-utf8': 4.0.0 2205 | fast-xml-parser: 4.4.1 2206 | tslib: 2.6.2 2207 | 2208 | '@aws-sdk/credential-provider-env@3.826.0': 2209 | dependencies: 2210 | '@aws-sdk/core': 3.826.0 2211 | '@aws-sdk/types': 3.821.0 2212 | '@smithy/property-provider': 4.0.4 2213 | '@smithy/types': 4.3.1 2214 | tslib: 2.6.2 2215 | 2216 | '@aws-sdk/credential-provider-http@3.826.0': 2217 | dependencies: 2218 | '@aws-sdk/core': 3.826.0 2219 | '@aws-sdk/types': 3.821.0 2220 | '@smithy/fetch-http-handler': 5.0.4 2221 | '@smithy/node-http-handler': 4.0.6 2222 | '@smithy/property-provider': 4.0.4 2223 | '@smithy/protocol-http': 5.1.2 2224 | '@smithy/smithy-client': 4.4.3 2225 | '@smithy/types': 4.3.1 2226 | '@smithy/util-stream': 4.2.2 2227 | tslib: 2.6.2 2228 | 2229 | '@aws-sdk/credential-provider-ini@3.826.0': 2230 | dependencies: 2231 | '@aws-sdk/core': 3.826.0 2232 | '@aws-sdk/credential-provider-env': 3.826.0 2233 | '@aws-sdk/credential-provider-http': 3.826.0 2234 | '@aws-sdk/credential-provider-process': 3.826.0 2235 | '@aws-sdk/credential-provider-sso': 3.826.0 2236 | '@aws-sdk/credential-provider-web-identity': 3.826.0 2237 | '@aws-sdk/nested-clients': 3.826.0 2238 | '@aws-sdk/types': 3.821.0 2239 | '@smithy/credential-provider-imds': 4.0.6 2240 | '@smithy/property-provider': 4.0.4 2241 | '@smithy/shared-ini-file-loader': 4.0.4 2242 | '@smithy/types': 4.3.1 2243 | tslib: 2.6.2 2244 | transitivePeerDependencies: 2245 | - aws-crt 2246 | 2247 | '@aws-sdk/credential-provider-node@3.826.0': 2248 | dependencies: 2249 | '@aws-sdk/credential-provider-env': 3.826.0 2250 | '@aws-sdk/credential-provider-http': 3.826.0 2251 | '@aws-sdk/credential-provider-ini': 3.826.0 2252 | '@aws-sdk/credential-provider-process': 3.826.0 2253 | '@aws-sdk/credential-provider-sso': 3.826.0 2254 | '@aws-sdk/credential-provider-web-identity': 3.826.0 2255 | '@aws-sdk/types': 3.821.0 2256 | '@smithy/credential-provider-imds': 4.0.6 2257 | '@smithy/property-provider': 4.0.4 2258 | '@smithy/shared-ini-file-loader': 4.0.4 2259 | '@smithy/types': 4.3.1 2260 | tslib: 2.6.2 2261 | transitivePeerDependencies: 2262 | - aws-crt 2263 | 2264 | '@aws-sdk/credential-provider-process@3.826.0': 2265 | dependencies: 2266 | '@aws-sdk/core': 3.826.0 2267 | '@aws-sdk/types': 3.821.0 2268 | '@smithy/property-provider': 4.0.4 2269 | '@smithy/shared-ini-file-loader': 4.0.4 2270 | '@smithy/types': 4.3.1 2271 | tslib: 2.6.2 2272 | 2273 | '@aws-sdk/credential-provider-sso@3.826.0': 2274 | dependencies: 2275 | '@aws-sdk/client-sso': 3.826.0 2276 | '@aws-sdk/core': 3.826.0 2277 | '@aws-sdk/token-providers': 3.826.0 2278 | '@aws-sdk/types': 3.821.0 2279 | '@smithy/property-provider': 4.0.4 2280 | '@smithy/shared-ini-file-loader': 4.0.4 2281 | '@smithy/types': 4.3.1 2282 | tslib: 2.6.2 2283 | transitivePeerDependencies: 2284 | - aws-crt 2285 | 2286 | '@aws-sdk/credential-provider-web-identity@3.826.0': 2287 | dependencies: 2288 | '@aws-sdk/core': 3.826.0 2289 | '@aws-sdk/nested-clients': 3.826.0 2290 | '@aws-sdk/types': 3.821.0 2291 | '@smithy/property-provider': 4.0.4 2292 | '@smithy/types': 4.3.1 2293 | tslib: 2.6.2 2294 | transitivePeerDependencies: 2295 | - aws-crt 2296 | 2297 | '@aws-sdk/middleware-host-header@3.821.0': 2298 | dependencies: 2299 | '@aws-sdk/types': 3.821.0 2300 | '@smithy/protocol-http': 5.1.2 2301 | '@smithy/types': 4.3.1 2302 | tslib: 2.6.2 2303 | 2304 | '@aws-sdk/middleware-logger@3.821.0': 2305 | dependencies: 2306 | '@aws-sdk/types': 3.821.0 2307 | '@smithy/types': 4.3.1 2308 | tslib: 2.6.2 2309 | 2310 | '@aws-sdk/middleware-recursion-detection@3.821.0': 2311 | dependencies: 2312 | '@aws-sdk/types': 3.821.0 2313 | '@smithy/protocol-http': 5.1.2 2314 | '@smithy/types': 4.3.1 2315 | tslib: 2.6.2 2316 | 2317 | '@aws-sdk/middleware-user-agent@3.826.0': 2318 | dependencies: 2319 | '@aws-sdk/core': 3.826.0 2320 | '@aws-sdk/types': 3.821.0 2321 | '@aws-sdk/util-endpoints': 3.821.0 2322 | '@smithy/core': 3.5.3 2323 | '@smithy/protocol-http': 5.1.2 2324 | '@smithy/types': 4.3.1 2325 | tslib: 2.6.2 2326 | 2327 | '@aws-sdk/nested-clients@3.826.0': 2328 | dependencies: 2329 | '@aws-crypto/sha256-browser': 5.2.0 2330 | '@aws-crypto/sha256-js': 5.2.0 2331 | '@aws-sdk/core': 3.826.0 2332 | '@aws-sdk/middleware-host-header': 3.821.0 2333 | '@aws-sdk/middleware-logger': 3.821.0 2334 | '@aws-sdk/middleware-recursion-detection': 3.821.0 2335 | '@aws-sdk/middleware-user-agent': 3.826.0 2336 | '@aws-sdk/region-config-resolver': 3.821.0 2337 | '@aws-sdk/types': 3.821.0 2338 | '@aws-sdk/util-endpoints': 3.821.0 2339 | '@aws-sdk/util-user-agent-browser': 3.821.0 2340 | '@aws-sdk/util-user-agent-node': 3.826.0 2341 | '@smithy/config-resolver': 4.1.4 2342 | '@smithy/core': 3.5.3 2343 | '@smithy/fetch-http-handler': 5.0.4 2344 | '@smithy/hash-node': 4.0.4 2345 | '@smithy/invalid-dependency': 4.0.4 2346 | '@smithy/middleware-content-length': 4.0.4 2347 | '@smithy/middleware-endpoint': 4.1.11 2348 | '@smithy/middleware-retry': 4.1.12 2349 | '@smithy/middleware-serde': 4.0.8 2350 | '@smithy/middleware-stack': 4.0.4 2351 | '@smithy/node-config-provider': 4.1.3 2352 | '@smithy/node-http-handler': 4.0.6 2353 | '@smithy/protocol-http': 5.1.2 2354 | '@smithy/smithy-client': 4.4.3 2355 | '@smithy/types': 4.3.1 2356 | '@smithy/url-parser': 4.0.4 2357 | '@smithy/util-base64': 4.0.0 2358 | '@smithy/util-body-length-browser': 4.0.0 2359 | '@smithy/util-body-length-node': 4.0.0 2360 | '@smithy/util-defaults-mode-browser': 4.0.19 2361 | '@smithy/util-defaults-mode-node': 4.0.19 2362 | '@smithy/util-endpoints': 3.0.6 2363 | '@smithy/util-middleware': 4.0.4 2364 | '@smithy/util-retry': 4.0.5 2365 | '@smithy/util-utf8': 4.0.0 2366 | tslib: 2.6.2 2367 | transitivePeerDependencies: 2368 | - aws-crt 2369 | 2370 | '@aws-sdk/region-config-resolver@3.821.0': 2371 | dependencies: 2372 | '@aws-sdk/types': 3.821.0 2373 | '@smithy/node-config-provider': 4.1.3 2374 | '@smithy/types': 4.3.1 2375 | '@smithy/util-config-provider': 4.0.0 2376 | '@smithy/util-middleware': 4.0.4 2377 | tslib: 2.6.2 2378 | 2379 | '@aws-sdk/token-providers@3.826.0': 2380 | dependencies: 2381 | '@aws-sdk/core': 3.826.0 2382 | '@aws-sdk/nested-clients': 3.826.0 2383 | '@aws-sdk/types': 3.821.0 2384 | '@smithy/property-provider': 4.0.4 2385 | '@smithy/shared-ini-file-loader': 4.0.4 2386 | '@smithy/types': 4.3.1 2387 | tslib: 2.6.2 2388 | transitivePeerDependencies: 2389 | - aws-crt 2390 | 2391 | '@aws-sdk/types@3.821.0': 2392 | dependencies: 2393 | '@smithy/types': 4.3.1 2394 | tslib: 2.6.2 2395 | 2396 | '@aws-sdk/util-endpoints@3.821.0': 2397 | dependencies: 2398 | '@aws-sdk/types': 3.821.0 2399 | '@smithy/types': 4.3.1 2400 | '@smithy/util-endpoints': 3.0.6 2401 | tslib: 2.6.2 2402 | 2403 | '@aws-sdk/util-locate-window@3.495.0': 2404 | dependencies: 2405 | tslib: 2.6.2 2406 | 2407 | '@aws-sdk/util-user-agent-browser@3.821.0': 2408 | dependencies: 2409 | '@aws-sdk/types': 3.821.0 2410 | '@smithy/types': 4.3.1 2411 | bowser: 2.11.0 2412 | tslib: 2.6.2 2413 | 2414 | '@aws-sdk/util-user-agent-node@3.826.0': 2415 | dependencies: 2416 | '@aws-sdk/middleware-user-agent': 3.826.0 2417 | '@aws-sdk/types': 3.821.0 2418 | '@smithy/node-config-provider': 4.1.3 2419 | '@smithy/types': 4.3.1 2420 | tslib: 2.6.2 2421 | 2422 | '@aws-sdk/xml-builder@3.821.0': 2423 | dependencies: 2424 | '@smithy/types': 4.3.1 2425 | tslib: 2.6.2 2426 | 2427 | '@babel/code-frame@7.23.5': 2428 | dependencies: 2429 | '@babel/highlight': 7.23.4 2430 | chalk: 2.4.2 2431 | 2432 | '@babel/compat-data@7.23.5': {} 2433 | 2434 | '@babel/core@7.24.0': 2435 | dependencies: 2436 | '@ampproject/remapping': 2.3.0 2437 | '@babel/code-frame': 7.23.5 2438 | '@babel/generator': 7.23.6 2439 | '@babel/helper-compilation-targets': 7.23.6 2440 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) 2441 | '@babel/helpers': 7.24.0 2442 | '@babel/parser': 7.24.0 2443 | '@babel/template': 7.24.0 2444 | '@babel/traverse': 7.24.0 2445 | '@babel/types': 7.24.0 2446 | convert-source-map: 2.0.0 2447 | debug: 4.4.0 2448 | gensync: 1.0.0-beta.2 2449 | json5: 2.2.3 2450 | semver: 6.3.1 2451 | transitivePeerDependencies: 2452 | - supports-color 2453 | 2454 | '@babel/generator@7.23.6': 2455 | dependencies: 2456 | '@babel/types': 7.24.0 2457 | '@jridgewell/gen-mapping': 0.3.5 2458 | '@jridgewell/trace-mapping': 0.3.24 2459 | jsesc: 2.5.2 2460 | 2461 | '@babel/helper-compilation-targets@7.23.6': 2462 | dependencies: 2463 | '@babel/compat-data': 7.23.5 2464 | '@babel/helper-validator-option': 7.23.5 2465 | browserslist: 4.23.0 2466 | lru-cache: 5.1.1 2467 | semver: 6.3.1 2468 | 2469 | '@babel/helper-environment-visitor@7.22.20': {} 2470 | 2471 | '@babel/helper-function-name@7.23.0': 2472 | dependencies: 2473 | '@babel/template': 7.24.0 2474 | '@babel/types': 7.24.0 2475 | 2476 | '@babel/helper-hoist-variables@7.22.5': 2477 | dependencies: 2478 | '@babel/types': 7.24.0 2479 | 2480 | '@babel/helper-module-imports@7.22.15': 2481 | dependencies: 2482 | '@babel/types': 7.24.0 2483 | 2484 | '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)': 2485 | dependencies: 2486 | '@babel/core': 7.24.0 2487 | '@babel/helper-environment-visitor': 7.22.20 2488 | '@babel/helper-module-imports': 7.22.15 2489 | '@babel/helper-simple-access': 7.22.5 2490 | '@babel/helper-split-export-declaration': 7.22.6 2491 | '@babel/helper-validator-identifier': 7.22.20 2492 | 2493 | '@babel/helper-plugin-utils@7.24.0': {} 2494 | 2495 | '@babel/helper-simple-access@7.22.5': 2496 | dependencies: 2497 | '@babel/types': 7.24.0 2498 | 2499 | '@babel/helper-split-export-declaration@7.22.6': 2500 | dependencies: 2501 | '@babel/types': 7.24.0 2502 | 2503 | '@babel/helper-string-parser@7.23.4': {} 2504 | 2505 | '@babel/helper-validator-identifier@7.22.20': {} 2506 | 2507 | '@babel/helper-validator-option@7.23.5': {} 2508 | 2509 | '@babel/helpers@7.24.0': 2510 | dependencies: 2511 | '@babel/template': 7.24.0 2512 | '@babel/traverse': 7.24.0 2513 | '@babel/types': 7.24.0 2514 | transitivePeerDependencies: 2515 | - supports-color 2516 | 2517 | '@babel/highlight@7.23.4': 2518 | dependencies: 2519 | '@babel/helper-validator-identifier': 7.22.20 2520 | chalk: 2.4.2 2521 | js-tokens: 4.0.0 2522 | 2523 | '@babel/parser@7.24.0': 2524 | dependencies: 2525 | '@babel/types': 7.24.0 2526 | 2527 | '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)': 2528 | dependencies: 2529 | '@babel/core': 7.24.0 2530 | '@babel/helper-plugin-utils': 7.24.0 2531 | 2532 | '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0)': 2533 | dependencies: 2534 | '@babel/core': 7.24.0 2535 | '@babel/helper-plugin-utils': 7.24.0 2536 | 2537 | '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)': 2538 | dependencies: 2539 | '@babel/core': 7.24.0 2540 | '@babel/helper-plugin-utils': 7.24.0 2541 | 2542 | '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)': 2543 | dependencies: 2544 | '@babel/core': 7.24.0 2545 | '@babel/helper-plugin-utils': 7.24.0 2546 | 2547 | '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)': 2548 | dependencies: 2549 | '@babel/core': 7.24.0 2550 | '@babel/helper-plugin-utils': 7.24.0 2551 | 2552 | '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0)': 2553 | dependencies: 2554 | '@babel/core': 7.24.0 2555 | '@babel/helper-plugin-utils': 7.24.0 2556 | 2557 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)': 2558 | dependencies: 2559 | '@babel/core': 7.24.0 2560 | '@babel/helper-plugin-utils': 7.24.0 2561 | 2562 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)': 2563 | dependencies: 2564 | '@babel/core': 7.24.0 2565 | '@babel/helper-plugin-utils': 7.24.0 2566 | 2567 | '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)': 2568 | dependencies: 2569 | '@babel/core': 7.24.0 2570 | '@babel/helper-plugin-utils': 7.24.0 2571 | 2572 | '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)': 2573 | dependencies: 2574 | '@babel/core': 7.24.0 2575 | '@babel/helper-plugin-utils': 7.24.0 2576 | 2577 | '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)': 2578 | dependencies: 2579 | '@babel/core': 7.24.0 2580 | '@babel/helper-plugin-utils': 7.24.0 2581 | 2582 | '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)': 2583 | dependencies: 2584 | '@babel/core': 7.24.0 2585 | '@babel/helper-plugin-utils': 7.24.0 2586 | 2587 | '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)': 2588 | dependencies: 2589 | '@babel/core': 7.24.0 2590 | '@babel/helper-plugin-utils': 7.24.0 2591 | 2592 | '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0)': 2593 | dependencies: 2594 | '@babel/core': 7.24.0 2595 | '@babel/helper-plugin-utils': 7.24.0 2596 | 2597 | '@babel/template@7.24.0': 2598 | dependencies: 2599 | '@babel/code-frame': 7.23.5 2600 | '@babel/parser': 7.24.0 2601 | '@babel/types': 7.24.0 2602 | 2603 | '@babel/traverse@7.24.0': 2604 | dependencies: 2605 | '@babel/code-frame': 7.23.5 2606 | '@babel/generator': 7.23.6 2607 | '@babel/helper-environment-visitor': 7.22.20 2608 | '@babel/helper-function-name': 7.23.0 2609 | '@babel/helper-hoist-variables': 7.22.5 2610 | '@babel/helper-split-export-declaration': 7.22.6 2611 | '@babel/parser': 7.24.0 2612 | '@babel/types': 7.24.0 2613 | debug: 4.4.0 2614 | globals: 11.12.0 2615 | transitivePeerDependencies: 2616 | - supports-color 2617 | 2618 | '@babel/types@7.24.0': 2619 | dependencies: 2620 | '@babel/helper-string-parser': 7.23.4 2621 | '@babel/helper-validator-identifier': 7.22.20 2622 | to-fast-properties: 2.0.0 2623 | 2624 | '@bcoe/v8-coverage@0.2.3': {} 2625 | 2626 | '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0)': 2627 | dependencies: 2628 | eslint: 9.28.0 2629 | eslint-visitor-keys: 3.4.3 2630 | 2631 | '@eslint-community/regexpp@4.12.1': {} 2632 | 2633 | '@eslint/config-array@0.20.0': 2634 | dependencies: 2635 | '@eslint/object-schema': 2.1.6 2636 | debug: 4.4.0 2637 | minimatch: 3.1.2 2638 | transitivePeerDependencies: 2639 | - supports-color 2640 | 2641 | '@eslint/config-helpers@0.2.1': {} 2642 | 2643 | '@eslint/core@0.14.0': 2644 | dependencies: 2645 | '@types/json-schema': 7.0.15 2646 | 2647 | '@eslint/eslintrc@3.3.1': 2648 | dependencies: 2649 | ajv: 6.12.6 2650 | debug: 4.4.0 2651 | espree: 10.3.0 2652 | globals: 14.0.0 2653 | ignore: 5.3.1 2654 | import-fresh: 3.3.0 2655 | js-yaml: 4.1.0 2656 | minimatch: 3.1.2 2657 | strip-json-comments: 3.1.1 2658 | transitivePeerDependencies: 2659 | - supports-color 2660 | 2661 | '@eslint/js@9.28.0': {} 2662 | 2663 | '@eslint/object-schema@2.1.6': {} 2664 | 2665 | '@eslint/plugin-kit@0.3.1': 2666 | dependencies: 2667 | '@eslint/core': 0.14.0 2668 | levn: 0.4.1 2669 | 2670 | '@fastify/busboy@2.1.1': {} 2671 | 2672 | '@humanfs/core@0.19.1': {} 2673 | 2674 | '@humanfs/node@0.16.6': 2675 | dependencies: 2676 | '@humanfs/core': 0.19.1 2677 | '@humanwhocodes/retry': 0.3.1 2678 | 2679 | '@humanwhocodes/module-importer@1.0.1': {} 2680 | 2681 | '@humanwhocodes/retry@0.3.1': {} 2682 | 2683 | '@humanwhocodes/retry@0.4.2': {} 2684 | 2685 | '@istanbuljs/load-nyc-config@1.1.0': 2686 | dependencies: 2687 | camelcase: 5.3.1 2688 | find-up: 4.1.0 2689 | get-package-type: 0.1.0 2690 | js-yaml: 3.14.1 2691 | resolve-from: 5.0.0 2692 | 2693 | '@istanbuljs/schema@0.1.3': {} 2694 | 2695 | '@jest/console@29.7.0': 2696 | dependencies: 2697 | '@jest/types': 29.6.3 2698 | '@types/node': 20.19.0 2699 | chalk: 4.1.2 2700 | jest-message-util: 29.7.0 2701 | jest-util: 29.7.0 2702 | slash: 3.0.0 2703 | 2704 | '@jest/core@29.7.0': 2705 | dependencies: 2706 | '@jest/console': 29.7.0 2707 | '@jest/reporters': 29.7.0 2708 | '@jest/test-result': 29.7.0 2709 | '@jest/transform': 29.7.0 2710 | '@jest/types': 29.6.3 2711 | '@types/node': 20.19.0 2712 | ansi-escapes: 4.3.2 2713 | chalk: 4.1.2 2714 | ci-info: 3.9.0 2715 | exit: 0.1.2 2716 | graceful-fs: 4.2.11 2717 | jest-changed-files: 29.7.0 2718 | jest-config: 29.7.0(@types/node@20.19.0) 2719 | jest-haste-map: 29.7.0 2720 | jest-message-util: 29.7.0 2721 | jest-regex-util: 29.6.3 2722 | jest-resolve: 29.7.0 2723 | jest-resolve-dependencies: 29.7.0 2724 | jest-runner: 29.7.0 2725 | jest-runtime: 29.7.0 2726 | jest-snapshot: 29.7.0 2727 | jest-util: 29.7.0 2728 | jest-validate: 29.7.0 2729 | jest-watcher: 29.7.0 2730 | micromatch: 4.0.5 2731 | pretty-format: 29.7.0 2732 | slash: 3.0.0 2733 | strip-ansi: 6.0.1 2734 | transitivePeerDependencies: 2735 | - babel-plugin-macros 2736 | - supports-color 2737 | - ts-node 2738 | 2739 | '@jest/environment@29.7.0': 2740 | dependencies: 2741 | '@jest/fake-timers': 29.7.0 2742 | '@jest/types': 29.6.3 2743 | '@types/node': 20.19.0 2744 | jest-mock: 29.7.0 2745 | 2746 | '@jest/expect-utils@29.7.0': 2747 | dependencies: 2748 | jest-get-type: 29.6.3 2749 | 2750 | '@jest/expect@29.7.0': 2751 | dependencies: 2752 | expect: 29.7.0 2753 | jest-snapshot: 29.7.0 2754 | transitivePeerDependencies: 2755 | - supports-color 2756 | 2757 | '@jest/fake-timers@29.7.0': 2758 | dependencies: 2759 | '@jest/types': 29.6.3 2760 | '@sinonjs/fake-timers': 10.3.0 2761 | '@types/node': 20.19.0 2762 | jest-message-util: 29.7.0 2763 | jest-mock: 29.7.0 2764 | jest-util: 29.7.0 2765 | 2766 | '@jest/globals@29.7.0': 2767 | dependencies: 2768 | '@jest/environment': 29.7.0 2769 | '@jest/expect': 29.7.0 2770 | '@jest/types': 29.6.3 2771 | jest-mock: 29.7.0 2772 | transitivePeerDependencies: 2773 | - supports-color 2774 | 2775 | '@jest/reporters@29.7.0': 2776 | dependencies: 2777 | '@bcoe/v8-coverage': 0.2.3 2778 | '@jest/console': 29.7.0 2779 | '@jest/test-result': 29.7.0 2780 | '@jest/transform': 29.7.0 2781 | '@jest/types': 29.6.3 2782 | '@jridgewell/trace-mapping': 0.3.24 2783 | '@types/node': 20.19.0 2784 | chalk: 4.1.2 2785 | collect-v8-coverage: 1.0.2 2786 | exit: 0.1.2 2787 | glob: 7.2.3 2788 | graceful-fs: 4.2.11 2789 | istanbul-lib-coverage: 3.2.2 2790 | istanbul-lib-instrument: 6.0.2 2791 | istanbul-lib-report: 3.0.1 2792 | istanbul-lib-source-maps: 4.0.1 2793 | istanbul-reports: 3.1.7 2794 | jest-message-util: 29.7.0 2795 | jest-util: 29.7.0 2796 | jest-worker: 29.7.0 2797 | slash: 3.0.0 2798 | string-length: 4.0.2 2799 | strip-ansi: 6.0.1 2800 | v8-to-istanbul: 9.2.0 2801 | transitivePeerDependencies: 2802 | - supports-color 2803 | 2804 | '@jest/schemas@29.6.3': 2805 | dependencies: 2806 | '@sinclair/typebox': 0.27.8 2807 | 2808 | '@jest/source-map@29.6.3': 2809 | dependencies: 2810 | '@jridgewell/trace-mapping': 0.3.24 2811 | callsites: 3.1.0 2812 | graceful-fs: 4.2.11 2813 | 2814 | '@jest/test-result@29.7.0': 2815 | dependencies: 2816 | '@jest/console': 29.7.0 2817 | '@jest/types': 29.6.3 2818 | '@types/istanbul-lib-coverage': 2.0.6 2819 | collect-v8-coverage: 1.0.2 2820 | 2821 | '@jest/test-sequencer@29.7.0': 2822 | dependencies: 2823 | '@jest/test-result': 29.7.0 2824 | graceful-fs: 4.2.11 2825 | jest-haste-map: 29.7.0 2826 | slash: 3.0.0 2827 | 2828 | '@jest/transform@29.7.0': 2829 | dependencies: 2830 | '@babel/core': 7.24.0 2831 | '@jest/types': 29.6.3 2832 | '@jridgewell/trace-mapping': 0.3.24 2833 | babel-plugin-istanbul: 6.1.1 2834 | chalk: 4.1.2 2835 | convert-source-map: 2.0.0 2836 | fast-json-stable-stringify: 2.1.0 2837 | graceful-fs: 4.2.11 2838 | jest-haste-map: 29.7.0 2839 | jest-regex-util: 29.6.3 2840 | jest-util: 29.7.0 2841 | micromatch: 4.0.5 2842 | pirates: 4.0.6 2843 | slash: 3.0.0 2844 | write-file-atomic: 4.0.2 2845 | transitivePeerDependencies: 2846 | - supports-color 2847 | 2848 | '@jest/types@29.6.3': 2849 | dependencies: 2850 | '@jest/schemas': 29.6.3 2851 | '@types/istanbul-lib-coverage': 2.0.6 2852 | '@types/istanbul-reports': 3.0.4 2853 | '@types/node': 20.19.0 2854 | '@types/yargs': 17.0.32 2855 | chalk: 4.1.2 2856 | 2857 | '@jridgewell/gen-mapping@0.3.5': 2858 | dependencies: 2859 | '@jridgewell/set-array': 1.2.1 2860 | '@jridgewell/sourcemap-codec': 1.4.15 2861 | '@jridgewell/trace-mapping': 0.3.24 2862 | 2863 | '@jridgewell/resolve-uri@3.1.2': {} 2864 | 2865 | '@jridgewell/set-array@1.2.1': {} 2866 | 2867 | '@jridgewell/sourcemap-codec@1.4.15': {} 2868 | 2869 | '@jridgewell/trace-mapping@0.3.24': 2870 | dependencies: 2871 | '@jridgewell/resolve-uri': 3.1.2 2872 | '@jridgewell/sourcemap-codec': 1.4.15 2873 | 2874 | '@nodelib/fs.scandir@2.1.5': 2875 | dependencies: 2876 | '@nodelib/fs.stat': 2.0.5 2877 | run-parallel: 1.2.0 2878 | 2879 | '@nodelib/fs.stat@2.0.5': {} 2880 | 2881 | '@nodelib/fs.walk@1.2.8': 2882 | dependencies: 2883 | '@nodelib/fs.scandir': 2.1.5 2884 | fastq: 1.17.1 2885 | 2886 | '@sinclair/typebox@0.27.8': {} 2887 | 2888 | '@sinonjs/commons@2.0.0': 2889 | dependencies: 2890 | type-detect: 4.0.8 2891 | 2892 | '@sinonjs/commons@3.0.1': 2893 | dependencies: 2894 | type-detect: 4.0.8 2895 | 2896 | '@sinonjs/fake-timers@10.3.0': 2897 | dependencies: 2898 | '@sinonjs/commons': 3.0.1 2899 | 2900 | '@sinonjs/fake-timers@11.2.2': 2901 | dependencies: 2902 | '@sinonjs/commons': 3.0.1 2903 | 2904 | '@sinonjs/fake-timers@13.0.2': 2905 | dependencies: 2906 | '@sinonjs/commons': 3.0.1 2907 | 2908 | '@sinonjs/samsam@8.0.0': 2909 | dependencies: 2910 | '@sinonjs/commons': 2.0.0 2911 | lodash.get: 4.4.2 2912 | type-detect: 4.0.8 2913 | 2914 | '@sinonjs/text-encoding@0.7.3': {} 2915 | 2916 | '@smithy/abort-controller@4.0.4': 2917 | dependencies: 2918 | '@smithy/types': 4.3.1 2919 | tslib: 2.6.2 2920 | 2921 | '@smithy/config-resolver@4.1.4': 2922 | dependencies: 2923 | '@smithy/node-config-provider': 4.1.3 2924 | '@smithy/types': 4.3.1 2925 | '@smithy/util-config-provider': 4.0.0 2926 | '@smithy/util-middleware': 4.0.4 2927 | tslib: 2.6.2 2928 | 2929 | '@smithy/core@3.5.3': 2930 | dependencies: 2931 | '@smithy/middleware-serde': 4.0.8 2932 | '@smithy/protocol-http': 5.1.2 2933 | '@smithy/types': 4.3.1 2934 | '@smithy/util-base64': 4.0.0 2935 | '@smithy/util-body-length-browser': 4.0.0 2936 | '@smithy/util-middleware': 4.0.4 2937 | '@smithy/util-stream': 4.2.2 2938 | '@smithy/util-utf8': 4.0.0 2939 | tslib: 2.6.2 2940 | 2941 | '@smithy/credential-provider-imds@4.0.6': 2942 | dependencies: 2943 | '@smithy/node-config-provider': 4.1.3 2944 | '@smithy/property-provider': 4.0.4 2945 | '@smithy/types': 4.3.1 2946 | '@smithy/url-parser': 4.0.4 2947 | tslib: 2.6.2 2948 | 2949 | '@smithy/fetch-http-handler@5.0.4': 2950 | dependencies: 2951 | '@smithy/protocol-http': 5.1.2 2952 | '@smithy/querystring-builder': 4.0.4 2953 | '@smithy/types': 4.3.1 2954 | '@smithy/util-base64': 4.0.0 2955 | tslib: 2.6.2 2956 | 2957 | '@smithy/hash-node@4.0.4': 2958 | dependencies: 2959 | '@smithy/types': 4.3.1 2960 | '@smithy/util-buffer-from': 4.0.0 2961 | '@smithy/util-utf8': 4.0.0 2962 | tslib: 2.6.2 2963 | 2964 | '@smithy/invalid-dependency@4.0.4': 2965 | dependencies: 2966 | '@smithy/types': 4.3.1 2967 | tslib: 2.6.2 2968 | 2969 | '@smithy/is-array-buffer@2.2.0': 2970 | dependencies: 2971 | tslib: 2.6.2 2972 | 2973 | '@smithy/is-array-buffer@4.0.0': 2974 | dependencies: 2975 | tslib: 2.6.2 2976 | 2977 | '@smithy/middleware-content-length@4.0.4': 2978 | dependencies: 2979 | '@smithy/protocol-http': 5.1.2 2980 | '@smithy/types': 4.3.1 2981 | tslib: 2.6.2 2982 | 2983 | '@smithy/middleware-endpoint@4.1.11': 2984 | dependencies: 2985 | '@smithy/core': 3.5.3 2986 | '@smithy/middleware-serde': 4.0.8 2987 | '@smithy/node-config-provider': 4.1.3 2988 | '@smithy/shared-ini-file-loader': 4.0.4 2989 | '@smithy/types': 4.3.1 2990 | '@smithy/url-parser': 4.0.4 2991 | '@smithy/util-middleware': 4.0.4 2992 | tslib: 2.6.2 2993 | 2994 | '@smithy/middleware-retry@4.1.12': 2995 | dependencies: 2996 | '@smithy/node-config-provider': 4.1.3 2997 | '@smithy/protocol-http': 5.1.2 2998 | '@smithy/service-error-classification': 4.0.5 2999 | '@smithy/smithy-client': 4.4.3 3000 | '@smithy/types': 4.3.1 3001 | '@smithy/util-middleware': 4.0.4 3002 | '@smithy/util-retry': 4.0.5 3003 | tslib: 2.6.2 3004 | uuid: 9.0.1 3005 | 3006 | '@smithy/middleware-serde@4.0.8': 3007 | dependencies: 3008 | '@smithy/protocol-http': 5.1.2 3009 | '@smithy/types': 4.3.1 3010 | tslib: 2.6.2 3011 | 3012 | '@smithy/middleware-stack@4.0.4': 3013 | dependencies: 3014 | '@smithy/types': 4.3.1 3015 | tslib: 2.6.2 3016 | 3017 | '@smithy/node-config-provider@4.1.3': 3018 | dependencies: 3019 | '@smithy/property-provider': 4.0.4 3020 | '@smithy/shared-ini-file-loader': 4.0.4 3021 | '@smithy/types': 4.3.1 3022 | tslib: 2.6.2 3023 | 3024 | '@smithy/node-http-handler@4.0.6': 3025 | dependencies: 3026 | '@smithy/abort-controller': 4.0.4 3027 | '@smithy/protocol-http': 5.1.2 3028 | '@smithy/querystring-builder': 4.0.4 3029 | '@smithy/types': 4.3.1 3030 | tslib: 2.6.2 3031 | 3032 | '@smithy/property-provider@4.0.4': 3033 | dependencies: 3034 | '@smithy/types': 4.3.1 3035 | tslib: 2.6.2 3036 | 3037 | '@smithy/protocol-http@5.1.2': 3038 | dependencies: 3039 | '@smithy/types': 4.3.1 3040 | tslib: 2.6.2 3041 | 3042 | '@smithy/querystring-builder@4.0.4': 3043 | dependencies: 3044 | '@smithy/types': 4.3.1 3045 | '@smithy/util-uri-escape': 4.0.0 3046 | tslib: 2.6.2 3047 | 3048 | '@smithy/querystring-parser@4.0.4': 3049 | dependencies: 3050 | '@smithy/types': 4.3.1 3051 | tslib: 2.6.2 3052 | 3053 | '@smithy/service-error-classification@4.0.5': 3054 | dependencies: 3055 | '@smithy/types': 4.3.1 3056 | 3057 | '@smithy/shared-ini-file-loader@4.0.4': 3058 | dependencies: 3059 | '@smithy/types': 4.3.1 3060 | tslib: 2.6.2 3061 | 3062 | '@smithy/signature-v4@5.1.2': 3063 | dependencies: 3064 | '@smithy/is-array-buffer': 4.0.0 3065 | '@smithy/protocol-http': 5.1.2 3066 | '@smithy/types': 4.3.1 3067 | '@smithy/util-hex-encoding': 4.0.0 3068 | '@smithy/util-middleware': 4.0.4 3069 | '@smithy/util-uri-escape': 4.0.0 3070 | '@smithy/util-utf8': 4.0.0 3071 | tslib: 2.6.2 3072 | 3073 | '@smithy/smithy-client@4.4.3': 3074 | dependencies: 3075 | '@smithy/core': 3.5.3 3076 | '@smithy/middleware-endpoint': 4.1.11 3077 | '@smithy/middleware-stack': 4.0.4 3078 | '@smithy/protocol-http': 5.1.2 3079 | '@smithy/types': 4.3.1 3080 | '@smithy/util-stream': 4.2.2 3081 | tslib: 2.6.2 3082 | 3083 | '@smithy/types@4.3.1': 3084 | dependencies: 3085 | tslib: 2.6.2 3086 | 3087 | '@smithy/url-parser@4.0.4': 3088 | dependencies: 3089 | '@smithy/querystring-parser': 4.0.4 3090 | '@smithy/types': 4.3.1 3091 | tslib: 2.6.2 3092 | 3093 | '@smithy/util-base64@4.0.0': 3094 | dependencies: 3095 | '@smithy/util-buffer-from': 4.0.0 3096 | '@smithy/util-utf8': 4.0.0 3097 | tslib: 2.6.2 3098 | 3099 | '@smithy/util-body-length-browser@4.0.0': 3100 | dependencies: 3101 | tslib: 2.6.2 3102 | 3103 | '@smithy/util-body-length-node@4.0.0': 3104 | dependencies: 3105 | tslib: 2.6.2 3106 | 3107 | '@smithy/util-buffer-from@2.2.0': 3108 | dependencies: 3109 | '@smithy/is-array-buffer': 2.2.0 3110 | tslib: 2.6.2 3111 | 3112 | '@smithy/util-buffer-from@4.0.0': 3113 | dependencies: 3114 | '@smithy/is-array-buffer': 4.0.0 3115 | tslib: 2.6.2 3116 | 3117 | '@smithy/util-config-provider@4.0.0': 3118 | dependencies: 3119 | tslib: 2.6.2 3120 | 3121 | '@smithy/util-defaults-mode-browser@4.0.19': 3122 | dependencies: 3123 | '@smithy/property-provider': 4.0.4 3124 | '@smithy/smithy-client': 4.4.3 3125 | '@smithy/types': 4.3.1 3126 | bowser: 2.11.0 3127 | tslib: 2.6.2 3128 | 3129 | '@smithy/util-defaults-mode-node@4.0.19': 3130 | dependencies: 3131 | '@smithy/config-resolver': 4.1.4 3132 | '@smithy/credential-provider-imds': 4.0.6 3133 | '@smithy/node-config-provider': 4.1.3 3134 | '@smithy/property-provider': 4.0.4 3135 | '@smithy/smithy-client': 4.4.3 3136 | '@smithy/types': 4.3.1 3137 | tslib: 2.6.2 3138 | 3139 | '@smithy/util-endpoints@3.0.6': 3140 | dependencies: 3141 | '@smithy/node-config-provider': 4.1.3 3142 | '@smithy/types': 4.3.1 3143 | tslib: 2.6.2 3144 | 3145 | '@smithy/util-hex-encoding@4.0.0': 3146 | dependencies: 3147 | tslib: 2.6.2 3148 | 3149 | '@smithy/util-middleware@4.0.4': 3150 | dependencies: 3151 | '@smithy/types': 4.3.1 3152 | tslib: 2.6.2 3153 | 3154 | '@smithy/util-retry@4.0.5': 3155 | dependencies: 3156 | '@smithy/service-error-classification': 4.0.5 3157 | '@smithy/types': 4.3.1 3158 | tslib: 2.6.2 3159 | 3160 | '@smithy/util-stream@4.2.2': 3161 | dependencies: 3162 | '@smithy/fetch-http-handler': 5.0.4 3163 | '@smithy/node-http-handler': 4.0.6 3164 | '@smithy/types': 4.3.1 3165 | '@smithy/util-base64': 4.0.0 3166 | '@smithy/util-buffer-from': 4.0.0 3167 | '@smithy/util-hex-encoding': 4.0.0 3168 | '@smithy/util-utf8': 4.0.0 3169 | tslib: 2.6.2 3170 | 3171 | '@smithy/util-uri-escape@4.0.0': 3172 | dependencies: 3173 | tslib: 2.6.2 3174 | 3175 | '@smithy/util-utf8@2.3.0': 3176 | dependencies: 3177 | '@smithy/util-buffer-from': 2.2.0 3178 | tslib: 2.6.2 3179 | 3180 | '@smithy/util-utf8@4.0.0': 3181 | dependencies: 3182 | '@smithy/util-buffer-from': 4.0.0 3183 | tslib: 2.6.2 3184 | 3185 | '@smithy/util-waiter@4.0.5': 3186 | dependencies: 3187 | '@smithy/abort-controller': 4.0.4 3188 | '@smithy/types': 4.3.1 3189 | tslib: 2.6.2 3190 | 3191 | '@tsconfig/node20@20.1.5': {} 3192 | 3193 | '@types/babel__core@7.20.5': 3194 | dependencies: 3195 | '@babel/parser': 7.24.0 3196 | '@babel/types': 7.24.0 3197 | '@types/babel__generator': 7.6.8 3198 | '@types/babel__template': 7.4.4 3199 | '@types/babel__traverse': 7.20.5 3200 | 3201 | '@types/babel__generator@7.6.8': 3202 | dependencies: 3203 | '@babel/types': 7.24.0 3204 | 3205 | '@types/babel__template@7.4.4': 3206 | dependencies: 3207 | '@babel/parser': 7.24.0 3208 | '@babel/types': 7.24.0 3209 | 3210 | '@types/babel__traverse@7.20.5': 3211 | dependencies: 3212 | '@babel/types': 7.24.0 3213 | 3214 | '@types/estree@1.0.6': {} 3215 | 3216 | '@types/graceful-fs@4.1.9': 3217 | dependencies: 3218 | '@types/node': 20.19.0 3219 | 3220 | '@types/istanbul-lib-coverage@2.0.6': {} 3221 | 3222 | '@types/istanbul-lib-report@3.0.3': 3223 | dependencies: 3224 | '@types/istanbul-lib-coverage': 2.0.6 3225 | 3226 | '@types/istanbul-reports@3.0.4': 3227 | dependencies: 3228 | '@types/istanbul-lib-report': 3.0.3 3229 | 3230 | '@types/jest@29.5.14': 3231 | dependencies: 3232 | expect: 29.7.0 3233 | pretty-format: 29.7.0 3234 | 3235 | '@types/json-schema@7.0.15': {} 3236 | 3237 | '@types/node@20.19.0': 3238 | dependencies: 3239 | undici-types: 6.21.0 3240 | 3241 | '@types/sinon@17.0.3': 3242 | dependencies: 3243 | '@types/sinonjs__fake-timers': 8.1.5 3244 | 3245 | '@types/sinonjs__fake-timers@8.1.5': {} 3246 | 3247 | '@types/stack-utils@2.0.3': {} 3248 | 3249 | '@types/yargs-parser@21.0.3': {} 3250 | 3251 | '@types/yargs@17.0.32': 3252 | dependencies: 3253 | '@types/yargs-parser': 21.0.3 3254 | 3255 | '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3)': 3256 | dependencies: 3257 | '@eslint-community/regexpp': 4.12.1 3258 | '@typescript-eslint/parser': 8.33.1(eslint@9.28.0)(typescript@5.8.3) 3259 | '@typescript-eslint/scope-manager': 8.33.1 3260 | '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) 3261 | '@typescript-eslint/utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) 3262 | '@typescript-eslint/visitor-keys': 8.33.1 3263 | eslint: 9.28.0 3264 | graphemer: 1.4.0 3265 | ignore: 7.0.4 3266 | natural-compare: 1.4.0 3267 | ts-api-utils: 2.1.0(typescript@5.8.3) 3268 | typescript: 5.8.3 3269 | transitivePeerDependencies: 3270 | - supports-color 3271 | 3272 | '@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3)': 3273 | dependencies: 3274 | '@typescript-eslint/scope-manager': 8.33.1 3275 | '@typescript-eslint/types': 8.33.1 3276 | '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) 3277 | '@typescript-eslint/visitor-keys': 8.33.1 3278 | debug: 4.4.0 3279 | eslint: 9.28.0 3280 | typescript: 5.8.3 3281 | transitivePeerDependencies: 3282 | - supports-color 3283 | 3284 | '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': 3285 | dependencies: 3286 | '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) 3287 | '@typescript-eslint/types': 8.33.1 3288 | debug: 4.4.0 3289 | typescript: 5.8.3 3290 | transitivePeerDependencies: 3291 | - supports-color 3292 | 3293 | '@typescript-eslint/scope-manager@8.33.1': 3294 | dependencies: 3295 | '@typescript-eslint/types': 8.33.1 3296 | '@typescript-eslint/visitor-keys': 8.33.1 3297 | 3298 | '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': 3299 | dependencies: 3300 | typescript: 5.8.3 3301 | 3302 | '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0)(typescript@5.8.3)': 3303 | dependencies: 3304 | '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) 3305 | '@typescript-eslint/utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) 3306 | debug: 4.4.0 3307 | eslint: 9.28.0 3308 | ts-api-utils: 2.1.0(typescript@5.8.3) 3309 | typescript: 5.8.3 3310 | transitivePeerDependencies: 3311 | - supports-color 3312 | 3313 | '@typescript-eslint/types@8.33.1': {} 3314 | 3315 | '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': 3316 | dependencies: 3317 | '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) 3318 | '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) 3319 | '@typescript-eslint/types': 8.33.1 3320 | '@typescript-eslint/visitor-keys': 8.33.1 3321 | debug: 4.4.0 3322 | fast-glob: 3.3.2 3323 | is-glob: 4.0.3 3324 | minimatch: 9.0.4 3325 | semver: 7.7.2 3326 | ts-api-utils: 2.1.0(typescript@5.8.3) 3327 | typescript: 5.8.3 3328 | transitivePeerDependencies: 3329 | - supports-color 3330 | 3331 | '@typescript-eslint/utils@8.33.1(eslint@9.28.0)(typescript@5.8.3)': 3332 | dependencies: 3333 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) 3334 | '@typescript-eslint/scope-manager': 8.33.1 3335 | '@typescript-eslint/types': 8.33.1 3336 | '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) 3337 | eslint: 9.28.0 3338 | typescript: 5.8.3 3339 | transitivePeerDependencies: 3340 | - supports-color 3341 | 3342 | '@typescript-eslint/visitor-keys@8.33.1': 3343 | dependencies: 3344 | '@typescript-eslint/types': 8.33.1 3345 | eslint-visitor-keys: 4.2.0 3346 | 3347 | '@vercel/ncc@0.38.3': {} 3348 | 3349 | acorn-jsx@5.3.2(acorn@8.14.0): 3350 | dependencies: 3351 | acorn: 8.14.0 3352 | 3353 | acorn@8.14.0: {} 3354 | 3355 | ajv@6.12.6: 3356 | dependencies: 3357 | fast-deep-equal: 3.1.3 3358 | fast-json-stable-stringify: 2.1.0 3359 | json-schema-traverse: 0.4.1 3360 | uri-js: 4.4.1 3361 | 3362 | ansi-escapes@4.3.2: 3363 | dependencies: 3364 | type-fest: 0.21.3 3365 | 3366 | ansi-regex@5.0.1: {} 3367 | 3368 | ansi-styles@3.2.1: 3369 | dependencies: 3370 | color-convert: 1.9.3 3371 | 3372 | ansi-styles@4.3.0: 3373 | dependencies: 3374 | color-convert: 2.0.1 3375 | 3376 | ansi-styles@5.2.0: {} 3377 | 3378 | anymatch@3.1.3: 3379 | dependencies: 3380 | normalize-path: 3.0.0 3381 | picomatch: 2.3.1 3382 | 3383 | argparse@1.0.10: 3384 | dependencies: 3385 | sprintf-js: 1.0.3 3386 | 3387 | argparse@2.0.1: {} 3388 | 3389 | async@3.2.5: {} 3390 | 3391 | aws-sdk-client-mock@4.1.0: 3392 | dependencies: 3393 | '@types/sinon': 17.0.3 3394 | sinon: 18.0.1 3395 | tslib: 2.6.2 3396 | 3397 | babel-jest@29.7.0(@babel/core@7.24.0): 3398 | dependencies: 3399 | '@babel/core': 7.24.0 3400 | '@jest/transform': 29.7.0 3401 | '@types/babel__core': 7.20.5 3402 | babel-plugin-istanbul: 6.1.1 3403 | babel-preset-jest: 29.6.3(@babel/core@7.24.0) 3404 | chalk: 4.1.2 3405 | graceful-fs: 4.2.11 3406 | slash: 3.0.0 3407 | transitivePeerDependencies: 3408 | - supports-color 3409 | 3410 | babel-plugin-istanbul@6.1.1: 3411 | dependencies: 3412 | '@babel/helper-plugin-utils': 7.24.0 3413 | '@istanbuljs/load-nyc-config': 1.1.0 3414 | '@istanbuljs/schema': 0.1.3 3415 | istanbul-lib-instrument: 5.2.1 3416 | test-exclude: 6.0.0 3417 | transitivePeerDependencies: 3418 | - supports-color 3419 | 3420 | babel-plugin-jest-hoist@29.6.3: 3421 | dependencies: 3422 | '@babel/template': 7.24.0 3423 | '@babel/types': 7.24.0 3424 | '@types/babel__core': 7.20.5 3425 | '@types/babel__traverse': 7.20.5 3426 | 3427 | babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): 3428 | dependencies: 3429 | '@babel/core': 7.24.0 3430 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) 3431 | '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) 3432 | '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) 3433 | '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) 3434 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) 3435 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) 3436 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) 3437 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) 3438 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) 3439 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) 3440 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) 3441 | '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) 3442 | 3443 | babel-preset-jest@29.6.3(@babel/core@7.24.0): 3444 | dependencies: 3445 | '@babel/core': 7.24.0 3446 | babel-plugin-jest-hoist: 29.6.3 3447 | babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) 3448 | 3449 | balanced-match@1.0.2: {} 3450 | 3451 | bowser@2.11.0: {} 3452 | 3453 | brace-expansion@1.1.11: 3454 | dependencies: 3455 | balanced-match: 1.0.2 3456 | concat-map: 0.0.1 3457 | 3458 | brace-expansion@2.0.1: 3459 | dependencies: 3460 | balanced-match: 1.0.2 3461 | 3462 | braces@3.0.2: 3463 | dependencies: 3464 | fill-range: 7.0.1 3465 | 3466 | browserslist@4.23.0: 3467 | dependencies: 3468 | caniuse-lite: 1.0.30001591 3469 | electron-to-chromium: 1.4.690 3470 | node-releases: 2.0.14 3471 | update-browserslist-db: 1.0.13(browserslist@4.23.0) 3472 | 3473 | bs-logger@0.2.6: 3474 | dependencies: 3475 | fast-json-stable-stringify: 2.1.0 3476 | 3477 | bser@2.1.1: 3478 | dependencies: 3479 | node-int64: 0.4.0 3480 | 3481 | buffer-from@1.1.2: {} 3482 | 3483 | callsites@3.1.0: {} 3484 | 3485 | camelcase@5.3.1: {} 3486 | 3487 | camelcase@6.3.0: {} 3488 | 3489 | caniuse-lite@1.0.30001591: {} 3490 | 3491 | chalk@2.4.2: 3492 | dependencies: 3493 | ansi-styles: 3.2.1 3494 | escape-string-regexp: 1.0.5 3495 | supports-color: 5.5.0 3496 | 3497 | chalk@4.1.2: 3498 | dependencies: 3499 | ansi-styles: 4.3.0 3500 | supports-color: 7.2.0 3501 | 3502 | char-regex@1.0.2: {} 3503 | 3504 | ci-info@3.9.0: {} 3505 | 3506 | cjs-module-lexer@1.2.3: {} 3507 | 3508 | cliui@8.0.1: 3509 | dependencies: 3510 | string-width: 4.2.3 3511 | strip-ansi: 6.0.1 3512 | wrap-ansi: 7.0.0 3513 | 3514 | co@4.6.0: {} 3515 | 3516 | collect-v8-coverage@1.0.2: {} 3517 | 3518 | color-convert@1.9.3: 3519 | dependencies: 3520 | color-name: 1.1.3 3521 | 3522 | color-convert@2.0.1: 3523 | dependencies: 3524 | color-name: 1.1.4 3525 | 3526 | color-name@1.1.3: {} 3527 | 3528 | color-name@1.1.4: {} 3529 | 3530 | concat-map@0.0.1: {} 3531 | 3532 | convert-source-map@2.0.0: {} 3533 | 3534 | create-jest@29.7.0(@types/node@20.19.0): 3535 | dependencies: 3536 | '@jest/types': 29.6.3 3537 | chalk: 4.1.2 3538 | exit: 0.1.2 3539 | graceful-fs: 4.2.11 3540 | jest-config: 29.7.0(@types/node@20.19.0) 3541 | jest-util: 29.7.0 3542 | prompts: 2.4.2 3543 | transitivePeerDependencies: 3544 | - '@types/node' 3545 | - babel-plugin-macros 3546 | - supports-color 3547 | - ts-node 3548 | 3549 | cross-spawn@7.0.6: 3550 | dependencies: 3551 | path-key: 3.1.1 3552 | shebang-command: 2.0.0 3553 | which: 2.0.2 3554 | 3555 | debug@4.4.0: 3556 | dependencies: 3557 | ms: 2.1.3 3558 | 3559 | dedent@1.5.1: {} 3560 | 3561 | deep-is@0.1.4: {} 3562 | 3563 | deepmerge@4.3.1: {} 3564 | 3565 | detect-newline@3.1.0: {} 3566 | 3567 | diff-sequences@29.6.3: {} 3568 | 3569 | diff@5.2.0: {} 3570 | 3571 | ejs@3.1.10: 3572 | dependencies: 3573 | jake: 10.9.2 3574 | 3575 | electron-to-chromium@1.4.690: {} 3576 | 3577 | emittery@0.13.1: {} 3578 | 3579 | emoji-regex@8.0.0: {} 3580 | 3581 | error-ex@1.3.2: 3582 | dependencies: 3583 | is-arrayish: 0.2.1 3584 | 3585 | escalade@3.1.2: {} 3586 | 3587 | escape-string-regexp@1.0.5: {} 3588 | 3589 | escape-string-regexp@2.0.0: {} 3590 | 3591 | escape-string-regexp@4.0.0: {} 3592 | 3593 | eslint-plugin-jest@28.13.0(@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(jest@29.7.0(@types/node@20.19.0))(typescript@5.8.3): 3594 | dependencies: 3595 | '@typescript-eslint/utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) 3596 | eslint: 9.28.0 3597 | optionalDependencies: 3598 | '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) 3599 | jest: 29.7.0(@types/node@20.19.0) 3600 | transitivePeerDependencies: 3601 | - supports-color 3602 | - typescript 3603 | 3604 | eslint-scope@8.3.0: 3605 | dependencies: 3606 | esrecurse: 4.3.0 3607 | estraverse: 5.3.0 3608 | 3609 | eslint-visitor-keys@3.4.3: {} 3610 | 3611 | eslint-visitor-keys@4.2.0: {} 3612 | 3613 | eslint@9.28.0: 3614 | dependencies: 3615 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) 3616 | '@eslint-community/regexpp': 4.12.1 3617 | '@eslint/config-array': 0.20.0 3618 | '@eslint/config-helpers': 0.2.1 3619 | '@eslint/core': 0.14.0 3620 | '@eslint/eslintrc': 3.3.1 3621 | '@eslint/js': 9.28.0 3622 | '@eslint/plugin-kit': 0.3.1 3623 | '@humanfs/node': 0.16.6 3624 | '@humanwhocodes/module-importer': 1.0.1 3625 | '@humanwhocodes/retry': 0.4.2 3626 | '@types/estree': 1.0.6 3627 | '@types/json-schema': 7.0.15 3628 | ajv: 6.12.6 3629 | chalk: 4.1.2 3630 | cross-spawn: 7.0.6 3631 | debug: 4.4.0 3632 | escape-string-regexp: 4.0.0 3633 | eslint-scope: 8.3.0 3634 | eslint-visitor-keys: 4.2.0 3635 | espree: 10.3.0 3636 | esquery: 1.5.0 3637 | esutils: 2.0.3 3638 | fast-deep-equal: 3.1.3 3639 | file-entry-cache: 8.0.0 3640 | find-up: 5.0.0 3641 | glob-parent: 6.0.2 3642 | ignore: 5.3.1 3643 | imurmurhash: 0.1.4 3644 | is-glob: 4.0.3 3645 | json-stable-stringify-without-jsonify: 1.0.1 3646 | lodash.merge: 4.6.2 3647 | minimatch: 3.1.2 3648 | natural-compare: 1.4.0 3649 | optionator: 0.9.3 3650 | transitivePeerDependencies: 3651 | - supports-color 3652 | 3653 | espree@10.3.0: 3654 | dependencies: 3655 | acorn: 8.14.0 3656 | acorn-jsx: 5.3.2(acorn@8.14.0) 3657 | eslint-visitor-keys: 4.2.0 3658 | 3659 | esprima@4.0.1: {} 3660 | 3661 | esquery@1.5.0: 3662 | dependencies: 3663 | estraverse: 5.3.0 3664 | 3665 | esrecurse@4.3.0: 3666 | dependencies: 3667 | estraverse: 5.3.0 3668 | 3669 | estraverse@5.3.0: {} 3670 | 3671 | esutils@2.0.3: {} 3672 | 3673 | execa@5.1.1: 3674 | dependencies: 3675 | cross-spawn: 7.0.6 3676 | get-stream: 6.0.1 3677 | human-signals: 2.1.0 3678 | is-stream: 2.0.1 3679 | merge-stream: 2.0.0 3680 | npm-run-path: 4.0.1 3681 | onetime: 5.1.2 3682 | signal-exit: 3.0.7 3683 | strip-final-newline: 2.0.0 3684 | 3685 | exit@0.1.2: {} 3686 | 3687 | expect@29.7.0: 3688 | dependencies: 3689 | '@jest/expect-utils': 29.7.0 3690 | jest-get-type: 29.6.3 3691 | jest-matcher-utils: 29.7.0 3692 | jest-message-util: 29.7.0 3693 | jest-util: 29.7.0 3694 | 3695 | fast-deep-equal@3.1.3: {} 3696 | 3697 | fast-glob@3.3.2: 3698 | dependencies: 3699 | '@nodelib/fs.stat': 2.0.5 3700 | '@nodelib/fs.walk': 1.2.8 3701 | glob-parent: 5.1.2 3702 | merge2: 1.4.1 3703 | micromatch: 4.0.5 3704 | 3705 | fast-json-stable-stringify@2.1.0: {} 3706 | 3707 | fast-levenshtein@2.0.6: {} 3708 | 3709 | fast-xml-parser@4.4.1: 3710 | dependencies: 3711 | strnum: 1.0.5 3712 | 3713 | fastq@1.17.1: 3714 | dependencies: 3715 | reusify: 1.0.4 3716 | 3717 | fb-watchman@2.0.2: 3718 | dependencies: 3719 | bser: 2.1.1 3720 | 3721 | file-entry-cache@8.0.0: 3722 | dependencies: 3723 | flat-cache: 4.0.1 3724 | 3725 | filelist@1.0.4: 3726 | dependencies: 3727 | minimatch: 5.1.6 3728 | 3729 | fill-range@7.0.1: 3730 | dependencies: 3731 | to-regex-range: 5.0.1 3732 | 3733 | find-up@4.1.0: 3734 | dependencies: 3735 | locate-path: 5.0.0 3736 | path-exists: 4.0.0 3737 | 3738 | find-up@5.0.0: 3739 | dependencies: 3740 | locate-path: 6.0.0 3741 | path-exists: 4.0.0 3742 | 3743 | flat-cache@4.0.1: 3744 | dependencies: 3745 | flatted: 3.3.1 3746 | keyv: 4.5.4 3747 | 3748 | flatted@3.3.1: {} 3749 | 3750 | fs.realpath@1.0.0: {} 3751 | 3752 | fsevents@2.3.3: 3753 | optional: true 3754 | 3755 | function-bind@1.1.2: {} 3756 | 3757 | gensync@1.0.0-beta.2: {} 3758 | 3759 | get-caller-file@2.0.5: {} 3760 | 3761 | get-package-type@0.1.0: {} 3762 | 3763 | get-stream@6.0.1: {} 3764 | 3765 | glob-parent@5.1.2: 3766 | dependencies: 3767 | is-glob: 4.0.3 3768 | 3769 | glob-parent@6.0.2: 3770 | dependencies: 3771 | is-glob: 4.0.3 3772 | 3773 | glob@7.2.3: 3774 | dependencies: 3775 | fs.realpath: 1.0.0 3776 | inflight: 1.0.6 3777 | inherits: 2.0.4 3778 | minimatch: 3.1.2 3779 | once: 1.4.0 3780 | path-is-absolute: 1.0.1 3781 | 3782 | globals@11.12.0: {} 3783 | 3784 | globals@14.0.0: {} 3785 | 3786 | graceful-fs@4.2.11: {} 3787 | 3788 | graphemer@1.4.0: {} 3789 | 3790 | has-flag@3.0.0: {} 3791 | 3792 | has-flag@4.0.0: {} 3793 | 3794 | hasown@2.0.1: 3795 | dependencies: 3796 | function-bind: 1.1.2 3797 | 3798 | html-escaper@2.0.2: {} 3799 | 3800 | human-signals@2.1.0: {} 3801 | 3802 | ignore@5.3.1: {} 3803 | 3804 | ignore@7.0.4: {} 3805 | 3806 | import-fresh@3.3.0: 3807 | dependencies: 3808 | parent-module: 1.0.1 3809 | resolve-from: 4.0.0 3810 | 3811 | import-local@3.1.0: 3812 | dependencies: 3813 | pkg-dir: 4.2.0 3814 | resolve-cwd: 3.0.0 3815 | 3816 | imurmurhash@0.1.4: {} 3817 | 3818 | inflight@1.0.6: 3819 | dependencies: 3820 | once: 1.4.0 3821 | wrappy: 1.0.2 3822 | 3823 | inherits@2.0.4: {} 3824 | 3825 | is-arrayish@0.2.1: {} 3826 | 3827 | is-core-module@2.13.1: 3828 | dependencies: 3829 | hasown: 2.0.1 3830 | 3831 | is-extglob@2.1.1: {} 3832 | 3833 | is-fullwidth-code-point@3.0.0: {} 3834 | 3835 | is-generator-fn@2.1.0: {} 3836 | 3837 | is-glob@4.0.3: 3838 | dependencies: 3839 | is-extglob: 2.1.1 3840 | 3841 | is-number@7.0.0: {} 3842 | 3843 | is-stream@2.0.1: {} 3844 | 3845 | isexe@2.0.0: {} 3846 | 3847 | istanbul-lib-coverage@3.2.2: {} 3848 | 3849 | istanbul-lib-instrument@5.2.1: 3850 | dependencies: 3851 | '@babel/core': 7.24.0 3852 | '@babel/parser': 7.24.0 3853 | '@istanbuljs/schema': 0.1.3 3854 | istanbul-lib-coverage: 3.2.2 3855 | semver: 6.3.1 3856 | transitivePeerDependencies: 3857 | - supports-color 3858 | 3859 | istanbul-lib-instrument@6.0.2: 3860 | dependencies: 3861 | '@babel/core': 7.24.0 3862 | '@babel/parser': 7.24.0 3863 | '@istanbuljs/schema': 0.1.3 3864 | istanbul-lib-coverage: 3.2.2 3865 | semver: 7.7.2 3866 | transitivePeerDependencies: 3867 | - supports-color 3868 | 3869 | istanbul-lib-report@3.0.1: 3870 | dependencies: 3871 | istanbul-lib-coverage: 3.2.2 3872 | make-dir: 4.0.0 3873 | supports-color: 7.2.0 3874 | 3875 | istanbul-lib-source-maps@4.0.1: 3876 | dependencies: 3877 | debug: 4.4.0 3878 | istanbul-lib-coverage: 3.2.2 3879 | source-map: 0.6.1 3880 | transitivePeerDependencies: 3881 | - supports-color 3882 | 3883 | istanbul-reports@3.1.7: 3884 | dependencies: 3885 | html-escaper: 2.0.2 3886 | istanbul-lib-report: 3.0.1 3887 | 3888 | jake@10.9.2: 3889 | dependencies: 3890 | async: 3.2.5 3891 | chalk: 4.1.2 3892 | filelist: 1.0.4 3893 | minimatch: 3.1.2 3894 | 3895 | jest-changed-files@29.7.0: 3896 | dependencies: 3897 | execa: 5.1.1 3898 | jest-util: 29.7.0 3899 | p-limit: 3.1.0 3900 | 3901 | jest-circus@29.7.0: 3902 | dependencies: 3903 | '@jest/environment': 29.7.0 3904 | '@jest/expect': 29.7.0 3905 | '@jest/test-result': 29.7.0 3906 | '@jest/types': 29.6.3 3907 | '@types/node': 20.19.0 3908 | chalk: 4.1.2 3909 | co: 4.6.0 3910 | dedent: 1.5.1 3911 | is-generator-fn: 2.1.0 3912 | jest-each: 29.7.0 3913 | jest-matcher-utils: 29.7.0 3914 | jest-message-util: 29.7.0 3915 | jest-runtime: 29.7.0 3916 | jest-snapshot: 29.7.0 3917 | jest-util: 29.7.0 3918 | p-limit: 3.1.0 3919 | pretty-format: 29.7.0 3920 | pure-rand: 6.0.4 3921 | slash: 3.0.0 3922 | stack-utils: 2.0.6 3923 | transitivePeerDependencies: 3924 | - babel-plugin-macros 3925 | - supports-color 3926 | 3927 | jest-cli@29.7.0(@types/node@20.19.0): 3928 | dependencies: 3929 | '@jest/core': 29.7.0 3930 | '@jest/test-result': 29.7.0 3931 | '@jest/types': 29.6.3 3932 | chalk: 4.1.2 3933 | create-jest: 29.7.0(@types/node@20.19.0) 3934 | exit: 0.1.2 3935 | import-local: 3.1.0 3936 | jest-config: 29.7.0(@types/node@20.19.0) 3937 | jest-util: 29.7.0 3938 | jest-validate: 29.7.0 3939 | yargs: 17.7.2 3940 | transitivePeerDependencies: 3941 | - '@types/node' 3942 | - babel-plugin-macros 3943 | - supports-color 3944 | - ts-node 3945 | 3946 | jest-config@29.7.0(@types/node@20.19.0): 3947 | dependencies: 3948 | '@babel/core': 7.24.0 3949 | '@jest/test-sequencer': 29.7.0 3950 | '@jest/types': 29.6.3 3951 | babel-jest: 29.7.0(@babel/core@7.24.0) 3952 | chalk: 4.1.2 3953 | ci-info: 3.9.0 3954 | deepmerge: 4.3.1 3955 | glob: 7.2.3 3956 | graceful-fs: 4.2.11 3957 | jest-circus: 29.7.0 3958 | jest-environment-node: 29.7.0 3959 | jest-get-type: 29.6.3 3960 | jest-regex-util: 29.6.3 3961 | jest-resolve: 29.7.0 3962 | jest-runner: 29.7.0 3963 | jest-util: 29.7.0 3964 | jest-validate: 29.7.0 3965 | micromatch: 4.0.5 3966 | parse-json: 5.2.0 3967 | pretty-format: 29.7.0 3968 | slash: 3.0.0 3969 | strip-json-comments: 3.1.1 3970 | optionalDependencies: 3971 | '@types/node': 20.19.0 3972 | transitivePeerDependencies: 3973 | - babel-plugin-macros 3974 | - supports-color 3975 | 3976 | jest-diff@29.7.0: 3977 | dependencies: 3978 | chalk: 4.1.2 3979 | diff-sequences: 29.6.3 3980 | jest-get-type: 29.6.3 3981 | pretty-format: 29.7.0 3982 | 3983 | jest-docblock@29.7.0: 3984 | dependencies: 3985 | detect-newline: 3.1.0 3986 | 3987 | jest-each@29.7.0: 3988 | dependencies: 3989 | '@jest/types': 29.6.3 3990 | chalk: 4.1.2 3991 | jest-get-type: 29.6.3 3992 | jest-util: 29.7.0 3993 | pretty-format: 29.7.0 3994 | 3995 | jest-environment-node@29.7.0: 3996 | dependencies: 3997 | '@jest/environment': 29.7.0 3998 | '@jest/fake-timers': 29.7.0 3999 | '@jest/types': 29.6.3 4000 | '@types/node': 20.19.0 4001 | jest-mock: 29.7.0 4002 | jest-util: 29.7.0 4003 | 4004 | jest-get-type@29.6.3: {} 4005 | 4006 | jest-haste-map@29.7.0: 4007 | dependencies: 4008 | '@jest/types': 29.6.3 4009 | '@types/graceful-fs': 4.1.9 4010 | '@types/node': 20.19.0 4011 | anymatch: 3.1.3 4012 | fb-watchman: 2.0.2 4013 | graceful-fs: 4.2.11 4014 | jest-regex-util: 29.6.3 4015 | jest-util: 29.7.0 4016 | jest-worker: 29.7.0 4017 | micromatch: 4.0.5 4018 | walker: 1.0.8 4019 | optionalDependencies: 4020 | fsevents: 2.3.3 4021 | 4022 | jest-leak-detector@29.7.0: 4023 | dependencies: 4024 | jest-get-type: 29.6.3 4025 | pretty-format: 29.7.0 4026 | 4027 | jest-matcher-utils@29.7.0: 4028 | dependencies: 4029 | chalk: 4.1.2 4030 | jest-diff: 29.7.0 4031 | jest-get-type: 29.6.3 4032 | pretty-format: 29.7.0 4033 | 4034 | jest-message-util@29.7.0: 4035 | dependencies: 4036 | '@babel/code-frame': 7.23.5 4037 | '@jest/types': 29.6.3 4038 | '@types/stack-utils': 2.0.3 4039 | chalk: 4.1.2 4040 | graceful-fs: 4.2.11 4041 | micromatch: 4.0.5 4042 | pretty-format: 29.7.0 4043 | slash: 3.0.0 4044 | stack-utils: 2.0.6 4045 | 4046 | jest-mock@29.7.0: 4047 | dependencies: 4048 | '@jest/types': 29.6.3 4049 | '@types/node': 20.19.0 4050 | jest-util: 29.7.0 4051 | 4052 | jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): 4053 | optionalDependencies: 4054 | jest-resolve: 29.7.0 4055 | 4056 | jest-regex-util@29.6.3: {} 4057 | 4058 | jest-resolve-dependencies@29.7.0: 4059 | dependencies: 4060 | jest-regex-util: 29.6.3 4061 | jest-snapshot: 29.7.0 4062 | transitivePeerDependencies: 4063 | - supports-color 4064 | 4065 | jest-resolve@29.7.0: 4066 | dependencies: 4067 | chalk: 4.1.2 4068 | graceful-fs: 4.2.11 4069 | jest-haste-map: 29.7.0 4070 | jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) 4071 | jest-util: 29.7.0 4072 | jest-validate: 29.7.0 4073 | resolve: 1.22.8 4074 | resolve.exports: 2.0.2 4075 | slash: 3.0.0 4076 | 4077 | jest-runner@29.7.0: 4078 | dependencies: 4079 | '@jest/console': 29.7.0 4080 | '@jest/environment': 29.7.0 4081 | '@jest/test-result': 29.7.0 4082 | '@jest/transform': 29.7.0 4083 | '@jest/types': 29.6.3 4084 | '@types/node': 20.19.0 4085 | chalk: 4.1.2 4086 | emittery: 0.13.1 4087 | graceful-fs: 4.2.11 4088 | jest-docblock: 29.7.0 4089 | jest-environment-node: 29.7.0 4090 | jest-haste-map: 29.7.0 4091 | jest-leak-detector: 29.7.0 4092 | jest-message-util: 29.7.0 4093 | jest-resolve: 29.7.0 4094 | jest-runtime: 29.7.0 4095 | jest-util: 29.7.0 4096 | jest-watcher: 29.7.0 4097 | jest-worker: 29.7.0 4098 | p-limit: 3.1.0 4099 | source-map-support: 0.5.13 4100 | transitivePeerDependencies: 4101 | - supports-color 4102 | 4103 | jest-runtime@29.7.0: 4104 | dependencies: 4105 | '@jest/environment': 29.7.0 4106 | '@jest/fake-timers': 29.7.0 4107 | '@jest/globals': 29.7.0 4108 | '@jest/source-map': 29.6.3 4109 | '@jest/test-result': 29.7.0 4110 | '@jest/transform': 29.7.0 4111 | '@jest/types': 29.6.3 4112 | '@types/node': 20.19.0 4113 | chalk: 4.1.2 4114 | cjs-module-lexer: 1.2.3 4115 | collect-v8-coverage: 1.0.2 4116 | glob: 7.2.3 4117 | graceful-fs: 4.2.11 4118 | jest-haste-map: 29.7.0 4119 | jest-message-util: 29.7.0 4120 | jest-mock: 29.7.0 4121 | jest-regex-util: 29.6.3 4122 | jest-resolve: 29.7.0 4123 | jest-snapshot: 29.7.0 4124 | jest-util: 29.7.0 4125 | slash: 3.0.0 4126 | strip-bom: 4.0.0 4127 | transitivePeerDependencies: 4128 | - supports-color 4129 | 4130 | jest-snapshot@29.7.0: 4131 | dependencies: 4132 | '@babel/core': 7.24.0 4133 | '@babel/generator': 7.23.6 4134 | '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) 4135 | '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) 4136 | '@babel/types': 7.24.0 4137 | '@jest/expect-utils': 29.7.0 4138 | '@jest/transform': 29.7.0 4139 | '@jest/types': 29.6.3 4140 | babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) 4141 | chalk: 4.1.2 4142 | expect: 29.7.0 4143 | graceful-fs: 4.2.11 4144 | jest-diff: 29.7.0 4145 | jest-get-type: 29.6.3 4146 | jest-matcher-utils: 29.7.0 4147 | jest-message-util: 29.7.0 4148 | jest-util: 29.7.0 4149 | natural-compare: 1.4.0 4150 | pretty-format: 29.7.0 4151 | semver: 7.7.2 4152 | transitivePeerDependencies: 4153 | - supports-color 4154 | 4155 | jest-util@29.7.0: 4156 | dependencies: 4157 | '@jest/types': 29.6.3 4158 | '@types/node': 20.19.0 4159 | chalk: 4.1.2 4160 | ci-info: 3.9.0 4161 | graceful-fs: 4.2.11 4162 | picomatch: 2.3.1 4163 | 4164 | jest-validate@29.7.0: 4165 | dependencies: 4166 | '@jest/types': 29.6.3 4167 | camelcase: 6.3.0 4168 | chalk: 4.1.2 4169 | jest-get-type: 29.6.3 4170 | leven: 3.1.0 4171 | pretty-format: 29.7.0 4172 | 4173 | jest-watcher@29.7.0: 4174 | dependencies: 4175 | '@jest/test-result': 29.7.0 4176 | '@jest/types': 29.6.3 4177 | '@types/node': 20.19.0 4178 | ansi-escapes: 4.3.2 4179 | chalk: 4.1.2 4180 | emittery: 0.13.1 4181 | jest-util: 29.7.0 4182 | string-length: 4.0.2 4183 | 4184 | jest-worker@29.7.0: 4185 | dependencies: 4186 | '@types/node': 20.19.0 4187 | jest-util: 29.7.0 4188 | merge-stream: 2.0.0 4189 | supports-color: 8.1.1 4190 | 4191 | jest@29.7.0(@types/node@20.19.0): 4192 | dependencies: 4193 | '@jest/core': 29.7.0 4194 | '@jest/types': 29.6.3 4195 | import-local: 3.1.0 4196 | jest-cli: 29.7.0(@types/node@20.19.0) 4197 | transitivePeerDependencies: 4198 | - '@types/node' 4199 | - babel-plugin-macros 4200 | - supports-color 4201 | - ts-node 4202 | 4203 | js-tokens@4.0.0: {} 4204 | 4205 | js-yaml@3.14.1: 4206 | dependencies: 4207 | argparse: 1.0.10 4208 | esprima: 4.0.1 4209 | 4210 | js-yaml@4.1.0: 4211 | dependencies: 4212 | argparse: 2.0.1 4213 | 4214 | jsesc@2.5.2: {} 4215 | 4216 | json-buffer@3.0.1: {} 4217 | 4218 | json-parse-even-better-errors@2.3.1: {} 4219 | 4220 | json-schema-traverse@0.4.1: {} 4221 | 4222 | json-stable-stringify-without-jsonify@1.0.1: {} 4223 | 4224 | json5@2.2.3: {} 4225 | 4226 | just-extend@6.2.0: {} 4227 | 4228 | keyv@4.5.4: 4229 | dependencies: 4230 | json-buffer: 3.0.1 4231 | 4232 | kleur@3.0.3: {} 4233 | 4234 | leven@3.1.0: {} 4235 | 4236 | levn@0.4.1: 4237 | dependencies: 4238 | prelude-ls: 1.2.1 4239 | type-check: 0.4.0 4240 | 4241 | lines-and-columns@1.2.4: {} 4242 | 4243 | locate-path@5.0.0: 4244 | dependencies: 4245 | p-locate: 4.1.0 4246 | 4247 | locate-path@6.0.0: 4248 | dependencies: 4249 | p-locate: 5.0.0 4250 | 4251 | lodash.get@4.4.2: {} 4252 | 4253 | lodash.memoize@4.1.2: {} 4254 | 4255 | lodash.merge@4.6.2: {} 4256 | 4257 | lru-cache@5.1.1: 4258 | dependencies: 4259 | yallist: 3.1.1 4260 | 4261 | make-dir@4.0.0: 4262 | dependencies: 4263 | semver: 7.7.2 4264 | 4265 | make-error@1.3.6: {} 4266 | 4267 | makeerror@1.0.12: 4268 | dependencies: 4269 | tmpl: 1.0.5 4270 | 4271 | merge-stream@2.0.0: {} 4272 | 4273 | merge2@1.4.1: {} 4274 | 4275 | micromatch@4.0.5: 4276 | dependencies: 4277 | braces: 3.0.2 4278 | picomatch: 2.3.1 4279 | 4280 | mimic-fn@2.1.0: {} 4281 | 4282 | minimatch@3.1.2: 4283 | dependencies: 4284 | brace-expansion: 1.1.11 4285 | 4286 | minimatch@5.1.6: 4287 | dependencies: 4288 | brace-expansion: 2.0.1 4289 | 4290 | minimatch@9.0.4: 4291 | dependencies: 4292 | brace-expansion: 2.0.1 4293 | 4294 | ms@2.1.3: {} 4295 | 4296 | natural-compare@1.4.0: {} 4297 | 4298 | nise@6.1.1: 4299 | dependencies: 4300 | '@sinonjs/commons': 3.0.1 4301 | '@sinonjs/fake-timers': 13.0.2 4302 | '@sinonjs/text-encoding': 0.7.3 4303 | just-extend: 6.2.0 4304 | path-to-regexp: 8.1.0 4305 | 4306 | node-int64@0.4.0: {} 4307 | 4308 | node-releases@2.0.14: {} 4309 | 4310 | normalize-path@3.0.0: {} 4311 | 4312 | npm-run-path@4.0.1: 4313 | dependencies: 4314 | path-key: 3.1.1 4315 | 4316 | once@1.4.0: 4317 | dependencies: 4318 | wrappy: 1.0.2 4319 | 4320 | onetime@5.1.2: 4321 | dependencies: 4322 | mimic-fn: 2.1.0 4323 | 4324 | optionator@0.9.3: 4325 | dependencies: 4326 | '@aashutoshrathi/word-wrap': 1.2.6 4327 | deep-is: 0.1.4 4328 | fast-levenshtein: 2.0.6 4329 | levn: 0.4.1 4330 | prelude-ls: 1.2.1 4331 | type-check: 0.4.0 4332 | 4333 | p-limit@2.3.0: 4334 | dependencies: 4335 | p-try: 2.2.0 4336 | 4337 | p-limit@3.1.0: 4338 | dependencies: 4339 | yocto-queue: 0.1.0 4340 | 4341 | p-locate@4.1.0: 4342 | dependencies: 4343 | p-limit: 2.3.0 4344 | 4345 | p-locate@5.0.0: 4346 | dependencies: 4347 | p-limit: 3.1.0 4348 | 4349 | p-try@2.2.0: {} 4350 | 4351 | parent-module@1.0.1: 4352 | dependencies: 4353 | callsites: 3.1.0 4354 | 4355 | parse-json@5.2.0: 4356 | dependencies: 4357 | '@babel/code-frame': 7.23.5 4358 | error-ex: 1.3.2 4359 | json-parse-even-better-errors: 2.3.1 4360 | lines-and-columns: 1.2.4 4361 | 4362 | path-exists@4.0.0: {} 4363 | 4364 | path-is-absolute@1.0.1: {} 4365 | 4366 | path-key@3.1.1: {} 4367 | 4368 | path-parse@1.0.7: {} 4369 | 4370 | path-to-regexp@8.1.0: {} 4371 | 4372 | picocolors@1.0.0: {} 4373 | 4374 | picomatch@2.3.1: {} 4375 | 4376 | pirates@4.0.6: {} 4377 | 4378 | pkg-dir@4.2.0: 4379 | dependencies: 4380 | find-up: 4.1.0 4381 | 4382 | pnpm@10.12.1: {} 4383 | 4384 | prelude-ls@1.2.1: {} 4385 | 4386 | prettier@3.5.3: {} 4387 | 4388 | pretty-format@29.7.0: 4389 | dependencies: 4390 | '@jest/schemas': 29.6.3 4391 | ansi-styles: 5.2.0 4392 | react-is: 18.2.0 4393 | 4394 | prompts@2.4.2: 4395 | dependencies: 4396 | kleur: 3.0.3 4397 | sisteransi: 1.0.5 4398 | 4399 | punycode@2.3.1: {} 4400 | 4401 | pure-rand@6.0.4: {} 4402 | 4403 | queue-microtask@1.2.3: {} 4404 | 4405 | react-is@18.2.0: {} 4406 | 4407 | require-directory@2.1.1: {} 4408 | 4409 | resolve-cwd@3.0.0: 4410 | dependencies: 4411 | resolve-from: 5.0.0 4412 | 4413 | resolve-from@4.0.0: {} 4414 | 4415 | resolve-from@5.0.0: {} 4416 | 4417 | resolve.exports@2.0.2: {} 4418 | 4419 | resolve@1.22.8: 4420 | dependencies: 4421 | is-core-module: 2.13.1 4422 | path-parse: 1.0.7 4423 | supports-preserve-symlinks-flag: 1.0.0 4424 | 4425 | reusify@1.0.4: {} 4426 | 4427 | run-parallel@1.2.0: 4428 | dependencies: 4429 | queue-microtask: 1.2.3 4430 | 4431 | semver@6.3.1: {} 4432 | 4433 | semver@7.7.2: {} 4434 | 4435 | shebang-command@2.0.0: 4436 | dependencies: 4437 | shebang-regex: 3.0.0 4438 | 4439 | shebang-regex@3.0.0: {} 4440 | 4441 | signal-exit@3.0.7: {} 4442 | 4443 | sinon@18.0.1: 4444 | dependencies: 4445 | '@sinonjs/commons': 3.0.1 4446 | '@sinonjs/fake-timers': 11.2.2 4447 | '@sinonjs/samsam': 8.0.0 4448 | diff: 5.2.0 4449 | nise: 6.1.1 4450 | supports-color: 7.2.0 4451 | 4452 | sisteransi@1.0.5: {} 4453 | 4454 | slash@3.0.0: {} 4455 | 4456 | source-map-support@0.5.13: 4457 | dependencies: 4458 | buffer-from: 1.1.2 4459 | source-map: 0.6.1 4460 | 4461 | source-map@0.6.1: {} 4462 | 4463 | sprintf-js@1.0.3: {} 4464 | 4465 | stack-utils@2.0.6: 4466 | dependencies: 4467 | escape-string-regexp: 2.0.0 4468 | 4469 | string-length@4.0.2: 4470 | dependencies: 4471 | char-regex: 1.0.2 4472 | strip-ansi: 6.0.1 4473 | 4474 | string-width@4.2.3: 4475 | dependencies: 4476 | emoji-regex: 8.0.0 4477 | is-fullwidth-code-point: 3.0.0 4478 | strip-ansi: 6.0.1 4479 | 4480 | strip-ansi@6.0.1: 4481 | dependencies: 4482 | ansi-regex: 5.0.1 4483 | 4484 | strip-bom@4.0.0: {} 4485 | 4486 | strip-final-newline@2.0.0: {} 4487 | 4488 | strip-json-comments@3.1.1: {} 4489 | 4490 | strnum@1.0.5: {} 4491 | 4492 | supports-color@5.5.0: 4493 | dependencies: 4494 | has-flag: 3.0.0 4495 | 4496 | supports-color@7.2.0: 4497 | dependencies: 4498 | has-flag: 4.0.0 4499 | 4500 | supports-color@8.1.1: 4501 | dependencies: 4502 | has-flag: 4.0.0 4503 | 4504 | supports-preserve-symlinks-flag@1.0.0: {} 4505 | 4506 | test-exclude@6.0.0: 4507 | dependencies: 4508 | '@istanbuljs/schema': 0.1.3 4509 | glob: 7.2.3 4510 | minimatch: 3.1.2 4511 | 4512 | tmpl@1.0.5: {} 4513 | 4514 | to-fast-properties@2.0.0: {} 4515 | 4516 | to-regex-range@5.0.1: 4517 | dependencies: 4518 | is-number: 7.0.0 4519 | 4520 | ts-api-utils@2.1.0(typescript@5.8.3): 4521 | dependencies: 4522 | typescript: 5.8.3 4523 | 4524 | ts-jest@29.3.4(@babel/core@7.24.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.0))(jest@29.7.0(@types/node@20.19.0))(typescript@5.8.3): 4525 | dependencies: 4526 | bs-logger: 0.2.6 4527 | ejs: 3.1.10 4528 | fast-json-stable-stringify: 2.1.0 4529 | jest: 29.7.0(@types/node@20.19.0) 4530 | jest-util: 29.7.0 4531 | json5: 2.2.3 4532 | lodash.memoize: 4.1.2 4533 | make-error: 1.3.6 4534 | semver: 7.7.2 4535 | type-fest: 4.41.0 4536 | typescript: 5.8.3 4537 | yargs-parser: 21.1.1 4538 | optionalDependencies: 4539 | '@babel/core': 7.24.0 4540 | '@jest/transform': 29.7.0 4541 | '@jest/types': 29.6.3 4542 | babel-jest: 29.7.0(@babel/core@7.24.0) 4543 | 4544 | tslib@2.6.2: {} 4545 | 4546 | tunnel@0.0.6: {} 4547 | 4548 | type-check@0.4.0: 4549 | dependencies: 4550 | prelude-ls: 1.2.1 4551 | 4552 | type-detect@4.0.8: {} 4553 | 4554 | type-fest@0.21.3: {} 4555 | 4556 | type-fest@4.41.0: {} 4557 | 4558 | typescript-eslint@8.33.1(eslint@9.28.0)(typescript@5.8.3): 4559 | dependencies: 4560 | '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) 4561 | '@typescript-eslint/parser': 8.33.1(eslint@9.28.0)(typescript@5.8.3) 4562 | '@typescript-eslint/utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) 4563 | eslint: 9.28.0 4564 | typescript: 5.8.3 4565 | transitivePeerDependencies: 4566 | - supports-color 4567 | 4568 | typescript@5.8.3: {} 4569 | 4570 | undici-types@6.21.0: {} 4571 | 4572 | undici@5.28.3: 4573 | dependencies: 4574 | '@fastify/busboy': 2.1.1 4575 | 4576 | update-browserslist-db@1.0.13(browserslist@4.23.0): 4577 | dependencies: 4578 | browserslist: 4.23.0 4579 | escalade: 3.1.2 4580 | picocolors: 1.0.0 4581 | 4582 | uri-js@4.4.1: 4583 | dependencies: 4584 | punycode: 2.3.1 4585 | 4586 | uuid@9.0.1: {} 4587 | 4588 | v8-to-istanbul@9.2.0: 4589 | dependencies: 4590 | '@jridgewell/trace-mapping': 0.3.24 4591 | '@types/istanbul-lib-coverage': 2.0.6 4592 | convert-source-map: 2.0.0 4593 | 4594 | walker@1.0.8: 4595 | dependencies: 4596 | makeerror: 1.0.12 4597 | 4598 | which@2.0.2: 4599 | dependencies: 4600 | isexe: 2.0.0 4601 | 4602 | wrap-ansi@7.0.0: 4603 | dependencies: 4604 | ansi-styles: 4.3.0 4605 | string-width: 4.2.3 4606 | strip-ansi: 6.0.1 4607 | 4608 | wrappy@1.0.2: {} 4609 | 4610 | write-file-atomic@4.0.2: 4611 | dependencies: 4612 | imurmurhash: 0.1.4 4613 | signal-exit: 3.0.7 4614 | 4615 | y18n@5.0.8: {} 4616 | 4617 | yallist@3.1.1: {} 4618 | 4619 | yargs-parser@21.1.1: {} 4620 | 4621 | yargs@17.7.2: 4622 | dependencies: 4623 | cliui: 8.0.1 4624 | escalade: 3.1.2 4625 | get-caller-file: 2.0.5 4626 | require-directory: 2.1.1 4627 | string-width: 4.2.3 4628 | y18n: 5.0.8 4629 | yargs-parser: 21.1.1 4630 | 4631 | yocto-queue@0.1.0: {} 4632 | -------------------------------------------------------------------------------- /src/ecr.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core' 2 | import { 3 | ECRClient, 4 | DescribeRepositoriesCommand, 5 | CreateRepositoryCommand, 6 | PutLifecyclePolicyCommand, 7 | SetRepositoryPolicyCommand, 8 | Repository, 9 | } from '@aws-sdk/client-ecr' 10 | import assert from 'assert' 11 | import { promises as fs } from 'fs' 12 | 13 | type Inputs = { 14 | repository: string 15 | lifecyclePolicy?: string 16 | repositoryPolicy?: string 17 | } 18 | 19 | type Outputs = { 20 | repositoryUri: string 21 | } 22 | 23 | export const runForECR = async (inputs: Inputs): Promise => { 24 | const client = new ECRClient({}) 25 | 26 | const repository = await core.group( 27 | `Create repository ${inputs.repository} if not exist`, 28 | async () => await createRepositoryIfNotExist(client, inputs.repository), 29 | ) 30 | assert(repository.repositoryUri !== undefined) 31 | 32 | const lifecyclePolicy = inputs.lifecyclePolicy 33 | if (lifecyclePolicy !== undefined) { 34 | await core.group( 35 | `Put the lifecycle policy to repository ${inputs.repository}`, 36 | async () => await putLifecyclePolicy(client, inputs.repository, lifecyclePolicy), 37 | ) 38 | } 39 | 40 | const repositoryPolicy = inputs.repositoryPolicy 41 | if (repositoryPolicy !== undefined) { 42 | await core.group( 43 | `Put the repository policy to repository ${inputs.repository}`, 44 | async () => await setRepositoryPolicy(client, inputs.repository, repositoryPolicy), 45 | ) 46 | } 47 | 48 | return { 49 | repositoryUri: repository.repositoryUri, 50 | } 51 | } 52 | 53 | const createRepositoryIfNotExist = async (client: ECRClient, name: string): Promise => { 54 | try { 55 | const describe = await client.send(new DescribeRepositoriesCommand({ repositoryNames: [name] })) 56 | assert(describe.repositories !== undefined) 57 | assert.strictEqual(describe.repositories.length, 1) 58 | 59 | const found = describe.repositories[0] 60 | assert(found.repositoryUri !== undefined) 61 | core.info(`repository ${found.repositoryUri} found`) 62 | return found 63 | } catch (error) { 64 | if (isRepositoryNotFoundException(error)) { 65 | const create = await client.send(new CreateRepositoryCommand({ repositoryName: name })) 66 | assert(create.repository !== undefined) 67 | assert(create.repository.repositoryUri !== undefined) 68 | core.info(`repository ${create.repository.repositoryUri} has been created`) 69 | return create.repository 70 | } 71 | throw error 72 | } 73 | } 74 | 75 | const isRepositoryNotFoundException = (e: unknown) => e instanceof Error && e.name === 'RepositoryNotFoundException' 76 | 77 | const putLifecyclePolicy = async (client: ECRClient, repositoryName: string, path: string): Promise => { 78 | const lifecyclePolicyText = await fs.readFile(path, { encoding: 'utf-8' }) 79 | core.debug(`putting the lifecycle policy ${path} to repository ${repositoryName}`) 80 | 81 | await client.send(new PutLifecyclePolicyCommand({ repositoryName, lifecyclePolicyText })) 82 | core.info(`successfully put lifecycle policy ${path} to repository ${repositoryName}`) 83 | } 84 | 85 | export const setRepositoryPolicy = async (client: ECRClient, repositoryName: string, path: string): Promise => { 86 | const policyText = await fs.readFile(path, { encoding: 'utf-8' }) 87 | core.debug(`setting the repository policy ${path} to repository ${repositoryName}`) 88 | 89 | await client.send(new SetRepositoryPolicyCommand({ repositoryName, policyText })) 90 | core.info(`successfully set repository policy ${path} to repository ${repositoryName}`) 91 | } 92 | -------------------------------------------------------------------------------- /src/ecr_public.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core' 2 | import { 3 | ECRPUBLICClient, 4 | DescribeRepositoriesCommand, 5 | CreateRepositoryCommand, 6 | SetRepositoryPolicyCommand, 7 | Repository, 8 | } from '@aws-sdk/client-ecr-public' 9 | import assert from 'assert' 10 | import { promises as fs } from 'fs' 11 | 12 | type Inputs = { 13 | repository: string 14 | repositoryPolicy?: string 15 | } 16 | 17 | type Outputs = { 18 | repositoryUri: string 19 | } 20 | 21 | export const runForECRPublic = async (inputs: Inputs): Promise => { 22 | // ECR Public API is supported only in us-east-1 23 | // https://docs.aws.amazon.com/general/latest/gr/ecr-public.html 24 | const client = new ECRPUBLICClient({ region: 'us-east-1' }) 25 | 26 | const repository = await core.group( 27 | `Create repository ${inputs.repository} if not exist`, 28 | async () => await createRepositoryIfNotExist(client, inputs.repository), 29 | ) 30 | assert(repository.repositoryUri !== undefined) 31 | 32 | const repositoryPolicy = inputs.repositoryPolicy 33 | if (repositoryPolicy !== undefined) { 34 | await core.group( 35 | `Put the repository policy to repository ${inputs.repository}`, 36 | async () => await setRepositoryPolicy(client, inputs.repository, repositoryPolicy), 37 | ) 38 | } 39 | 40 | return { 41 | repositoryUri: repository.repositoryUri, 42 | } 43 | } 44 | 45 | const createRepositoryIfNotExist = async (client: ECRPUBLICClient, name: string): Promise => { 46 | try { 47 | const describe = await client.send(new DescribeRepositoriesCommand({ repositoryNames: [name] })) 48 | assert(describe.repositories !== undefined) 49 | assert.strictEqual(describe.repositories.length, 1) 50 | 51 | const found = describe.repositories[0] 52 | assert(found.repositoryUri !== undefined) 53 | core.info(`repository ${found.repositoryUri} found`) 54 | return found 55 | } catch (error) { 56 | if (isRepositoryNotFoundException(error)) { 57 | const create = await client.send(new CreateRepositoryCommand({ repositoryName: name })) 58 | assert(create.repository !== undefined) 59 | assert(create.repository.repositoryUri !== undefined) 60 | core.info(`repository ${create.repository.repositoryUri} has been created`) 61 | return create.repository 62 | } 63 | throw error 64 | } 65 | } 66 | 67 | const isRepositoryNotFoundException = (e: unknown) => e instanceof Error && e.name === 'RepositoryNotFoundException' 68 | 69 | // ECR Public does not support the lifecycle policy 70 | // https://github.com/aws/containers-roadmap/issues/1268 71 | 72 | export const setRepositoryPolicy = async ( 73 | client: ECRPUBLICClient, 74 | repositoryName: string, 75 | path: string, 76 | ): Promise => { 77 | const policyText = await fs.readFile(path, { encoding: 'utf-8' }) 78 | core.debug(`setting the repository policy ${path} to repository ${repositoryName}`) 79 | 80 | await client.send(new SetRepositoryPolicyCommand({ repositoryName, policyText })) 81 | core.info(`successfully set repository policy ${path} to repository ${repositoryName}`) 82 | } 83 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core' 2 | import { run } from './run.js' 3 | 4 | const main = async (): Promise => { 5 | const outputs = await run({ 6 | public: core.getBooleanInput('public', { required: true }), 7 | repository: core.getInput('repository', { required: true }), 8 | lifecyclePolicy: core.getInput('lifecycle-policy') || undefined, 9 | repositoryPolicy: core.getInput('repository-policy') || undefined, 10 | }) 11 | core.info(`Outputs: ${JSON.stringify(outputs)}`) 12 | core.setOutput('repository-uri', outputs.repositoryUri) 13 | } 14 | 15 | main().catch((e: Error) => { 16 | core.setFailed(e) 17 | console.error(e) 18 | }) 19 | -------------------------------------------------------------------------------- /src/run.ts: -------------------------------------------------------------------------------- 1 | import { runForECR } from './ecr.js' 2 | import { runForECRPublic } from './ecr_public.js' 3 | 4 | type Inputs = { 5 | public: boolean 6 | repository: string 7 | lifecyclePolicy: string | undefined 8 | repositoryPolicy: string | undefined 9 | } 10 | 11 | type Outputs = { 12 | repositoryUri: string 13 | } 14 | 15 | export const run = async (inputs: Inputs): Promise => { 16 | if (inputs.public === true) { 17 | if (inputs.lifecyclePolicy) { 18 | throw new Error(`currently ECR Public does not support the lifecycle policy`) 19 | } 20 | return await runForECRPublic(inputs) 21 | } 22 | 23 | return await runForECR(inputs) 24 | } 25 | -------------------------------------------------------------------------------- /tests/ecr.test.ts: -------------------------------------------------------------------------------- 1 | import { mockClient } from 'aws-sdk-client-mock' 2 | import { 3 | CreateRepositoryCommand, 4 | DescribeRepositoriesCommand, 5 | ECRClient, 6 | PutLifecyclePolicyCommand, 7 | SetRepositoryPolicyCommand, 8 | } from '@aws-sdk/client-ecr' 9 | import { runForECR } from '../src/ecr.js' 10 | 11 | const ecrMock = mockClient(ECRClient) 12 | 13 | describe('Create an ECR repository if not exist', () => { 14 | test('returns the existing repository', async () => { 15 | ecrMock.on(DescribeRepositoriesCommand, { repositoryNames: ['foobar'] }).resolves({ 16 | repositories: [ 17 | { 18 | repositoryName: 'foobar', 19 | repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar', 20 | }, 21 | ], 22 | }) 23 | 24 | const output = await runForECR({ repository: 'foobar' }) 25 | expect(output.repositoryUri).toEqual('123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar') 26 | }) 27 | 28 | test('creates a repository', async () => { 29 | ecrMock 30 | .on(DescribeRepositoriesCommand, { repositoryNames: ['foobar'] }) 31 | .rejects({ name: 'RepositoryNotFoundException' }) 32 | ecrMock.on(CreateRepositoryCommand, { repositoryName: 'foobar' }).resolves({ 33 | repository: { 34 | repositoryName: 'foobar', 35 | repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar', 36 | }, 37 | }) 38 | 39 | const output = await runForECR({ repository: 'foobar' }) 40 | expect(output.repositoryUri).toEqual('123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar') 41 | }) 42 | 43 | test('general error occurred on describe', async () => { 44 | ecrMock.on(DescribeRepositoriesCommand).rejects({ name: 'ConfigError' }) 45 | 46 | await expect(runForECR({ repository: 'foobar' })).rejects.toThrow() 47 | }) 48 | 49 | test('general error occurred on create', async () => { 50 | ecrMock 51 | .on(DescribeRepositoriesCommand, { repositoryNames: ['foobar'] }) 52 | .rejects({ name: 'RepositoryNotFoundException' }) 53 | ecrMock.on(CreateRepositoryCommand, { repositoryName: 'foobar' }).rejects({ name: 'ConfigError' }) 54 | 55 | await expect(runForECR({ repository: 'foobar' })).rejects.toThrow() 56 | }) 57 | }) 58 | 59 | describe('Put a lifecycle policy', () => { 60 | test('success', async () => { 61 | ecrMock.on(DescribeRepositoriesCommand).resolves({ 62 | repositories: [ 63 | { 64 | repositoryName: 'foobar', 65 | repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar', 66 | }, 67 | ], 68 | }) 69 | ecrMock 70 | .on(PutLifecyclePolicyCommand, { 71 | repositoryName: 'foobar', 72 | lifecyclePolicyText: `{ "rules": [{ "description": "dummy" }] }`, 73 | }) 74 | .resolves({ 75 | repositoryName: 'foobar', 76 | }) 77 | 78 | const output = await runForECR({ 79 | repository: 'foobar', 80 | lifecyclePolicy: `${__dirname}/fixtures/lifecycle-policy.json`, 81 | }) 82 | expect(output.repositoryUri).toBe('123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar') 83 | }) 84 | 85 | test('file not exist', async () => { 86 | ecrMock.on(DescribeRepositoriesCommand).resolves({ 87 | repositories: [ 88 | { 89 | repositoryName: 'foobar', 90 | repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar', 91 | }, 92 | ], 93 | }) 94 | 95 | await expect(runForECR({ repository: 'foobar', lifecyclePolicy: 'wrong-path' })).rejects.toThrow() 96 | }) 97 | }) 98 | 99 | describe('Put a repository policy', () => { 100 | test('success', async () => { 101 | ecrMock.on(DescribeRepositoriesCommand).resolves({ 102 | repositories: [ 103 | { 104 | repositoryName: 'foobar', 105 | repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar', 106 | }, 107 | ], 108 | }) 109 | ecrMock 110 | .on(SetRepositoryPolicyCommand, { 111 | repositoryName: 'foobar', 112 | policyText: `{ "Version": "2008-10-17", "Statement": [{"Sid": "AllowPull", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::012345678910:root"]}, "Action": ["ListImages"]}]}`, 113 | }) 114 | .resolves({ 115 | repositoryName: 'foobar', 116 | }) 117 | 118 | const output = await runForECR({ 119 | repository: 'foobar', 120 | repositoryPolicy: `${__dirname}/fixtures/repository-policy.json`, 121 | }) 122 | expect(output.repositoryUri).toBe('123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar') 123 | }) 124 | 125 | test('file not exist', async () => { 126 | ecrMock.on(DescribeRepositoriesCommand).resolves({ 127 | repositories: [ 128 | { 129 | repositoryName: 'foobar', 130 | repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar', 131 | }, 132 | ], 133 | }) 134 | 135 | await expect(runForECR({ repository: 'foobar', repositoryPolicy: 'wrong-path' })).rejects.toThrow() 136 | }) 137 | }) 138 | -------------------------------------------------------------------------------- /tests/ecr_public.test.ts: -------------------------------------------------------------------------------- 1 | import { mockClient } from 'aws-sdk-client-mock' 2 | import { 3 | CreateRepositoryCommand, 4 | DescribeRepositoriesCommand, 5 | SetRepositoryPolicyCommand, 6 | ECRPUBLICClient, 7 | } from '@aws-sdk/client-ecr-public' 8 | import { runForECRPublic } from '../src/ecr_public.js' 9 | 10 | const ecrMock = mockClient(ECRPUBLICClient) 11 | 12 | describe('Create an ECR repository if not exist', () => { 13 | test('returns the existing repository', async () => { 14 | ecrMock.on(DescribeRepositoriesCommand, { repositoryNames: ['foobar'] }).resolves({ 15 | repositories: [ 16 | { 17 | repositoryName: 'foobar', 18 | repositoryUri: 'public.ecr.aws/12345678/foobar', 19 | }, 20 | ], 21 | }) 22 | 23 | const repository = await runForECRPublic({ repository: 'foobar' }) 24 | expect(repository.repositoryUri).toEqual('public.ecr.aws/12345678/foobar') 25 | }) 26 | 27 | test('creates a repository', async () => { 28 | ecrMock 29 | .on(DescribeRepositoriesCommand, { repositoryNames: ['foobar'] }) 30 | .rejects({ name: 'RepositoryNotFoundException' }) 31 | ecrMock.on(CreateRepositoryCommand, { repositoryName: 'foobar' }).resolves({ 32 | repository: { 33 | repositoryName: 'foobar', 34 | repositoryUri: 'public.ecr.aws/12345678/foobar', 35 | }, 36 | }) 37 | 38 | const repository = await runForECRPublic({ repository: 'foobar' }) 39 | expect(repository.repositoryUri).toEqual('public.ecr.aws/12345678/foobar') 40 | }) 41 | 42 | test('general error occurred on describe', async () => { 43 | ecrMock 44 | .on(DescribeRepositoriesCommand, { repositoryNames: ['foobar'] }) 45 | .rejects({ name: 'ConfigError', message: 'ConfigError' }) 46 | 47 | await expect(runForECRPublic({ repository: 'foobar' })).rejects.toThrow({ 48 | name: 'ConfigError', 49 | message: 'ConfigError', 50 | }) 51 | }) 52 | 53 | test('general error occurred on create', async () => { 54 | ecrMock 55 | .on(DescribeRepositoriesCommand, { repositoryNames: ['foobar'] }) 56 | .rejects({ name: 'RepositoryNotFoundException' }) 57 | ecrMock 58 | .on(CreateRepositoryCommand, { repositoryName: 'foobar' }) 59 | .rejects({ name: 'ConfigError', message: 'ConfigError' }) 60 | 61 | await expect(runForECRPublic({ repository: 'foobar' })).rejects.toThrow({ 62 | name: 'ConfigError', 63 | message: 'ConfigError', 64 | }) 65 | }) 66 | }) 67 | 68 | describe('Put a repository policy', () => { 69 | test('success', async () => { 70 | ecrMock.on(DescribeRepositoriesCommand).resolves({ 71 | repositories: [ 72 | { 73 | repositoryName: 'foobar', 74 | repositoryUri: 'public.ecr.aws/12345678/foobar', 75 | }, 76 | ], 77 | }) 78 | ecrMock 79 | .on(SetRepositoryPolicyCommand, { 80 | repositoryName: 'foobar', 81 | policyText: `{ "Version": "2008-10-17", "Statement": [{"Sid": "AllowPull", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::012345678910:root"]}, "Action": ["ListImages"]}]}`, 82 | }) 83 | .resolves({ 84 | repositoryName: 'foobar', 85 | }) 86 | 87 | const output = await runForECRPublic({ 88 | repository: 'foobar', 89 | repositoryPolicy: `${__dirname}/fixtures/repository-policy.json`, 90 | }) 91 | expect(output.repositoryUri).toBe('public.ecr.aws/12345678/foobar') 92 | }) 93 | 94 | test('file not exist', async () => { 95 | ecrMock.on(DescribeRepositoriesCommand).resolves({ 96 | repositories: [ 97 | { 98 | repositoryName: 'foobar', 99 | repositoryUri: 'public.ecr.aws/12345678/foobar', 100 | }, 101 | ], 102 | }) 103 | 104 | await expect(runForECRPublic({ repository: 'foobar', repositoryPolicy: 'wrong-path' })).rejects.toThrow() 105 | }) 106 | }) 107 | -------------------------------------------------------------------------------- /tests/fixtures/lifecycle-policy.json: -------------------------------------------------------------------------------- 1 | { "rules": [{ "description": "dummy" }] } -------------------------------------------------------------------------------- /tests/fixtures/repository-policy.json: -------------------------------------------------------------------------------- 1 | { "Version": "2008-10-17", "Statement": [{"Sid": "AllowPull", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::012345678910:root"]}, "Action": ["ListImages"]}]} -------------------------------------------------------------------------------- /tests/run.test.ts: -------------------------------------------------------------------------------- 1 | import { mockClient } from 'aws-sdk-client-mock' 2 | import * as ecr from '@aws-sdk/client-ecr' 3 | import * as ecrPublic from '@aws-sdk/client-ecr-public' 4 | import { run } from '../src/run.js' 5 | 6 | const mocks = { 7 | ecr: mockClient(ecr.ECRClient), 8 | ecrPublic: mockClient(ecrPublic.ECRPUBLICClient), 9 | } 10 | 11 | test('ecr', async () => { 12 | mocks.ecr.on(ecr.DescribeRepositoriesCommand).resolves({ 13 | repositories: [ 14 | { 15 | repositoryName: 'foobar', 16 | repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar', 17 | }, 18 | ], 19 | }) 20 | mocks.ecr.on(ecr.PutLifecyclePolicyCommand).resolves({ 21 | repositoryName: 'foobar', 22 | }) 23 | const outputs = await run({ 24 | repository: 'foo/bar', 25 | lifecyclePolicy: `${__dirname}/fixtures/lifecycle-policy.json`, 26 | repositoryPolicy: `${__dirname}/fixtures/repository-policy.json`, 27 | public: false, 28 | }) 29 | expect(outputs).toStrictEqual({ repositoryUri: '123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/foobar' }) 30 | }) 31 | 32 | test('ecr public', async () => { 33 | mocks.ecrPublic.on(ecrPublic.DescribeRepositoriesCommand).resolves({ 34 | repositories: [ 35 | { 36 | repositoryName: 'foobar', 37 | repositoryUri: 'public.ecr.aws/12345678/foobar', 38 | }, 39 | ], 40 | }) 41 | const outputs = await run({ 42 | repository: 'foo/bar', 43 | lifecyclePolicy: undefined, 44 | repositoryPolicy: `${__dirname}/fixtures/repository-policy.json`, 45 | public: true, 46 | }) 47 | expect(outputs).toStrictEqual({ repositoryUri: 'public.ecr.aws/12345678/foobar' }) 48 | }) 49 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "@tsconfig/node20/tsconfig.json" 4 | } 5 | --------------------------------------------------------------------------------