├── .eslintignore ├── .eslintrc.json ├── .github ├── dependabot.yml └── workflows │ └── tests.yml ├── .gitignore ├── .mocharc.json ├── .prettierignore ├── .prettierrc.js ├── LICENSE ├── README.md ├── package.json ├── pnpm-lock.yaml ├── scripts └── dist-fix.js ├── src ├── dialect │ ├── adapter.ts │ ├── connection.ts │ ├── dialect.ts │ ├── driver.ts │ ├── errors.ts │ ├── introspector.ts │ ├── query-compiler.ts │ └── types.ts └── index.ts ├── tests └── nodejs │ ├── select.test.ts │ └── setup.ts ├── tsconfig.json └── tsup.config.ts /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | assets 4 | .prettierrc.js 5 | jest.config.js 6 | package.json 7 | pnpm-lock.yaml 8 | README.md 9 | tsconfig.json 10 | tsup.config.ts 11 | scripts 12 | examples 13 | tests -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": ["prettier"], 4 | "parser": "@typescript-eslint/parser", 5 | "parserOptions": {"project": ["./tsconfig.json"]}, 6 | "plugins": ["prettier", "import", "@typescript-eslint"], 7 | "rules": { 8 | "prettier/prettier": ["error"], 9 | "import/extensions": [2, "ignorePackages"] 10 | }, 11 | "settings": { 12 | "import/extensions": [".ts"] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "npm" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "daily" 12 | reviewers: 13 | - "igalklebanov" 14 | versioning-strategy: increase 15 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | on: 3 | pull_request: 4 | branches: [main] 5 | push: 6 | branches: [main] 7 | jobs: 8 | run-node-tests: 9 | name: Node.js Tests 10 | runs-on: ubuntu-latest 11 | 12 | strategy: 13 | matrix: 14 | node-version: [14.x, 16.x, 18.x] 15 | fail-fast: false 16 | 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v3 20 | 21 | - name: Install Node.js ${{ matrix.node-version }} 22 | uses: actions/setup-node@v3 23 | with: 24 | node-version: ${{ matrix.node-version }} 25 | 26 | - name: Install pnpm 27 | uses: pnpm/action-setup@v2.2.2 28 | with: 29 | version: 7 30 | run_install: false 31 | 32 | - name: Get pnpm store directory 33 | id: pnpm-cache 34 | run: | 35 | echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" 36 | 37 | - name: Setup pnpm cache 38 | uses: actions/cache@v3 39 | with: 40 | path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} 41 | key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} 42 | restore-keys: | 43 | ${{ runner.os }}-pnpm-store- 44 | 45 | - name: Install dependencies 46 | run: pnpm i 47 | 48 | - name: Build 49 | run: pnpm build 50 | 51 | - name: Test 52 | run: pnpm test:nodejs 53 | env: 54 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} 55 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} 56 | 57 | run-misc-checks: 58 | name: Misc Checks 59 | runs-on: ubuntu-latest 60 | 61 | steps: 62 | - name: Checkout 63 | uses: actions/checkout@v3 64 | 65 | - name: Install Node.js 66 | uses: actions/setup-node@v3 67 | with: 68 | node-version: 16.x 69 | 70 | - name: Install pnpm 71 | uses: pnpm/action-setup@v2.2.2 72 | with: 73 | version: 7 74 | run_install: false 75 | 76 | - name: Get pnpm store directory 77 | id: pnpm-cache 78 | run: | 79 | echo "::set-output name=pnpm_cache_dir::$(pnpm store path)" 80 | 81 | - name: Setup pnpm cache 82 | uses: actions/cache@v3 83 | with: 84 | path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} 85 | key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} 86 | restore-keys: | 87 | ${{ runner.os }}-pnpm-store- 88 | 89 | - name: Install dependencies 90 | run: pnpm i 91 | 92 | - name: Build 93 | run: pnpm run build 94 | 95 | - name: Type Check 96 | run: pnpm run type-check 97 | 98 | - name: Lint 99 | run: pnpm run lint 100 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | volume -------------------------------------------------------------------------------- /.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extension": ["ts"], 3 | "recursive": true, 4 | "require": ["esbuild-runner/register"], 5 | "timeout": 30000 6 | } 7 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | pnpm-lock.yaml -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | printWidth: 120, 3 | semi: false, 4 | singleQuote: true, 5 | trailingComma: 'all', 6 | bracketSpacing: false, 7 | plugins: [require('prettier-plugin-organize-imports'), require('prettier-plugin-pkg')], 8 | } 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Igal Klebanov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # kysely-s3-select 2 | 3 | [AWS has killed the S3 Select service](https://horovits.medium.com/disruption-ahead-aws-quietly-axing-services-033e7518eefb) so this project will not receive any future updates. Feel free to fork it. 4 | 5 | ![Powered by TypeScript](https://img.shields.io/badge/powered%20by-typescript-blue.svg) 6 | 7 | [Kysely](https://github.com/koskimas/kysely) dialects, plugins and other goodies for [Amazon S3 Select](https://docs.aws.amazon.com/AmazonS3/latest/userguide/selecting-content-from-objects.html). 8 | 9 | Inspired by [Thomas Aribart](https://github.com/ThomasAribart)'s great [post](https://dev.to/kumo/type-safe-s3-select-queries-with-kysely-4ge0). 10 | 11 | ## Installation 12 | 13 | #### NPM 7+ 14 | 15 | ```bash 16 | npm i kysely-s3-select 17 | ``` 18 | 19 | #### NPM <7 20 | 21 | ```bash 22 | npm i kysely-s3-select kysely @aws-sdk/client-s3 23 | ``` 24 | 25 | #### Yarn 26 | 27 | ```bash 28 | yarn add kysely-s3-select kysely @aws-sdk/client-s3 29 | ``` 30 | 31 | #### PNPM 32 | 33 | ```bash 34 | pnpm add kysely-s3-select kysely @aws-sdk/client-s3 35 | ``` 36 | 37 | ### Deno 38 | 39 | This package was not tested in Deno, aws-sdk-v3 might not be supported. 40 | 41 | This package uses/extends some [Kysely](https://github.com/koskimas/kysely) types and classes, which are imported using its NPM package name -- not a relative file path or CDN url. 42 | 43 | To fix that, add an [`import_map.json`](https://deno.land/manual@v1.26.1/linking_to_external_code/import_maps) file. 44 | 45 | ```json 46 | { 47 | "imports": { 48 | "kysely": "https://cdn.jsdelivr.net/npm/kysely@0.23.5/dist/esm/index.js" 49 | } 50 | } 51 | ``` 52 | 53 | ## Usage 54 | 55 | ```ts 56 | import { S3Client } from '@aws-sdk/client-s3' 57 | import { Kysely } from 'kysely' 58 | import { S3SelectDialect } from 'kysely-s3-select' 59 | 60 | interface ConditionsCSV { 61 | S3Object: Condition 62 | } 63 | 64 | interface Condition { 65 | START: string 66 | STOP: string 67 | PATIENT: string 68 | CODE: string 69 | DESCRIPTION: string 70 | } 71 | 72 | const conditions = new Kysely({ 73 | dialect: new S3SelectDialect({ 74 | bucket: 'synthea-open-data', 75 | client: new S3Client({ 76 | region: 'us-east-1', // optional 77 | }), 78 | contentType: 'csv', // one of 'csv' | 'json' | 'parquet' 79 | // csvOptions: { // optional 80 | // allowQuotedRecordDelimiter: false, // optional 81 | // comments?: '#', // optional 82 | // fieldDelimiter?: ',', // optional 83 | // fileHeaderInfo?: 'use', // optional 84 | // quoteCharacter?: '"', // optional 85 | // quoteEscapeCharacter?: '"', // optional 86 | // recordDelimiter?: '\n', // optional 87 | // }, 88 | key: 'coherent/unzipped/csv/conditions.csv', 89 | }) 90 | }) 91 | 92 | const results = await conditions 93 | .selectFrom('S3Object') 94 | .where('START', '>=', '2000') 95 | .where('STOP', '!=', '') 96 | .select(['PATIENT as patient', 'DESCRIPTION as description']) 97 | .limit(50) 98 | .execute() 99 | 100 | interface PatientBundleJSON { 101 | S3Object: Bundle 102 | } 103 | 104 | interface Bundle { 105 | resourceType: 'Bundle' 106 | type: 'transaction' 107 | entry: Entry[] 108 | } 109 | 110 | interface Entry { 111 | fullUrl: string 112 | resource: Patient 113 | request: object 114 | } 115 | 116 | interface Patient { 117 | resourceType: 'Patient' 118 | id: string 119 | meta: object 120 | text: object 121 | extension: object[] 122 | identifier: object[] 123 | name: { 124 | use: 'official' 125 | family: string 126 | given: string[] 127 | prefix: string[] 128 | }[] 129 | telecom: object[] 130 | gender: 'male' | 'female' 131 | birthDate: string 132 | deceasedDateTime: string 133 | address: object[] 134 | maritalStatus: object 135 | multipleBirthBoolean: boolean 136 | communication: object[] 137 | } 138 | 139 | const patientBundle = new Kysely({ 140 | dialect: new S3SelectDialect({ 141 | bucket: 'synthea-open-data', 142 | client: new S3Client({ 143 | region: 'us-east-1', // optional 144 | }), 145 | contentType: 'json', // one of 'csv' | 'json' | 'parquet' 146 | // jsonOptions: { // optional 147 | // type: 'document', // optional, one of 'document' | 'lines' 148 | // }, 149 | key: 'coherent/unzipped/fhir/Abe604_Frami345_b8dd1798-beef-094d-1be4-f90ee0e6b7d5.json', 150 | }) 151 | }) 152 | 153 | const patient = await patientBundle 154 | .selectFrom( 155 | sql>`S3Object[*].${sql.ref('entry')}[*].${sql.ref('resource')}`.as('resource'), 156 | ) 157 | .where('resource.resourceType', '=', 'Patient') 158 | .select(['resource.id as id', 'resource.name as name']) 159 | .limit(1) 160 | .$castTo>() 161 | .executeTakeFirstOrThrow() 162 | ``` 163 | 164 | ## License 165 | 166 | MIT License, see `LICENSE` 167 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kysely-s3-select", 3 | "version": "0.1.0", 4 | "description": "Kysely dialect, plugins and other goodies for Amazon S3 Select", 5 | "repository": "https://github.com/igalklebanov/kysely-s3-select.git", 6 | "homepage": "https://github.com/igalklebanov/kysely-s3-select", 7 | "author": "Igal Klebanov ", 8 | "license": "MIT", 9 | "main": "./dist/cjs/index.js", 10 | "module": "./dist/esm/index.js", 11 | "exports": { 12 | ".": { 13 | "import": "./dist/esm/index.js", 14 | "require": "./dist/cjs/index.js" 15 | } 16 | }, 17 | "files": [ 18 | "dist" 19 | ], 20 | "keywords": [ 21 | "kysely", 22 | "aws", 23 | "s3", 24 | "select", 25 | "driver", 26 | "dialect", 27 | "plugin" 28 | ], 29 | "scripts": { 30 | "build": "tsup && node ./scripts/dist-fix.js", 31 | "clean": "rm -rf dist", 32 | "fmt": "prettier --write .", 33 | "fmt:check": "prettier --check .", 34 | "lint": "eslint src --ext .ts", 35 | "prepack": "pnpm run lint && pnpm run build", 36 | "test:nodejs": "mocha ./tests/nodejs", 37 | "type-check": "tsc --noEmit" 38 | }, 39 | "peerDependencies": { 40 | "@aws-sdk/client-s3": ">= 3.0.0 < 4", 41 | "kysely": ">= 0.7.8 < 1" 42 | }, 43 | "devDependencies": { 44 | "@aws-sdk/client-s3": "^3.296.0", 45 | "@tsconfig/node18": "^1.0.1", 46 | "@types/chai": "^4.3.4", 47 | "@types/chai-as-promised": "^7.1.5", 48 | "@types/mocha": "^10.0.1", 49 | "@types/node": "^18.15.5", 50 | "@typescript-eslint/eslint-plugin": "^5.56.0", 51 | "@typescript-eslint/parser": "^5.56.0", 52 | "chai": "^4.3.7", 53 | "chai-as-promised": "^7.1.1", 54 | "esbuild": "^0.17.12", 55 | "esbuild-runner": "^2.2.2", 56 | "eslint": "^8.36.0", 57 | "eslint-config-prettier": "^8.8.0", 58 | "eslint-plugin-import": "^2.27.5", 59 | "eslint-plugin-prettier": "^4.2.1", 60 | "kysely": "^0.23.5", 61 | "mocha": "^10.2.0", 62 | "prettier": "^2.8.6", 63 | "prettier-plugin-organize-imports": "^3.2.2", 64 | "prettier-plugin-pkg": "^0.17.1", 65 | "tsup": "^6.7.0", 66 | "typescript": "^5.0.2" 67 | }, 68 | "sideEffects": false 69 | } 70 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@aws-sdk/client-s3': ^3.296.0 5 | '@tsconfig/node18': ^1.0.1 6 | '@types/chai': ^4.3.4 7 | '@types/chai-as-promised': ^7.1.5 8 | '@types/mocha': ^10.0.1 9 | '@types/node': ^18.15.5 10 | '@typescript-eslint/eslint-plugin': ^5.56.0 11 | '@typescript-eslint/parser': ^5.56.0 12 | chai: ^4.3.7 13 | chai-as-promised: ^7.1.1 14 | esbuild: ^0.17.12 15 | esbuild-runner: ^2.2.2 16 | eslint: ^8.36.0 17 | eslint-config-prettier: ^8.8.0 18 | eslint-plugin-import: ^2.27.5 19 | eslint-plugin-prettier: ^4.2.1 20 | kysely: ^0.23.5 21 | mocha: ^10.2.0 22 | prettier: ^2.8.6 23 | prettier-plugin-organize-imports: ^3.2.2 24 | prettier-plugin-pkg: ^0.17.1 25 | tsup: ^6.7.0 26 | typescript: ^5.0.2 27 | 28 | devDependencies: 29 | '@aws-sdk/client-s3': 3.296.0 30 | '@tsconfig/node18': 1.0.1 31 | '@types/chai': 4.3.4 32 | '@types/chai-as-promised': 7.1.5 33 | '@types/mocha': 10.0.1 34 | '@types/node': 18.15.5 35 | '@typescript-eslint/eslint-plugin': 5.56.0_2hcjazgfnbtq42tcc73br2vup4 36 | '@typescript-eslint/parser': 5.56.0_j4766f7ecgqbon3u7zlxn5zszu 37 | chai: 4.3.7 38 | chai-as-promised: 7.1.1_chai@4.3.7 39 | esbuild: 0.17.12 40 | esbuild-runner: 2.2.2_esbuild@0.17.12 41 | eslint: 8.36.0 42 | eslint-config-prettier: 8.8.0_eslint@8.36.0 43 | eslint-plugin-import: 2.27.5_cnkxirszkzb4o6ts7gbclno24e 44 | eslint-plugin-prettier: 4.2.1_ose2zoovovx4ulolhifz3tfzx4 45 | kysely: 0.23.5 46 | mocha: 10.2.0 47 | prettier: 2.8.6 48 | prettier-plugin-organize-imports: 3.2.2_tcllvk4eo3otqqvuorc2duftpy 49 | prettier-plugin-pkg: 0.17.1_prettier@2.8.6 50 | tsup: 6.7.0_typescript@5.0.2 51 | typescript: 5.0.2 52 | 53 | packages: 54 | 55 | /@aws-crypto/crc32/3.0.0: 56 | resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} 57 | dependencies: 58 | '@aws-crypto/util': 3.0.0 59 | '@aws-sdk/types': 3.296.0 60 | tslib: 1.14.1 61 | dev: true 62 | 63 | /@aws-crypto/crc32c/3.0.0: 64 | resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} 65 | dependencies: 66 | '@aws-crypto/util': 3.0.0 67 | '@aws-sdk/types': 3.296.0 68 | tslib: 1.14.1 69 | dev: true 70 | 71 | /@aws-crypto/ie11-detection/3.0.0: 72 | resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} 73 | dependencies: 74 | tslib: 1.14.1 75 | dev: true 76 | 77 | /@aws-crypto/sha1-browser/3.0.0: 78 | resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} 79 | dependencies: 80 | '@aws-crypto/ie11-detection': 3.0.0 81 | '@aws-crypto/supports-web-crypto': 3.0.0 82 | '@aws-crypto/util': 3.0.0 83 | '@aws-sdk/types': 3.296.0 84 | '@aws-sdk/util-locate-window': 3.295.0 85 | '@aws-sdk/util-utf8-browser': 3.259.0 86 | tslib: 1.14.1 87 | dev: true 88 | 89 | /@aws-crypto/sha256-browser/3.0.0: 90 | resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} 91 | dependencies: 92 | '@aws-crypto/ie11-detection': 3.0.0 93 | '@aws-crypto/sha256-js': 3.0.0 94 | '@aws-crypto/supports-web-crypto': 3.0.0 95 | '@aws-crypto/util': 3.0.0 96 | '@aws-sdk/types': 3.296.0 97 | '@aws-sdk/util-locate-window': 3.295.0 98 | '@aws-sdk/util-utf8-browser': 3.259.0 99 | tslib: 1.14.1 100 | dev: true 101 | 102 | /@aws-crypto/sha256-js/3.0.0: 103 | resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} 104 | dependencies: 105 | '@aws-crypto/util': 3.0.0 106 | '@aws-sdk/types': 3.296.0 107 | tslib: 1.14.1 108 | dev: true 109 | 110 | /@aws-crypto/supports-web-crypto/3.0.0: 111 | resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} 112 | dependencies: 113 | tslib: 1.14.1 114 | dev: true 115 | 116 | /@aws-crypto/util/3.0.0: 117 | resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} 118 | dependencies: 119 | '@aws-sdk/types': 3.296.0 120 | '@aws-sdk/util-utf8-browser': 3.259.0 121 | tslib: 1.14.1 122 | dev: true 123 | 124 | /@aws-sdk/abort-controller/3.296.0: 125 | resolution: {integrity: sha512-gNUFBlBw6+sEMfDjPVa83iscpQwXBS4uoiZXnfeQ6s6tnaxqQpJDrBBmNvYqDEXNdaAJX4FhayEwkSvtir/f3A==} 126 | engines: {node: '>=14.0.0'} 127 | dependencies: 128 | '@aws-sdk/types': 3.296.0 129 | tslib: 2.5.0 130 | dev: true 131 | 132 | /@aws-sdk/chunked-blob-reader-native/3.295.0: 133 | resolution: {integrity: sha512-9Sp4vXjoG99qI6sFe09MfgIzsKwiOR0atqxmAcJJLn6fUNXhJEoW04n3w/YcRlk7P4gC9cOMsEyvb8xu+fDEOQ==} 134 | dependencies: 135 | '@aws-sdk/util-base64': 3.295.0 136 | tslib: 2.5.0 137 | dev: true 138 | 139 | /@aws-sdk/chunked-blob-reader/3.295.0: 140 | resolution: {integrity: sha512-oWWcEKyrx4sNFxfvOgkMai1jJtOuERmND8fAp8vRA6i38HBU80q8jjkoAitFGPHUz57EhI2ewYYNnf7vkGteOQ==} 141 | dependencies: 142 | tslib: 2.5.0 143 | dev: true 144 | 145 | /@aws-sdk/client-s3/3.296.0: 146 | resolution: {integrity: sha512-PI6mjM0fmcV2fqkkRoivF3DYex4lnbEz7WIsOFAwpHJBbA9ykClQpiutCKcgl0x/yEWAeTNdQtrCVeAwbxYfvw==} 147 | engines: {node: '>=14.0.0'} 148 | dependencies: 149 | '@aws-crypto/sha1-browser': 3.0.0 150 | '@aws-crypto/sha256-browser': 3.0.0 151 | '@aws-crypto/sha256-js': 3.0.0 152 | '@aws-sdk/client-sts': 3.296.0 153 | '@aws-sdk/config-resolver': 3.296.0 154 | '@aws-sdk/credential-provider-node': 3.296.0 155 | '@aws-sdk/eventstream-serde-browser': 3.296.0 156 | '@aws-sdk/eventstream-serde-config-resolver': 3.296.0 157 | '@aws-sdk/eventstream-serde-node': 3.296.0 158 | '@aws-sdk/fetch-http-handler': 3.296.0 159 | '@aws-sdk/hash-blob-browser': 3.296.0 160 | '@aws-sdk/hash-node': 3.296.0 161 | '@aws-sdk/hash-stream-node': 3.296.0 162 | '@aws-sdk/invalid-dependency': 3.296.0 163 | '@aws-sdk/md5-js': 3.296.0 164 | '@aws-sdk/middleware-bucket-endpoint': 3.296.0 165 | '@aws-sdk/middleware-content-length': 3.296.0 166 | '@aws-sdk/middleware-endpoint': 3.296.0 167 | '@aws-sdk/middleware-expect-continue': 3.296.0 168 | '@aws-sdk/middleware-flexible-checksums': 3.296.0 169 | '@aws-sdk/middleware-host-header': 3.296.0 170 | '@aws-sdk/middleware-location-constraint': 3.296.0 171 | '@aws-sdk/middleware-logger': 3.296.0 172 | '@aws-sdk/middleware-recursion-detection': 3.296.0 173 | '@aws-sdk/middleware-retry': 3.296.0 174 | '@aws-sdk/middleware-sdk-s3': 3.296.0 175 | '@aws-sdk/middleware-serde': 3.296.0 176 | '@aws-sdk/middleware-signing': 3.296.0 177 | '@aws-sdk/middleware-ssec': 3.296.0 178 | '@aws-sdk/middleware-stack': 3.296.0 179 | '@aws-sdk/middleware-user-agent': 3.296.0 180 | '@aws-sdk/node-config-provider': 3.296.0 181 | '@aws-sdk/node-http-handler': 3.296.0 182 | '@aws-sdk/protocol-http': 3.296.0 183 | '@aws-sdk/signature-v4-multi-region': 3.296.0 184 | '@aws-sdk/smithy-client': 3.296.0 185 | '@aws-sdk/types': 3.296.0 186 | '@aws-sdk/url-parser': 3.296.0 187 | '@aws-sdk/util-base64': 3.295.0 188 | '@aws-sdk/util-body-length-browser': 3.295.0 189 | '@aws-sdk/util-body-length-node': 3.295.0 190 | '@aws-sdk/util-defaults-mode-browser': 3.296.0 191 | '@aws-sdk/util-defaults-mode-node': 3.296.0 192 | '@aws-sdk/util-endpoints': 3.296.0 193 | '@aws-sdk/util-retry': 3.296.0 194 | '@aws-sdk/util-stream-browser': 3.296.0 195 | '@aws-sdk/util-stream-node': 3.296.0 196 | '@aws-sdk/util-user-agent-browser': 3.296.0 197 | '@aws-sdk/util-user-agent-node': 3.296.0 198 | '@aws-sdk/util-utf8': 3.295.0 199 | '@aws-sdk/util-waiter': 3.296.0 200 | '@aws-sdk/xml-builder': 3.295.0 201 | fast-xml-parser: 4.1.2 202 | tslib: 2.5.0 203 | transitivePeerDependencies: 204 | - '@aws-sdk/signature-v4-crt' 205 | - aws-crt 206 | dev: true 207 | 208 | /@aws-sdk/client-sso-oidc/3.296.0: 209 | resolution: {integrity: sha512-GRycCVdlFICvWwv9z6Mc/2BvSBOvchWO7UTklvbKXeDn6D05C+02PfxeoocMTc4r8/eFoEQWs67h5u/lPpyHDw==} 210 | engines: {node: '>=14.0.0'} 211 | dependencies: 212 | '@aws-crypto/sha256-browser': 3.0.0 213 | '@aws-crypto/sha256-js': 3.0.0 214 | '@aws-sdk/config-resolver': 3.296.0 215 | '@aws-sdk/fetch-http-handler': 3.296.0 216 | '@aws-sdk/hash-node': 3.296.0 217 | '@aws-sdk/invalid-dependency': 3.296.0 218 | '@aws-sdk/middleware-content-length': 3.296.0 219 | '@aws-sdk/middleware-endpoint': 3.296.0 220 | '@aws-sdk/middleware-host-header': 3.296.0 221 | '@aws-sdk/middleware-logger': 3.296.0 222 | '@aws-sdk/middleware-recursion-detection': 3.296.0 223 | '@aws-sdk/middleware-retry': 3.296.0 224 | '@aws-sdk/middleware-serde': 3.296.0 225 | '@aws-sdk/middleware-stack': 3.296.0 226 | '@aws-sdk/middleware-user-agent': 3.296.0 227 | '@aws-sdk/node-config-provider': 3.296.0 228 | '@aws-sdk/node-http-handler': 3.296.0 229 | '@aws-sdk/protocol-http': 3.296.0 230 | '@aws-sdk/smithy-client': 3.296.0 231 | '@aws-sdk/types': 3.296.0 232 | '@aws-sdk/url-parser': 3.296.0 233 | '@aws-sdk/util-base64': 3.295.0 234 | '@aws-sdk/util-body-length-browser': 3.295.0 235 | '@aws-sdk/util-body-length-node': 3.295.0 236 | '@aws-sdk/util-defaults-mode-browser': 3.296.0 237 | '@aws-sdk/util-defaults-mode-node': 3.296.0 238 | '@aws-sdk/util-endpoints': 3.296.0 239 | '@aws-sdk/util-retry': 3.296.0 240 | '@aws-sdk/util-user-agent-browser': 3.296.0 241 | '@aws-sdk/util-user-agent-node': 3.296.0 242 | '@aws-sdk/util-utf8': 3.295.0 243 | tslib: 2.5.0 244 | transitivePeerDependencies: 245 | - aws-crt 246 | dev: true 247 | 248 | /@aws-sdk/client-sso/3.296.0: 249 | resolution: {integrity: sha512-0P0x++jhlmhzViFPOHvTb7+Z6tSV9aONwB8CchIseg2enSPBbGfml7y5gQu1jdOTDS6pBUmrPZ+9sOI4/GvAfA==} 250 | engines: {node: '>=14.0.0'} 251 | dependencies: 252 | '@aws-crypto/sha256-browser': 3.0.0 253 | '@aws-crypto/sha256-js': 3.0.0 254 | '@aws-sdk/config-resolver': 3.296.0 255 | '@aws-sdk/fetch-http-handler': 3.296.0 256 | '@aws-sdk/hash-node': 3.296.0 257 | '@aws-sdk/invalid-dependency': 3.296.0 258 | '@aws-sdk/middleware-content-length': 3.296.0 259 | '@aws-sdk/middleware-endpoint': 3.296.0 260 | '@aws-sdk/middleware-host-header': 3.296.0 261 | '@aws-sdk/middleware-logger': 3.296.0 262 | '@aws-sdk/middleware-recursion-detection': 3.296.0 263 | '@aws-sdk/middleware-retry': 3.296.0 264 | '@aws-sdk/middleware-serde': 3.296.0 265 | '@aws-sdk/middleware-stack': 3.296.0 266 | '@aws-sdk/middleware-user-agent': 3.296.0 267 | '@aws-sdk/node-config-provider': 3.296.0 268 | '@aws-sdk/node-http-handler': 3.296.0 269 | '@aws-sdk/protocol-http': 3.296.0 270 | '@aws-sdk/smithy-client': 3.296.0 271 | '@aws-sdk/types': 3.296.0 272 | '@aws-sdk/url-parser': 3.296.0 273 | '@aws-sdk/util-base64': 3.295.0 274 | '@aws-sdk/util-body-length-browser': 3.295.0 275 | '@aws-sdk/util-body-length-node': 3.295.0 276 | '@aws-sdk/util-defaults-mode-browser': 3.296.0 277 | '@aws-sdk/util-defaults-mode-node': 3.296.0 278 | '@aws-sdk/util-endpoints': 3.296.0 279 | '@aws-sdk/util-retry': 3.296.0 280 | '@aws-sdk/util-user-agent-browser': 3.296.0 281 | '@aws-sdk/util-user-agent-node': 3.296.0 282 | '@aws-sdk/util-utf8': 3.295.0 283 | tslib: 2.5.0 284 | transitivePeerDependencies: 285 | - aws-crt 286 | dev: true 287 | 288 | /@aws-sdk/client-sts/3.296.0: 289 | resolution: {integrity: sha512-ew7hSVNpitnLCIRVhnI2L1HZB/yYpRQFReR62fOqCUnpKqm6WGga37bnvgYbY5y0Rv23C0VHARovwunVg1gabA==} 290 | engines: {node: '>=14.0.0'} 291 | dependencies: 292 | '@aws-crypto/sha256-browser': 3.0.0 293 | '@aws-crypto/sha256-js': 3.0.0 294 | '@aws-sdk/config-resolver': 3.296.0 295 | '@aws-sdk/credential-provider-node': 3.296.0 296 | '@aws-sdk/fetch-http-handler': 3.296.0 297 | '@aws-sdk/hash-node': 3.296.0 298 | '@aws-sdk/invalid-dependency': 3.296.0 299 | '@aws-sdk/middleware-content-length': 3.296.0 300 | '@aws-sdk/middleware-endpoint': 3.296.0 301 | '@aws-sdk/middleware-host-header': 3.296.0 302 | '@aws-sdk/middleware-logger': 3.296.0 303 | '@aws-sdk/middleware-recursion-detection': 3.296.0 304 | '@aws-sdk/middleware-retry': 3.296.0 305 | '@aws-sdk/middleware-sdk-sts': 3.296.0 306 | '@aws-sdk/middleware-serde': 3.296.0 307 | '@aws-sdk/middleware-signing': 3.296.0 308 | '@aws-sdk/middleware-stack': 3.296.0 309 | '@aws-sdk/middleware-user-agent': 3.296.0 310 | '@aws-sdk/node-config-provider': 3.296.0 311 | '@aws-sdk/node-http-handler': 3.296.0 312 | '@aws-sdk/protocol-http': 3.296.0 313 | '@aws-sdk/smithy-client': 3.296.0 314 | '@aws-sdk/types': 3.296.0 315 | '@aws-sdk/url-parser': 3.296.0 316 | '@aws-sdk/util-base64': 3.295.0 317 | '@aws-sdk/util-body-length-browser': 3.295.0 318 | '@aws-sdk/util-body-length-node': 3.295.0 319 | '@aws-sdk/util-defaults-mode-browser': 3.296.0 320 | '@aws-sdk/util-defaults-mode-node': 3.296.0 321 | '@aws-sdk/util-endpoints': 3.296.0 322 | '@aws-sdk/util-retry': 3.296.0 323 | '@aws-sdk/util-user-agent-browser': 3.296.0 324 | '@aws-sdk/util-user-agent-node': 3.296.0 325 | '@aws-sdk/util-utf8': 3.295.0 326 | fast-xml-parser: 4.1.2 327 | tslib: 2.5.0 328 | transitivePeerDependencies: 329 | - aws-crt 330 | dev: true 331 | 332 | /@aws-sdk/config-resolver/3.296.0: 333 | resolution: {integrity: sha512-Ecdp7fmIitHo49NRCyIEHb9xlI43J7qkvhcwaKGGqN5jvoh0YhR2vNr195wWG8Ip/9PwsD4QV4g/XT5EY7XkMA==} 334 | engines: {node: '>=14.0.0'} 335 | dependencies: 336 | '@aws-sdk/signature-v4': 3.296.0 337 | '@aws-sdk/types': 3.296.0 338 | '@aws-sdk/util-config-provider': 3.295.0 339 | '@aws-sdk/util-middleware': 3.296.0 340 | tslib: 2.5.0 341 | dev: true 342 | 343 | /@aws-sdk/credential-provider-env/3.296.0: 344 | resolution: {integrity: sha512-eDWSU3p04gytkkVXnYn05YzrP5SEaj/DQiafd4y+iBl8IFfF3zM6982rs6qFhvpwrHeSbLqHNfKR1HDWVwfG5g==} 345 | engines: {node: '>=14.0.0'} 346 | dependencies: 347 | '@aws-sdk/property-provider': 3.296.0 348 | '@aws-sdk/types': 3.296.0 349 | tslib: 2.5.0 350 | dev: true 351 | 352 | /@aws-sdk/credential-provider-imds/3.296.0: 353 | resolution: {integrity: sha512-DXqksHyT/GVVYbPGknMARKi6Rk6cqCHJUAejePIx5cz1SCKlDrV704hykafHIjaDoy/Zeoj1wzjfwy83sJfDCg==} 354 | engines: {node: '>=14.0.0'} 355 | dependencies: 356 | '@aws-sdk/node-config-provider': 3.296.0 357 | '@aws-sdk/property-provider': 3.296.0 358 | '@aws-sdk/types': 3.296.0 359 | '@aws-sdk/url-parser': 3.296.0 360 | tslib: 2.5.0 361 | dev: true 362 | 363 | /@aws-sdk/credential-provider-ini/3.296.0: 364 | resolution: {integrity: sha512-U0ecY0GX2jeDAgmTzaVO9YgjlLUfb8wgZSu1OwbOxCJscL/5eFkhcF0/xJQXDbRgcj4H4dlquqeSWsBVl/PgvQ==} 365 | engines: {node: '>=14.0.0'} 366 | dependencies: 367 | '@aws-sdk/credential-provider-env': 3.296.0 368 | '@aws-sdk/credential-provider-imds': 3.296.0 369 | '@aws-sdk/credential-provider-process': 3.296.0 370 | '@aws-sdk/credential-provider-sso': 3.296.0 371 | '@aws-sdk/credential-provider-web-identity': 3.296.0 372 | '@aws-sdk/property-provider': 3.296.0 373 | '@aws-sdk/shared-ini-file-loader': 3.296.0 374 | '@aws-sdk/types': 3.296.0 375 | tslib: 2.5.0 376 | transitivePeerDependencies: 377 | - aws-crt 378 | dev: true 379 | 380 | /@aws-sdk/credential-provider-node/3.296.0: 381 | resolution: {integrity: sha512-oCkmh2b1DQhHkhd/qA9jiSIOkrBBK7cMg1/PVIgLw8e15NkzUHBObLJ/ZQw6ZzCxZzjlMYaFv9oCB8hyO8txmA==} 382 | engines: {node: '>=14.0.0'} 383 | dependencies: 384 | '@aws-sdk/credential-provider-env': 3.296.0 385 | '@aws-sdk/credential-provider-imds': 3.296.0 386 | '@aws-sdk/credential-provider-ini': 3.296.0 387 | '@aws-sdk/credential-provider-process': 3.296.0 388 | '@aws-sdk/credential-provider-sso': 3.296.0 389 | '@aws-sdk/credential-provider-web-identity': 3.296.0 390 | '@aws-sdk/property-provider': 3.296.0 391 | '@aws-sdk/shared-ini-file-loader': 3.296.0 392 | '@aws-sdk/types': 3.296.0 393 | tslib: 2.5.0 394 | transitivePeerDependencies: 395 | - aws-crt 396 | dev: true 397 | 398 | /@aws-sdk/credential-provider-process/3.296.0: 399 | resolution: {integrity: sha512-AY7sTX2dGi8ripuCpcJLYHOZB2wJ6NnseyK/kK5TfJn/pgboKwuGtz0hkJCVprNWomKa6IpHksm7vLQ4O2E+UA==} 400 | engines: {node: '>=14.0.0'} 401 | dependencies: 402 | '@aws-sdk/property-provider': 3.296.0 403 | '@aws-sdk/shared-ini-file-loader': 3.296.0 404 | '@aws-sdk/types': 3.296.0 405 | tslib: 2.5.0 406 | dev: true 407 | 408 | /@aws-sdk/credential-provider-sso/3.296.0: 409 | resolution: {integrity: sha512-zPFHDX/niXfcQrKQhmBv1XPYEe4b7im4vRKrzjYXgDRpG2M3LP0KaWIwN6Ap+GRYBNBthen86vhTlmKGzyU5YA==} 410 | engines: {node: '>=14.0.0'} 411 | dependencies: 412 | '@aws-sdk/client-sso': 3.296.0 413 | '@aws-sdk/property-provider': 3.296.0 414 | '@aws-sdk/shared-ini-file-loader': 3.296.0 415 | '@aws-sdk/token-providers': 3.296.0 416 | '@aws-sdk/types': 3.296.0 417 | tslib: 2.5.0 418 | transitivePeerDependencies: 419 | - aws-crt 420 | dev: true 421 | 422 | /@aws-sdk/credential-provider-web-identity/3.296.0: 423 | resolution: {integrity: sha512-Rl6Ohoekxe+pccA55XXQDW5wApbg3rGWr6FkmPRcg7Ld6Vfe+HL8OtfsFf83/0eoFerevbif+00BdknXWT05LA==} 424 | engines: {node: '>=14.0.0'} 425 | dependencies: 426 | '@aws-sdk/property-provider': 3.296.0 427 | '@aws-sdk/types': 3.296.0 428 | tslib: 2.5.0 429 | dev: true 430 | 431 | /@aws-sdk/eventstream-codec/3.296.0: 432 | resolution: {integrity: sha512-BtmUc1f4vmYykfpYwbez+SV9CnnnUlzjsvoBu88dOYJwYh+47+84bY+t8yDOGtPR5+CGeTsXLITVxAAQB+MD8Q==} 433 | dependencies: 434 | '@aws-crypto/crc32': 3.0.0 435 | '@aws-sdk/types': 3.296.0 436 | '@aws-sdk/util-hex-encoding': 3.295.0 437 | tslib: 2.5.0 438 | dev: true 439 | 440 | /@aws-sdk/eventstream-serde-browser/3.296.0: 441 | resolution: {integrity: sha512-/8+CK0xlrCPwNj+Y+dOS51n+TJYS9GqWbZbA14tkRJvjEpRWhke69UsON9TA0aW2LsO+Lz+5P9Gjv+1hNqCKGg==} 442 | engines: {node: '>=14.0.0'} 443 | dependencies: 444 | '@aws-sdk/eventstream-serde-universal': 3.296.0 445 | '@aws-sdk/types': 3.296.0 446 | tslib: 2.5.0 447 | dev: true 448 | 449 | /@aws-sdk/eventstream-serde-config-resolver/3.296.0: 450 | resolution: {integrity: sha512-wJXfJg6z05WcHYWyWtzDKQL8mRYQu8ZCZogLGGu7SZuVBqSVTCLwyPt4JpKkQ6Aw7CqP7LHR77EGCpRHLs2xDQ==} 451 | engines: {node: '>=14.0.0'} 452 | dependencies: 453 | '@aws-sdk/types': 3.296.0 454 | tslib: 2.5.0 455 | dev: true 456 | 457 | /@aws-sdk/eventstream-serde-node/3.296.0: 458 | resolution: {integrity: sha512-Y/2xhce3R3MrPR1sEv6WwpkuHvqj/Tz6EuCExJsPB4kOG8hsMPPKNfTyKEkXVGI+C3JgobAZXj7KzbFe2/HigA==} 459 | engines: {node: '>=14.0.0'} 460 | dependencies: 461 | '@aws-sdk/eventstream-serde-universal': 3.296.0 462 | '@aws-sdk/types': 3.296.0 463 | tslib: 2.5.0 464 | dev: true 465 | 466 | /@aws-sdk/eventstream-serde-universal/3.296.0: 467 | resolution: {integrity: sha512-TbHDJN79UORGVUKBPfEVMOJHj8yQyb9ru41dw3aFy7KxeGQxWH4OL07cEJyjTTq8mgQXPIdPjav7PTvOIuE59g==} 468 | engines: {node: '>=14.0.0'} 469 | dependencies: 470 | '@aws-sdk/eventstream-codec': 3.296.0 471 | '@aws-sdk/types': 3.296.0 472 | tslib: 2.5.0 473 | dev: true 474 | 475 | /@aws-sdk/fetch-http-handler/3.296.0: 476 | resolution: {integrity: sha512-wHuKQ+PGKQkYGVuIGscbcbbASl8yIVOSC+QTrZQ4PNsMDvQd9ey2npsmxZk1Z2ULaxY+qYtZCmByyGc8k51TtQ==} 477 | dependencies: 478 | '@aws-sdk/protocol-http': 3.296.0 479 | '@aws-sdk/querystring-builder': 3.296.0 480 | '@aws-sdk/types': 3.296.0 481 | '@aws-sdk/util-base64': 3.295.0 482 | tslib: 2.5.0 483 | dev: true 484 | 485 | /@aws-sdk/hash-blob-browser/3.296.0: 486 | resolution: {integrity: sha512-kJJsO9kNDNQIYzIIAB/vHFRfVrc1KUYcPMtCLVprHQhPkSxxnOlHF5wBTJ98IRKi/eGYxD5QrCzrMKLI95BPKw==} 487 | dependencies: 488 | '@aws-sdk/chunked-blob-reader': 3.295.0 489 | '@aws-sdk/chunked-blob-reader-native': 3.295.0 490 | '@aws-sdk/types': 3.296.0 491 | tslib: 2.5.0 492 | dev: true 493 | 494 | /@aws-sdk/hash-node/3.296.0: 495 | resolution: {integrity: sha512-01Sgxm0NE3rtEznLY8vx1bfNsIeM5Sk5SjY9RXqnvCf9EyaKH9x5FMS/DX/SgDdIYi3aXbTwiwScNVCNBzOIQA==} 496 | engines: {node: '>=14.0.0'} 497 | dependencies: 498 | '@aws-sdk/types': 3.296.0 499 | '@aws-sdk/util-buffer-from': 3.295.0 500 | '@aws-sdk/util-utf8': 3.295.0 501 | tslib: 2.5.0 502 | dev: true 503 | 504 | /@aws-sdk/hash-stream-node/3.296.0: 505 | resolution: {integrity: sha512-EO3nNQiTq5/AQj55E9T10RC7QRnExCIYsvTiKzQPfJEdKiTy8Xga6oQEAGttRABBlP0wTjG4HVnHEEFZ6HbcoQ==} 506 | engines: {node: '>=14.0.0'} 507 | dependencies: 508 | '@aws-sdk/types': 3.296.0 509 | '@aws-sdk/util-utf8': 3.295.0 510 | tslib: 2.5.0 511 | dev: true 512 | 513 | /@aws-sdk/invalid-dependency/3.296.0: 514 | resolution: {integrity: sha512-dmy4fUds0woHGjxwziaSYCLtb/SOfoEeQjW0GFvHj+YGFyY5hJzna4C759Tt8X5obh1evUXlQcH+FL7TS+7tRQ==} 515 | dependencies: 516 | '@aws-sdk/types': 3.296.0 517 | tslib: 2.5.0 518 | dev: true 519 | 520 | /@aws-sdk/is-array-buffer/3.295.0: 521 | resolution: {integrity: sha512-SCIt10cr5dud7hvwveU4wkLjvkGssJ3GrcbHCds2NwI+JHmpcaaNYLAqi305JAuT29T36U5ssTFDSmrrEOcfag==} 522 | engines: {node: '>=14.0.0'} 523 | dependencies: 524 | tslib: 2.5.0 525 | dev: true 526 | 527 | /@aws-sdk/md5-js/3.296.0: 528 | resolution: {integrity: sha512-TvDafbHFcplnf0QqRlkjZ/Dz+dLWBmzBEclRk+h34r4XaIWxvmQ9EtQRo6+6sfAVRtAj2l+i1fm9EjwPMVkb9A==} 529 | dependencies: 530 | '@aws-sdk/types': 3.296.0 531 | '@aws-sdk/util-utf8': 3.295.0 532 | tslib: 2.5.0 533 | dev: true 534 | 535 | /@aws-sdk/middleware-bucket-endpoint/3.296.0: 536 | resolution: {integrity: sha512-Xhzucs5psscjXJW7V6vMrjJWGmej8Xtw8XIKd91RLmbxdmecMy85/mQC3bIqxgTGhC/e3pKqWSp8z/YjV6iPZg==} 537 | engines: {node: '>=14.0.0'} 538 | dependencies: 539 | '@aws-sdk/protocol-http': 3.296.0 540 | '@aws-sdk/types': 3.296.0 541 | '@aws-sdk/util-arn-parser': 3.295.0 542 | '@aws-sdk/util-config-provider': 3.295.0 543 | tslib: 2.5.0 544 | dev: true 545 | 546 | /@aws-sdk/middleware-content-length/3.296.0: 547 | resolution: {integrity: sha512-e7lJm3kkC2pWZdIw23gpMUk1GrpRTBRqhdFfVwyduXw6Wo4nBYv8Z5MOYy3/SlpjE1BDCaPBoZ3O19cO3arHxg==} 548 | engines: {node: '>=14.0.0'} 549 | dependencies: 550 | '@aws-sdk/protocol-http': 3.296.0 551 | '@aws-sdk/types': 3.296.0 552 | tslib: 2.5.0 553 | dev: true 554 | 555 | /@aws-sdk/middleware-endpoint/3.296.0: 556 | resolution: {integrity: sha512-t8gc7FHr6KkFD35eSzv3VEYl2vNqzAHbux5Bn0su6TJbaTxXiQKcf2jZDTAh7LzUyrB1LH39mNN+at7r3Qm/3g==} 557 | engines: {node: '>=14.0.0'} 558 | dependencies: 559 | '@aws-sdk/middleware-serde': 3.296.0 560 | '@aws-sdk/protocol-http': 3.296.0 561 | '@aws-sdk/signature-v4': 3.296.0 562 | '@aws-sdk/types': 3.296.0 563 | '@aws-sdk/url-parser': 3.296.0 564 | '@aws-sdk/util-config-provider': 3.295.0 565 | '@aws-sdk/util-middleware': 3.296.0 566 | tslib: 2.5.0 567 | dev: true 568 | 569 | /@aws-sdk/middleware-expect-continue/3.296.0: 570 | resolution: {integrity: sha512-aVCv9CdAVWt9AlZKQZRweIywkAszRrZUCo8K5bBUJNdD4061DoDqLK/6jmqXmObas0j1wQr/eNzjYbv99MZBCg==} 571 | engines: {node: '>=14.0.0'} 572 | dependencies: 573 | '@aws-sdk/protocol-http': 3.296.0 574 | '@aws-sdk/types': 3.296.0 575 | tslib: 2.5.0 576 | dev: true 577 | 578 | /@aws-sdk/middleware-flexible-checksums/3.296.0: 579 | resolution: {integrity: sha512-F5wVMhLIgA86PKsK/Az7LGIiNVDdZjoSn0+boe6fYW/AIAmgJhPf//500Md0GsKsLOCcPcxiQC43a0hVT2zbew==} 580 | engines: {node: '>=14.0.0'} 581 | dependencies: 582 | '@aws-crypto/crc32': 3.0.0 583 | '@aws-crypto/crc32c': 3.0.0 584 | '@aws-sdk/is-array-buffer': 3.295.0 585 | '@aws-sdk/protocol-http': 3.296.0 586 | '@aws-sdk/types': 3.296.0 587 | '@aws-sdk/util-utf8': 3.295.0 588 | tslib: 2.5.0 589 | dev: true 590 | 591 | /@aws-sdk/middleware-host-header/3.296.0: 592 | resolution: {integrity: sha512-V47dFtfkX5lXWv9GDp71gZVCRws4fEdQ9QF9BQ/2UMSNrYjQLg6mFe7NibH+IJoNOid2FIwWIl94Eos636VGYQ==} 593 | engines: {node: '>=14.0.0'} 594 | dependencies: 595 | '@aws-sdk/protocol-http': 3.296.0 596 | '@aws-sdk/types': 3.296.0 597 | tslib: 2.5.0 598 | dev: true 599 | 600 | /@aws-sdk/middleware-location-constraint/3.296.0: 601 | resolution: {integrity: sha512-KHkWaIrZOtJmV1/WO9KOf7kSK41ngfqts3YIun956NYglKTDKyrBIOPCgmXTT/03odnYsKVT/UfbEIh/v4RxGA==} 602 | engines: {node: '>=14.0.0'} 603 | dependencies: 604 | '@aws-sdk/types': 3.296.0 605 | tslib: 2.5.0 606 | dev: true 607 | 608 | /@aws-sdk/middleware-logger/3.296.0: 609 | resolution: {integrity: sha512-LzfEEFyBR9LXdWwLdtBrmi1vLdzgdJNntEgzqktVF8LwaCyY+9xIE6TGu/2V+9fJHAwECxjOC1eQbNQdAZ0Tmw==} 610 | engines: {node: '>=14.0.0'} 611 | dependencies: 612 | '@aws-sdk/types': 3.296.0 613 | tslib: 2.5.0 614 | dev: true 615 | 616 | /@aws-sdk/middleware-recursion-detection/3.296.0: 617 | resolution: {integrity: sha512-UG7TLDPz9ImQG0uVklHTxE9Us7rTImwN+6el6qZCpoTBuGeXgOkfb0/p8izJyFgY/hMUR4cZqs7IdCDUkxQF3w==} 618 | engines: {node: '>=14.0.0'} 619 | dependencies: 620 | '@aws-sdk/protocol-http': 3.296.0 621 | '@aws-sdk/types': 3.296.0 622 | tslib: 2.5.0 623 | dev: true 624 | 625 | /@aws-sdk/middleware-retry/3.296.0: 626 | resolution: {integrity: sha512-Tz3gDZm5viQg7BG5bF9Cg0qbm4+Ur3a7wcGkj1XHQdzGDYR76gxvU0bfnSNUmWRz3kaVNyISyXSOUygG0cbhbw==} 627 | engines: {node: '>=14.0.0'} 628 | dependencies: 629 | '@aws-sdk/protocol-http': 3.296.0 630 | '@aws-sdk/service-error-classification': 3.296.0 631 | '@aws-sdk/types': 3.296.0 632 | '@aws-sdk/util-middleware': 3.296.0 633 | '@aws-sdk/util-retry': 3.296.0 634 | tslib: 2.5.0 635 | uuid: 8.3.2 636 | dev: true 637 | 638 | /@aws-sdk/middleware-sdk-s3/3.296.0: 639 | resolution: {integrity: sha512-zH4uZKEqumo01wn+dTwrYnvOui9GjDiuBHdECnSjnA0Mkxo/tfMPYzYD7mE8kUlBz7HfQcXeXlyaApj9fPkxvg==} 640 | engines: {node: '>=14.0.0'} 641 | dependencies: 642 | '@aws-sdk/protocol-http': 3.296.0 643 | '@aws-sdk/types': 3.296.0 644 | '@aws-sdk/util-arn-parser': 3.295.0 645 | tslib: 2.5.0 646 | dev: true 647 | 648 | /@aws-sdk/middleware-sdk-sts/3.296.0: 649 | resolution: {integrity: sha512-0EnHtiRzcRcXaF6zEgcRGUtVgX0RqczwlGXjtryHcxiqU/+adqbRuckC7bdMF4Zva6GVPS25XppvGF4M+UzAEw==} 650 | engines: {node: '>=14.0.0'} 651 | dependencies: 652 | '@aws-sdk/middleware-signing': 3.296.0 653 | '@aws-sdk/property-provider': 3.296.0 654 | '@aws-sdk/protocol-http': 3.296.0 655 | '@aws-sdk/signature-v4': 3.296.0 656 | '@aws-sdk/types': 3.296.0 657 | tslib: 2.5.0 658 | dev: true 659 | 660 | /@aws-sdk/middleware-serde/3.296.0: 661 | resolution: {integrity: sha512-xk2PpWAAX758oUTGkGBAncpOr7ddIXisjD2Y2r9DDXuE4JMho2x6zcrVSiYsGIQ6MHZ9XNJKBVDiK9PA4iQWGQ==} 662 | engines: {node: '>=14.0.0'} 663 | dependencies: 664 | '@aws-sdk/types': 3.296.0 665 | tslib: 2.5.0 666 | dev: true 667 | 668 | /@aws-sdk/middleware-signing/3.296.0: 669 | resolution: {integrity: sha512-wyiG+WPDvugGTIPpKchGOdvvpcMZEN2IfP6iK//QAqGXsC6rDm5+SNZ3+elvduZjPUdVA06W0CcFYBAkVz8D7Q==} 670 | engines: {node: '>=14.0.0'} 671 | dependencies: 672 | '@aws-sdk/property-provider': 3.296.0 673 | '@aws-sdk/protocol-http': 3.296.0 674 | '@aws-sdk/signature-v4': 3.296.0 675 | '@aws-sdk/types': 3.296.0 676 | '@aws-sdk/util-middleware': 3.296.0 677 | tslib: 2.5.0 678 | dev: true 679 | 680 | /@aws-sdk/middleware-ssec/3.296.0: 681 | resolution: {integrity: sha512-vcSyXxEXAC9rWzUd7rq2/JxPdt87DKiA+wfiBrpGvFV+bacocIV0TFcpJncgZqMOoP8b6Osd+mW4BjlkwBamtA==} 682 | engines: {node: '>=14.0.0'} 683 | dependencies: 684 | '@aws-sdk/types': 3.296.0 685 | tslib: 2.5.0 686 | dev: true 687 | 688 | /@aws-sdk/middleware-stack/3.296.0: 689 | resolution: {integrity: sha512-Rgo7/mdk9tt4qa9+pzG3AoGNhuj7NmnF5H+3DoPm75h58BYP8hKbKobdPGgI2rZLPtO3PGgmyw/4K4tQJPIZ8g==} 690 | engines: {node: '>=14.0.0'} 691 | dependencies: 692 | tslib: 2.5.0 693 | dev: true 694 | 695 | /@aws-sdk/middleware-user-agent/3.296.0: 696 | resolution: {integrity: sha512-L7jacxSt6gxX1gD3tQtfwHqBDk5rT2wWD3rxBa6rs7f81b9ObgY/sPT2IgRT7JNCVzvKLYFxJaTklDj65mY1SQ==} 697 | engines: {node: '>=14.0.0'} 698 | dependencies: 699 | '@aws-sdk/protocol-http': 3.296.0 700 | '@aws-sdk/types': 3.296.0 701 | '@aws-sdk/util-endpoints': 3.296.0 702 | tslib: 2.5.0 703 | dev: true 704 | 705 | /@aws-sdk/node-config-provider/3.296.0: 706 | resolution: {integrity: sha512-S/tYcuw9ACOWRmRe5oUkmutQ+TApjVs0yDl504DKs74f3p4kRgI/MGWkBiR3mcfThHaxu81z0gkRL2qfW2SDwg==} 707 | engines: {node: '>=14.0.0'} 708 | dependencies: 709 | '@aws-sdk/property-provider': 3.296.0 710 | '@aws-sdk/shared-ini-file-loader': 3.296.0 711 | '@aws-sdk/types': 3.296.0 712 | tslib: 2.5.0 713 | dev: true 714 | 715 | /@aws-sdk/node-http-handler/3.296.0: 716 | resolution: {integrity: sha512-D15jjPqYSNhEq58BwkmIpD3VwqG4bL5acAaNu5wWAI4S4236JlG+nmpi3gEeE25z1KCwtBl7G30fVRgXYJ2CWA==} 717 | engines: {node: '>=14.0.0'} 718 | dependencies: 719 | '@aws-sdk/abort-controller': 3.296.0 720 | '@aws-sdk/protocol-http': 3.296.0 721 | '@aws-sdk/querystring-builder': 3.296.0 722 | '@aws-sdk/types': 3.296.0 723 | tslib: 2.5.0 724 | dev: true 725 | 726 | /@aws-sdk/property-provider/3.296.0: 727 | resolution: {integrity: sha512-kjczxE9Od5LoAKQOmxVWISJ9oPG3aCsB+2+NdI+k9EJFDXUUdMcVV3Skei5uHGgKLMsI6CZy8ezZx6YxOSLSew==} 728 | engines: {node: '>=14.0.0'} 729 | dependencies: 730 | '@aws-sdk/types': 3.296.0 731 | tslib: 2.5.0 732 | dev: true 733 | 734 | /@aws-sdk/protocol-http/3.296.0: 735 | resolution: {integrity: sha512-0U1Z/+tpwdRiSToWo1bpdkbTzjbLugTnd02ATjvK4B7zi363SUGlKfoWgV+v7FU/22CIUI1ZIe7XzXvq5rJfjA==} 736 | engines: {node: '>=14.0.0'} 737 | dependencies: 738 | '@aws-sdk/types': 3.296.0 739 | tslib: 2.5.0 740 | dev: true 741 | 742 | /@aws-sdk/querystring-builder/3.296.0: 743 | resolution: {integrity: sha512-+ZrZdTRaVI1R1xKQNrTwuiRoPateUaJ/DNw/myJpTPt+ZRg0H7LKBGaJYwL4pl5l/z1UM/E1fOttSfSW7GHxfw==} 744 | engines: {node: '>=14.0.0'} 745 | dependencies: 746 | '@aws-sdk/types': 3.296.0 747 | '@aws-sdk/util-uri-escape': 3.295.0 748 | tslib: 2.5.0 749 | dev: true 750 | 751 | /@aws-sdk/querystring-parser/3.296.0: 752 | resolution: {integrity: sha512-nLNZKVQfK42euv7101cE5qfg17YCtGcfccx3B5XSAzvyTROR46kwYqbEvYSsWisbZoRhbQc905gB/5E0U5HDIw==} 753 | engines: {node: '>=14.0.0'} 754 | dependencies: 755 | '@aws-sdk/types': 3.296.0 756 | tslib: 2.5.0 757 | dev: true 758 | 759 | /@aws-sdk/service-error-classification/3.296.0: 760 | resolution: {integrity: sha512-YIsWSQ38e1+FqXz3CMrkKS0JD8OLlHf6I72PJhbfegePpQQFqi9R8OREjP5V7UR9Z972yruv4i96ROH6SCtmoA==} 761 | engines: {node: '>=14.0.0'} 762 | dev: true 763 | 764 | /@aws-sdk/shared-ini-file-loader/3.296.0: 765 | resolution: {integrity: sha512-S31VfdiruN2trayoeB7HifsEB+WXhtfECosj90K903rzfyX+Eo+uUoK9O07UotxJ2gB3MBQ7R8pNnZio3Lb66w==} 766 | engines: {node: '>=14.0.0'} 767 | dependencies: 768 | '@aws-sdk/types': 3.296.0 769 | tslib: 2.5.0 770 | dev: true 771 | 772 | /@aws-sdk/signature-v4-multi-region/3.296.0: 773 | resolution: {integrity: sha512-BNMXS0YJEgflPhO2KxXG4f0iTMOGdyxslDMNGmMWGGQm6bbwtqZ7Y9ZyMQYKfzk3GUPpfGQcaaSNiGfURPOCOg==} 774 | engines: {node: '>=14.0.0'} 775 | peerDependencies: 776 | '@aws-sdk/signature-v4-crt': ^3.118.0 777 | peerDependenciesMeta: 778 | '@aws-sdk/signature-v4-crt': 779 | optional: true 780 | dependencies: 781 | '@aws-sdk/protocol-http': 3.296.0 782 | '@aws-sdk/signature-v4': 3.296.0 783 | '@aws-sdk/types': 3.296.0 784 | '@aws-sdk/util-arn-parser': 3.295.0 785 | tslib: 2.5.0 786 | dev: true 787 | 788 | /@aws-sdk/signature-v4/3.296.0: 789 | resolution: {integrity: sha512-NQyJ/FClty4VmF1WoV4rOkbN0Unn0zevzy8iJrYhqxE3Sc7lySM4Btnsd4Iqelm2dR6l+jNRApGgD8NvoGjGig==} 790 | engines: {node: '>=14.0.0'} 791 | dependencies: 792 | '@aws-sdk/is-array-buffer': 3.295.0 793 | '@aws-sdk/types': 3.296.0 794 | '@aws-sdk/util-hex-encoding': 3.295.0 795 | '@aws-sdk/util-middleware': 3.296.0 796 | '@aws-sdk/util-uri-escape': 3.295.0 797 | '@aws-sdk/util-utf8': 3.295.0 798 | tslib: 2.5.0 799 | dev: true 800 | 801 | /@aws-sdk/smithy-client/3.296.0: 802 | resolution: {integrity: sha512-HEpsLNozGe9XOWouq5A1TFw5KhFodi8tZqYVNEbSpLoRR+EQKf6OCRvKIRkOn7FnnaOasOR1n7S0D51UG6/irw==} 803 | engines: {node: '>=14.0.0'} 804 | dependencies: 805 | '@aws-sdk/middleware-stack': 3.296.0 806 | '@aws-sdk/types': 3.296.0 807 | tslib: 2.5.0 808 | dev: true 809 | 810 | /@aws-sdk/token-providers/3.296.0: 811 | resolution: {integrity: sha512-yC1ku7A5S+o/CLlgbgDB2bx8+Wq43qj8xfohmTuIhpiP2m/NyUiRVv6S6ARONLI6bVeo1T2/BFk5Q9DfE2xzAQ==} 812 | engines: {node: '>=14.0.0'} 813 | dependencies: 814 | '@aws-sdk/client-sso-oidc': 3.296.0 815 | '@aws-sdk/property-provider': 3.296.0 816 | '@aws-sdk/shared-ini-file-loader': 3.296.0 817 | '@aws-sdk/types': 3.296.0 818 | tslib: 2.5.0 819 | transitivePeerDependencies: 820 | - aws-crt 821 | dev: true 822 | 823 | /@aws-sdk/types/3.296.0: 824 | resolution: {integrity: sha512-s0wIac64rrMEo2ioUxP9IarGiiCGmelCspNcoNTPSjGl25QqjhyfQqTeGgS58qJ4fHoQb07qra39930xp1IzJg==} 825 | engines: {node: '>=14.0.0'} 826 | dependencies: 827 | tslib: 2.5.0 828 | dev: true 829 | 830 | /@aws-sdk/url-parser/3.296.0: 831 | resolution: {integrity: sha512-nBgeGF+ziuDSLz+y8UAl6zL2tXxDwh3wqeXFe9ZcR4YW71BWuh+vEqEsaEMutOrfnJacCrYKTs9TkIOW41cEGg==} 832 | dependencies: 833 | '@aws-sdk/querystring-parser': 3.296.0 834 | '@aws-sdk/types': 3.296.0 835 | tslib: 2.5.0 836 | dev: true 837 | 838 | /@aws-sdk/util-arn-parser/3.295.0: 839 | resolution: {integrity: sha512-kSSVymcbjyQQHvCZaTt1teKKW4MSSMPRdPNxSNO1aLsVwxrWdnAggDrpHwFjvPCRUcKtpThepATOz75PfUm9Bg==} 840 | engines: {node: '>=14.0.0'} 841 | dependencies: 842 | tslib: 2.5.0 843 | dev: true 844 | 845 | /@aws-sdk/util-base64/3.295.0: 846 | resolution: {integrity: sha512-z1r40BsBiOTALnzASvLb4qutGwPpL+jH2UKTCV5WJLXZFMzRnpZaRfeZGE8lMJ/i0+jv9H9G1FmVzE8UgB4rhw==} 847 | engines: {node: '>=14.0.0'} 848 | dependencies: 849 | '@aws-sdk/util-buffer-from': 3.295.0 850 | tslib: 2.5.0 851 | dev: true 852 | 853 | /@aws-sdk/util-body-length-browser/3.295.0: 854 | resolution: {integrity: sha512-NbG4/RSHV1VueStPRclSo5zRjNUmcDlNAs29sniZF+YaN0+Ad7hEdu/YgJw39shBfUaurz2Wv0pufU3cxE5Tng==} 855 | dependencies: 856 | tslib: 2.5.0 857 | dev: true 858 | 859 | /@aws-sdk/util-body-length-node/3.295.0: 860 | resolution: {integrity: sha512-dvGf8VBmrT66lM0n6P/h7wnlHS4Atafyivyl8f4TUCMvRdpqryvvrtnX6yYcq3T7VKQmas/2SOlgDvcrhGXaiw==} 861 | engines: {node: '>=14.0.0'} 862 | dependencies: 863 | tslib: 2.5.0 864 | dev: true 865 | 866 | /@aws-sdk/util-buffer-from/3.295.0: 867 | resolution: {integrity: sha512-5ezVEITQnrQKn+CU9qfZHgRp2nrrbX0Clmlm9aiNjAEQEPHY33tWl0t6n8h8yU+IpGiNRMWBVC4aSJaE5NA1mA==} 868 | engines: {node: '>=14.0.0'} 869 | dependencies: 870 | '@aws-sdk/is-array-buffer': 3.295.0 871 | tslib: 2.5.0 872 | dev: true 873 | 874 | /@aws-sdk/util-config-provider/3.295.0: 875 | resolution: {integrity: sha512-/5Dl1aV2yI8YQjqwmg4RTnl/E9NmNsx7HIwBZt+dTcOrM0LMUwczQBFFcLyqCj/qv5y+VsvLoAAA/OiBT7hb3w==} 876 | engines: {node: '>=14.0.0'} 877 | dependencies: 878 | tslib: 2.5.0 879 | dev: true 880 | 881 | /@aws-sdk/util-defaults-mode-browser/3.296.0: 882 | resolution: {integrity: sha512-R+nzc0PuTMaOG3LV4FoS5W7oMAqqr8G1IyI+A4Q5iem6YDMF157qV5h6wpIt3A8n9YfjyssLsAT/WPfyv/M79w==} 883 | engines: {node: '>= 10.0.0'} 884 | dependencies: 885 | '@aws-sdk/property-provider': 3.296.0 886 | '@aws-sdk/types': 3.296.0 887 | bowser: 2.11.0 888 | tslib: 2.5.0 889 | dev: true 890 | 891 | /@aws-sdk/util-defaults-mode-node/3.296.0: 892 | resolution: {integrity: sha512-zsIYynqjBE2xlzpJsT3lb5gy06undSgYq9ziId7QaHFagqtrecHI2ZMcu2tBFcONpu9NPj3nqJB+kJUAnBc8sQ==} 893 | engines: {node: '>= 10.0.0'} 894 | dependencies: 895 | '@aws-sdk/config-resolver': 3.296.0 896 | '@aws-sdk/credential-provider-imds': 3.296.0 897 | '@aws-sdk/node-config-provider': 3.296.0 898 | '@aws-sdk/property-provider': 3.296.0 899 | '@aws-sdk/types': 3.296.0 900 | tslib: 2.5.0 901 | dev: true 902 | 903 | /@aws-sdk/util-endpoints/3.296.0: 904 | resolution: {integrity: sha512-YraGGLJepXM6HCTaqEGTFf8RFRBdJ0C6uG5k0kVhiXmYxBkeupn8J07CVp9jfWqcPYWElAnMGVEZKU1OjRo4HQ==} 905 | engines: {node: '>=14.0.0'} 906 | dependencies: 907 | '@aws-sdk/types': 3.296.0 908 | tslib: 2.5.0 909 | dev: true 910 | 911 | /@aws-sdk/util-hex-encoding/3.295.0: 912 | resolution: {integrity: sha512-XJcoVo41kHzhe28PBm/rqt5mdCp8R6abwiW9ug1dA6FOoPUO8kBUxDv6xaOmA2hfRvd2ocFfBXaUCBqUowkGcQ==} 913 | engines: {node: '>=14.0.0'} 914 | dependencies: 915 | tslib: 2.5.0 916 | dev: true 917 | 918 | /@aws-sdk/util-locate-window/3.295.0: 919 | resolution: {integrity: sha512-d/s+zhUx5Kh4l/ecMP/TBjzp1GR/g89Q4nWH6+wH5WgdHsK+LG+vmsk6mVNuP/8wsCofYG4NBqp5Ulbztbm9QA==} 920 | engines: {node: '>=14.0.0'} 921 | dependencies: 922 | tslib: 2.5.0 923 | dev: true 924 | 925 | /@aws-sdk/util-middleware/3.296.0: 926 | resolution: {integrity: sha512-MNWU+doVuX+mIehEManP6OP+f08T33qQpHoBqKIeKpn3TjZjMHG7ujACTkJiEOHUrnwTov7h0Sm+3OZwk3kh9w==} 927 | engines: {node: '>=14.0.0'} 928 | dependencies: 929 | tslib: 2.5.0 930 | dev: true 931 | 932 | /@aws-sdk/util-retry/3.296.0: 933 | resolution: {integrity: sha512-0mh7SqOMjuJ4vE423SzA/AfCLM68jykbfpEBkTmfqkpjkeQSW+UXHAUdXsMmfzIneiq7go5Z548F868C3cZnwQ==} 934 | engines: {node: '>= 14.0.0'} 935 | dependencies: 936 | '@aws-sdk/service-error-classification': 3.296.0 937 | tslib: 2.5.0 938 | dev: true 939 | 940 | /@aws-sdk/util-stream-browser/3.296.0: 941 | resolution: {integrity: sha512-6L72tvxIImTDtZ0ckUfpPA2cGE2XhawNsjdngWySkwYev5Unqm/ywmfZm1wa52/4bmJwX35hcGPFQ8qgrPVeNQ==} 942 | dependencies: 943 | '@aws-sdk/fetch-http-handler': 3.296.0 944 | '@aws-sdk/types': 3.296.0 945 | '@aws-sdk/util-base64': 3.295.0 946 | '@aws-sdk/util-hex-encoding': 3.295.0 947 | '@aws-sdk/util-utf8': 3.295.0 948 | tslib: 2.5.0 949 | dev: true 950 | 951 | /@aws-sdk/util-stream-node/3.296.0: 952 | resolution: {integrity: sha512-Gva28bJVlkR10Wy1IGB9ZaQo6wCP8tDacrxwSWP/cPBegFf8yUX53LUqIWxI6Fo4GcSI/+Blri51Sni7oldYhg==} 953 | engines: {node: '>=14.0.0'} 954 | dependencies: 955 | '@aws-sdk/node-http-handler': 3.296.0 956 | '@aws-sdk/types': 3.296.0 957 | '@aws-sdk/util-buffer-from': 3.295.0 958 | tslib: 2.5.0 959 | dev: true 960 | 961 | /@aws-sdk/util-uri-escape/3.295.0: 962 | resolution: {integrity: sha512-1H5DcyIoXF8XcPBWf7wzHt0l+TW2EoR8Oq4gsVrPTQkHMTVclC2Yn8EF3gc4arwVBzwLulI9LMBE2L8fexGfTQ==} 963 | engines: {node: '>=14.0.0'} 964 | dependencies: 965 | tslib: 2.5.0 966 | dev: true 967 | 968 | /@aws-sdk/util-user-agent-browser/3.296.0: 969 | resolution: {integrity: sha512-MGGG+09VkF0N+8KEht8NNE6Q7bqmddgqLkUbvzSky0y18UPEZyq9LTC4JZtzDDOzf/swgbq2IQ/5wtB81iouog==} 970 | dependencies: 971 | '@aws-sdk/types': 3.296.0 972 | bowser: 2.11.0 973 | tslib: 2.5.0 974 | dev: true 975 | 976 | /@aws-sdk/util-user-agent-node/3.296.0: 977 | resolution: {integrity: sha512-AMWac8aIBnaa9nxAEpZ752j29a/UQTViRfR5gnCX38ECBKGfOQMpgYnee5HdlMr4GHJj0WkOzQxBtInW4pV58g==} 978 | engines: {node: '>=14.0.0'} 979 | peerDependencies: 980 | aws-crt: '>=1.0.0' 981 | peerDependenciesMeta: 982 | aws-crt: 983 | optional: true 984 | dependencies: 985 | '@aws-sdk/node-config-provider': 3.296.0 986 | '@aws-sdk/types': 3.296.0 987 | tslib: 2.5.0 988 | dev: true 989 | 990 | /@aws-sdk/util-utf8-browser/3.259.0: 991 | resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} 992 | dependencies: 993 | tslib: 2.5.0 994 | dev: true 995 | 996 | /@aws-sdk/util-utf8/3.295.0: 997 | resolution: {integrity: sha512-ITN8v3F63ZkA4sdmCtSbS/mhav4F0MEAiXDAUXtMJLNqVtaVcyQST4i9vNmPpIVthAPAtP0QjyF2tq/Di8bxtQ==} 998 | engines: {node: '>=14.0.0'} 999 | dependencies: 1000 | '@aws-sdk/util-buffer-from': 3.295.0 1001 | tslib: 2.5.0 1002 | dev: true 1003 | 1004 | /@aws-sdk/util-waiter/3.296.0: 1005 | resolution: {integrity: sha512-L57uIC74VyTjAdCH0wQqtvJtwK4+gIT/51K/BJHEqVg6C1pOwgrdT6dHC3q8b+gdOrZ6Ff/vTEfh7FZmVcPPjg==} 1006 | engines: {node: '>=14.0.0'} 1007 | dependencies: 1008 | '@aws-sdk/abort-controller': 3.296.0 1009 | '@aws-sdk/types': 3.296.0 1010 | tslib: 2.5.0 1011 | dev: true 1012 | 1013 | /@aws-sdk/xml-builder/3.295.0: 1014 | resolution: {integrity: sha512-7VX3Due7Ip73yfYErFDHZvhgBohC4IyMTfW49DI4C/LFKFCcAoB888MdevUkB87GoiNaRLeT3ZMZ86IWlSEaow==} 1015 | engines: {node: '>=14.0.0'} 1016 | dependencies: 1017 | tslib: 2.5.0 1018 | dev: true 1019 | 1020 | /@esbuild/android-arm/0.17.12: 1021 | resolution: {integrity: sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==} 1022 | engines: {node: '>=12'} 1023 | cpu: [arm] 1024 | os: [android] 1025 | requiresBuild: true 1026 | dev: true 1027 | optional: true 1028 | 1029 | /@esbuild/android-arm64/0.17.12: 1030 | resolution: {integrity: sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==} 1031 | engines: {node: '>=12'} 1032 | cpu: [arm64] 1033 | os: [android] 1034 | requiresBuild: true 1035 | dev: true 1036 | optional: true 1037 | 1038 | /@esbuild/android-x64/0.17.12: 1039 | resolution: {integrity: sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==} 1040 | engines: {node: '>=12'} 1041 | cpu: [x64] 1042 | os: [android] 1043 | requiresBuild: true 1044 | dev: true 1045 | optional: true 1046 | 1047 | /@esbuild/darwin-arm64/0.17.12: 1048 | resolution: {integrity: sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==} 1049 | engines: {node: '>=12'} 1050 | cpu: [arm64] 1051 | os: [darwin] 1052 | requiresBuild: true 1053 | dev: true 1054 | optional: true 1055 | 1056 | /@esbuild/darwin-x64/0.17.12: 1057 | resolution: {integrity: sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==} 1058 | engines: {node: '>=12'} 1059 | cpu: [x64] 1060 | os: [darwin] 1061 | requiresBuild: true 1062 | dev: true 1063 | optional: true 1064 | 1065 | /@esbuild/freebsd-arm64/0.17.12: 1066 | resolution: {integrity: sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==} 1067 | engines: {node: '>=12'} 1068 | cpu: [arm64] 1069 | os: [freebsd] 1070 | requiresBuild: true 1071 | dev: true 1072 | optional: true 1073 | 1074 | /@esbuild/freebsd-x64/0.17.12: 1075 | resolution: {integrity: sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==} 1076 | engines: {node: '>=12'} 1077 | cpu: [x64] 1078 | os: [freebsd] 1079 | requiresBuild: true 1080 | dev: true 1081 | optional: true 1082 | 1083 | /@esbuild/linux-arm/0.17.12: 1084 | resolution: {integrity: sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==} 1085 | engines: {node: '>=12'} 1086 | cpu: [arm] 1087 | os: [linux] 1088 | requiresBuild: true 1089 | dev: true 1090 | optional: true 1091 | 1092 | /@esbuild/linux-arm64/0.17.12: 1093 | resolution: {integrity: sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==} 1094 | engines: {node: '>=12'} 1095 | cpu: [arm64] 1096 | os: [linux] 1097 | requiresBuild: true 1098 | dev: true 1099 | optional: true 1100 | 1101 | /@esbuild/linux-ia32/0.17.12: 1102 | resolution: {integrity: sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==} 1103 | engines: {node: '>=12'} 1104 | cpu: [ia32] 1105 | os: [linux] 1106 | requiresBuild: true 1107 | dev: true 1108 | optional: true 1109 | 1110 | /@esbuild/linux-loong64/0.17.12: 1111 | resolution: {integrity: sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==} 1112 | engines: {node: '>=12'} 1113 | cpu: [loong64] 1114 | os: [linux] 1115 | requiresBuild: true 1116 | dev: true 1117 | optional: true 1118 | 1119 | /@esbuild/linux-mips64el/0.17.12: 1120 | resolution: {integrity: sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==} 1121 | engines: {node: '>=12'} 1122 | cpu: [mips64el] 1123 | os: [linux] 1124 | requiresBuild: true 1125 | dev: true 1126 | optional: true 1127 | 1128 | /@esbuild/linux-ppc64/0.17.12: 1129 | resolution: {integrity: sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==} 1130 | engines: {node: '>=12'} 1131 | cpu: [ppc64] 1132 | os: [linux] 1133 | requiresBuild: true 1134 | dev: true 1135 | optional: true 1136 | 1137 | /@esbuild/linux-riscv64/0.17.12: 1138 | resolution: {integrity: sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==} 1139 | engines: {node: '>=12'} 1140 | cpu: [riscv64] 1141 | os: [linux] 1142 | requiresBuild: true 1143 | dev: true 1144 | optional: true 1145 | 1146 | /@esbuild/linux-s390x/0.17.12: 1147 | resolution: {integrity: sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==} 1148 | engines: {node: '>=12'} 1149 | cpu: [s390x] 1150 | os: [linux] 1151 | requiresBuild: true 1152 | dev: true 1153 | optional: true 1154 | 1155 | /@esbuild/linux-x64/0.17.12: 1156 | resolution: {integrity: sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==} 1157 | engines: {node: '>=12'} 1158 | cpu: [x64] 1159 | os: [linux] 1160 | requiresBuild: true 1161 | dev: true 1162 | optional: true 1163 | 1164 | /@esbuild/netbsd-x64/0.17.12: 1165 | resolution: {integrity: sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==} 1166 | engines: {node: '>=12'} 1167 | cpu: [x64] 1168 | os: [netbsd] 1169 | requiresBuild: true 1170 | dev: true 1171 | optional: true 1172 | 1173 | /@esbuild/openbsd-x64/0.17.12: 1174 | resolution: {integrity: sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==} 1175 | engines: {node: '>=12'} 1176 | cpu: [x64] 1177 | os: [openbsd] 1178 | requiresBuild: true 1179 | dev: true 1180 | optional: true 1181 | 1182 | /@esbuild/sunos-x64/0.17.12: 1183 | resolution: {integrity: sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==} 1184 | engines: {node: '>=12'} 1185 | cpu: [x64] 1186 | os: [sunos] 1187 | requiresBuild: true 1188 | dev: true 1189 | optional: true 1190 | 1191 | /@esbuild/win32-arm64/0.17.12: 1192 | resolution: {integrity: sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==} 1193 | engines: {node: '>=12'} 1194 | cpu: [arm64] 1195 | os: [win32] 1196 | requiresBuild: true 1197 | dev: true 1198 | optional: true 1199 | 1200 | /@esbuild/win32-ia32/0.17.12: 1201 | resolution: {integrity: sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==} 1202 | engines: {node: '>=12'} 1203 | cpu: [ia32] 1204 | os: [win32] 1205 | requiresBuild: true 1206 | dev: true 1207 | optional: true 1208 | 1209 | /@esbuild/win32-x64/0.17.12: 1210 | resolution: {integrity: sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==} 1211 | engines: {node: '>=12'} 1212 | cpu: [x64] 1213 | os: [win32] 1214 | requiresBuild: true 1215 | dev: true 1216 | optional: true 1217 | 1218 | /@eslint-community/eslint-utils/4.3.0_eslint@8.36.0: 1219 | resolution: {integrity: sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==} 1220 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1221 | peerDependencies: 1222 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 1223 | dependencies: 1224 | eslint: 8.36.0 1225 | eslint-visitor-keys: 3.3.0 1226 | dev: true 1227 | 1228 | /@eslint-community/regexpp/4.4.0: 1229 | resolution: {integrity: sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==} 1230 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 1231 | dev: true 1232 | 1233 | /@eslint/eslintrc/2.0.1: 1234 | resolution: {integrity: sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==} 1235 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1236 | dependencies: 1237 | ajv: 6.12.6 1238 | debug: 4.3.4 1239 | espree: 9.5.0 1240 | globals: 13.20.0 1241 | ignore: 5.2.4 1242 | import-fresh: 3.3.0 1243 | js-yaml: 4.1.0 1244 | minimatch: 3.1.2 1245 | strip-json-comments: 3.1.1 1246 | transitivePeerDependencies: 1247 | - supports-color 1248 | dev: true 1249 | 1250 | /@eslint/js/8.36.0: 1251 | resolution: {integrity: sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==} 1252 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1253 | dev: true 1254 | 1255 | /@humanwhocodes/config-array/0.11.8: 1256 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 1257 | engines: {node: '>=10.10.0'} 1258 | dependencies: 1259 | '@humanwhocodes/object-schema': 1.2.1 1260 | debug: 4.3.4 1261 | minimatch: 3.1.2 1262 | transitivePeerDependencies: 1263 | - supports-color 1264 | dev: true 1265 | 1266 | /@humanwhocodes/module-importer/1.0.1: 1267 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 1268 | engines: {node: '>=12.22'} 1269 | dev: true 1270 | 1271 | /@humanwhocodes/object-schema/1.2.1: 1272 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 1273 | dev: true 1274 | 1275 | /@nodelib/fs.scandir/2.1.5: 1276 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 1277 | engines: {node: '>= 8'} 1278 | dependencies: 1279 | '@nodelib/fs.stat': 2.0.5 1280 | run-parallel: 1.2.0 1281 | dev: true 1282 | 1283 | /@nodelib/fs.stat/2.0.5: 1284 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 1285 | engines: {node: '>= 8'} 1286 | dev: true 1287 | 1288 | /@nodelib/fs.walk/1.2.8: 1289 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 1290 | engines: {node: '>= 8'} 1291 | dependencies: 1292 | '@nodelib/fs.scandir': 2.1.5 1293 | fastq: 1.15.0 1294 | dev: true 1295 | 1296 | /@tsconfig/node18/1.0.1: 1297 | resolution: {integrity: sha512-sNFeK6X2ATlhlvzyH4kKYQlfHXE2f2/wxtB9ClvYXevWpmwkUT7VaSrjIN9E76Qebz8qP5JOJJ9jD3QoD/Z9TA==} 1298 | dev: true 1299 | 1300 | /@types/chai-as-promised/7.1.5: 1301 | resolution: {integrity: sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==} 1302 | dependencies: 1303 | '@types/chai': 4.3.4 1304 | dev: true 1305 | 1306 | /@types/chai/4.3.4: 1307 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 1308 | dev: true 1309 | 1310 | /@types/json-schema/7.0.11: 1311 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 1312 | dev: true 1313 | 1314 | /@types/json5/0.0.29: 1315 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 1316 | dev: true 1317 | 1318 | /@types/mocha/10.0.1: 1319 | resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==} 1320 | dev: true 1321 | 1322 | /@types/node/18.15.5: 1323 | resolution: {integrity: sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==} 1324 | dev: true 1325 | 1326 | /@types/semver/7.3.13: 1327 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} 1328 | dev: true 1329 | 1330 | /@typescript-eslint/eslint-plugin/5.56.0_2hcjazgfnbtq42tcc73br2vup4: 1331 | resolution: {integrity: sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==} 1332 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1333 | peerDependencies: 1334 | '@typescript-eslint/parser': ^5.0.0 1335 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 1336 | typescript: '*' 1337 | peerDependenciesMeta: 1338 | typescript: 1339 | optional: true 1340 | dependencies: 1341 | '@eslint-community/regexpp': 4.4.0 1342 | '@typescript-eslint/parser': 5.56.0_j4766f7ecgqbon3u7zlxn5zszu 1343 | '@typescript-eslint/scope-manager': 5.56.0 1344 | '@typescript-eslint/type-utils': 5.56.0_j4766f7ecgqbon3u7zlxn5zszu 1345 | '@typescript-eslint/utils': 5.56.0_j4766f7ecgqbon3u7zlxn5zszu 1346 | debug: 4.3.4 1347 | eslint: 8.36.0 1348 | grapheme-splitter: 1.0.4 1349 | ignore: 5.2.4 1350 | natural-compare-lite: 1.4.0 1351 | semver: 7.3.8 1352 | tsutils: 3.21.0_typescript@5.0.2 1353 | typescript: 5.0.2 1354 | transitivePeerDependencies: 1355 | - supports-color 1356 | dev: true 1357 | 1358 | /@typescript-eslint/parser/5.56.0_j4766f7ecgqbon3u7zlxn5zszu: 1359 | resolution: {integrity: sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==} 1360 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1361 | peerDependencies: 1362 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 1363 | typescript: '*' 1364 | peerDependenciesMeta: 1365 | typescript: 1366 | optional: true 1367 | dependencies: 1368 | '@typescript-eslint/scope-manager': 5.56.0 1369 | '@typescript-eslint/types': 5.56.0 1370 | '@typescript-eslint/typescript-estree': 5.56.0_typescript@5.0.2 1371 | debug: 4.3.4 1372 | eslint: 8.36.0 1373 | typescript: 5.0.2 1374 | transitivePeerDependencies: 1375 | - supports-color 1376 | dev: true 1377 | 1378 | /@typescript-eslint/scope-manager/5.56.0: 1379 | resolution: {integrity: sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==} 1380 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1381 | dependencies: 1382 | '@typescript-eslint/types': 5.56.0 1383 | '@typescript-eslint/visitor-keys': 5.56.0 1384 | dev: true 1385 | 1386 | /@typescript-eslint/type-utils/5.56.0_j4766f7ecgqbon3u7zlxn5zszu: 1387 | resolution: {integrity: sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==} 1388 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1389 | peerDependencies: 1390 | eslint: '*' 1391 | typescript: '*' 1392 | peerDependenciesMeta: 1393 | typescript: 1394 | optional: true 1395 | dependencies: 1396 | '@typescript-eslint/typescript-estree': 5.56.0_typescript@5.0.2 1397 | '@typescript-eslint/utils': 5.56.0_j4766f7ecgqbon3u7zlxn5zszu 1398 | debug: 4.3.4 1399 | eslint: 8.36.0 1400 | tsutils: 3.21.0_typescript@5.0.2 1401 | typescript: 5.0.2 1402 | transitivePeerDependencies: 1403 | - supports-color 1404 | dev: true 1405 | 1406 | /@typescript-eslint/types/5.56.0: 1407 | resolution: {integrity: sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==} 1408 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1409 | dev: true 1410 | 1411 | /@typescript-eslint/typescript-estree/5.56.0_typescript@5.0.2: 1412 | resolution: {integrity: sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==} 1413 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1414 | peerDependencies: 1415 | typescript: '*' 1416 | peerDependenciesMeta: 1417 | typescript: 1418 | optional: true 1419 | dependencies: 1420 | '@typescript-eslint/types': 5.56.0 1421 | '@typescript-eslint/visitor-keys': 5.56.0 1422 | debug: 4.3.4 1423 | globby: 11.1.0 1424 | is-glob: 4.0.3 1425 | semver: 7.3.8 1426 | tsutils: 3.21.0_typescript@5.0.2 1427 | typescript: 5.0.2 1428 | transitivePeerDependencies: 1429 | - supports-color 1430 | dev: true 1431 | 1432 | /@typescript-eslint/utils/5.56.0_j4766f7ecgqbon3u7zlxn5zszu: 1433 | resolution: {integrity: sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==} 1434 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1435 | peerDependencies: 1436 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 1437 | dependencies: 1438 | '@eslint-community/eslint-utils': 4.3.0_eslint@8.36.0 1439 | '@types/json-schema': 7.0.11 1440 | '@types/semver': 7.3.13 1441 | '@typescript-eslint/scope-manager': 5.56.0 1442 | '@typescript-eslint/types': 5.56.0 1443 | '@typescript-eslint/typescript-estree': 5.56.0_typescript@5.0.2 1444 | eslint: 8.36.0 1445 | eslint-scope: 5.1.1 1446 | semver: 7.3.8 1447 | transitivePeerDependencies: 1448 | - supports-color 1449 | - typescript 1450 | dev: true 1451 | 1452 | /@typescript-eslint/visitor-keys/5.56.0: 1453 | resolution: {integrity: sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==} 1454 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1455 | dependencies: 1456 | '@typescript-eslint/types': 5.56.0 1457 | eslint-visitor-keys: 3.3.0 1458 | dev: true 1459 | 1460 | /acorn-jsx/5.3.2_acorn@8.8.2: 1461 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1462 | peerDependencies: 1463 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1464 | dependencies: 1465 | acorn: 8.8.2 1466 | dev: true 1467 | 1468 | /acorn/8.8.2: 1469 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 1470 | engines: {node: '>=0.4.0'} 1471 | hasBin: true 1472 | dev: true 1473 | 1474 | /ajv/6.12.6: 1475 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1476 | dependencies: 1477 | fast-deep-equal: 3.1.3 1478 | fast-json-stable-stringify: 2.1.0 1479 | json-schema-traverse: 0.4.1 1480 | uri-js: 4.4.1 1481 | dev: true 1482 | 1483 | /ansi-colors/4.1.1: 1484 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} 1485 | engines: {node: '>=6'} 1486 | dev: true 1487 | 1488 | /ansi-regex/5.0.1: 1489 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1490 | engines: {node: '>=8'} 1491 | dev: true 1492 | 1493 | /ansi-styles/4.3.0: 1494 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1495 | engines: {node: '>=8'} 1496 | dependencies: 1497 | color-convert: 2.0.1 1498 | dev: true 1499 | 1500 | /any-promise/1.3.0: 1501 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 1502 | dev: true 1503 | 1504 | /anymatch/3.1.3: 1505 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1506 | engines: {node: '>= 8'} 1507 | dependencies: 1508 | normalize-path: 3.0.0 1509 | picomatch: 2.3.1 1510 | dev: true 1511 | 1512 | /argparse/2.0.1: 1513 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1514 | dev: true 1515 | 1516 | /array-buffer-byte-length/1.0.0: 1517 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 1518 | dependencies: 1519 | call-bind: 1.0.2 1520 | is-array-buffer: 3.0.2 1521 | dev: true 1522 | 1523 | /array-includes/3.1.6: 1524 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} 1525 | engines: {node: '>= 0.4'} 1526 | dependencies: 1527 | call-bind: 1.0.2 1528 | define-properties: 1.2.0 1529 | es-abstract: 1.21.2 1530 | get-intrinsic: 1.2.0 1531 | is-string: 1.0.7 1532 | dev: true 1533 | 1534 | /array-union/2.1.0: 1535 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1536 | engines: {node: '>=8'} 1537 | dev: true 1538 | 1539 | /array.prototype.flat/1.3.1: 1540 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} 1541 | engines: {node: '>= 0.4'} 1542 | dependencies: 1543 | call-bind: 1.0.2 1544 | define-properties: 1.2.0 1545 | es-abstract: 1.21.2 1546 | es-shim-unscopables: 1.0.0 1547 | dev: true 1548 | 1549 | /array.prototype.flatmap/1.3.1: 1550 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} 1551 | engines: {node: '>= 0.4'} 1552 | dependencies: 1553 | call-bind: 1.0.2 1554 | define-properties: 1.2.0 1555 | es-abstract: 1.21.2 1556 | es-shim-unscopables: 1.0.0 1557 | dev: true 1558 | 1559 | /assertion-error/1.1.0: 1560 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 1561 | dev: true 1562 | 1563 | /available-typed-arrays/1.0.5: 1564 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 1565 | engines: {node: '>= 0.4'} 1566 | dev: true 1567 | 1568 | /balanced-match/1.0.2: 1569 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1570 | dev: true 1571 | 1572 | /binary-extensions/2.2.0: 1573 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 1574 | engines: {node: '>=8'} 1575 | dev: true 1576 | 1577 | /bowser/2.11.0: 1578 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 1579 | dev: true 1580 | 1581 | /brace-expansion/1.1.11: 1582 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1583 | dependencies: 1584 | balanced-match: 1.0.2 1585 | concat-map: 0.0.1 1586 | dev: true 1587 | 1588 | /brace-expansion/2.0.1: 1589 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1590 | dependencies: 1591 | balanced-match: 1.0.2 1592 | dev: true 1593 | 1594 | /braces/3.0.2: 1595 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1596 | engines: {node: '>=8'} 1597 | dependencies: 1598 | fill-range: 7.0.1 1599 | dev: true 1600 | 1601 | /browser-stdout/1.3.1: 1602 | resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} 1603 | dev: true 1604 | 1605 | /buffer-from/1.1.2: 1606 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1607 | dev: true 1608 | 1609 | /bundle-require/4.0.1_esbuild@0.17.12: 1610 | resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} 1611 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1612 | peerDependencies: 1613 | esbuild: '>=0.17' 1614 | dependencies: 1615 | esbuild: 0.17.12 1616 | load-tsconfig: 0.2.5 1617 | dev: true 1618 | 1619 | /cac/6.7.14: 1620 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1621 | engines: {node: '>=8'} 1622 | dev: true 1623 | 1624 | /call-bind/1.0.2: 1625 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 1626 | dependencies: 1627 | function-bind: 1.1.1 1628 | get-intrinsic: 1.2.0 1629 | dev: true 1630 | 1631 | /callsites/3.1.0: 1632 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1633 | engines: {node: '>=6'} 1634 | dev: true 1635 | 1636 | /camelcase/6.3.0: 1637 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 1638 | engines: {node: '>=10'} 1639 | dev: true 1640 | 1641 | /chai-as-promised/7.1.1_chai@4.3.7: 1642 | resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} 1643 | peerDependencies: 1644 | chai: '>= 2.1.2 < 5' 1645 | dependencies: 1646 | chai: 4.3.7 1647 | check-error: 1.0.2 1648 | dev: true 1649 | 1650 | /chai/4.3.7: 1651 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 1652 | engines: {node: '>=4'} 1653 | dependencies: 1654 | assertion-error: 1.1.0 1655 | check-error: 1.0.2 1656 | deep-eql: 4.1.3 1657 | get-func-name: 2.0.0 1658 | loupe: 2.3.6 1659 | pathval: 1.1.1 1660 | type-detect: 4.0.8 1661 | dev: true 1662 | 1663 | /chalk/4.1.2: 1664 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1665 | engines: {node: '>=10'} 1666 | dependencies: 1667 | ansi-styles: 4.3.0 1668 | supports-color: 7.2.0 1669 | dev: true 1670 | 1671 | /check-error/1.0.2: 1672 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 1673 | dev: true 1674 | 1675 | /chokidar/3.5.3: 1676 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 1677 | engines: {node: '>= 8.10.0'} 1678 | dependencies: 1679 | anymatch: 3.1.3 1680 | braces: 3.0.2 1681 | glob-parent: 5.1.2 1682 | is-binary-path: 2.1.0 1683 | is-glob: 4.0.3 1684 | normalize-path: 3.0.0 1685 | readdirp: 3.6.0 1686 | optionalDependencies: 1687 | fsevents: 2.3.2 1688 | dev: true 1689 | 1690 | /cliui/7.0.4: 1691 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 1692 | dependencies: 1693 | string-width: 4.2.3 1694 | strip-ansi: 6.0.1 1695 | wrap-ansi: 7.0.0 1696 | dev: true 1697 | 1698 | /color-convert/2.0.1: 1699 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1700 | engines: {node: '>=7.0.0'} 1701 | dependencies: 1702 | color-name: 1.1.4 1703 | dev: true 1704 | 1705 | /color-name/1.1.4: 1706 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1707 | dev: true 1708 | 1709 | /commander/4.1.1: 1710 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1711 | engines: {node: '>= 6'} 1712 | dev: true 1713 | 1714 | /concat-map/0.0.1: 1715 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1716 | dev: true 1717 | 1718 | /cross-spawn/7.0.3: 1719 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1720 | engines: {node: '>= 8'} 1721 | dependencies: 1722 | path-key: 3.1.1 1723 | shebang-command: 2.0.0 1724 | which: 2.0.2 1725 | dev: true 1726 | 1727 | /debug/3.2.7: 1728 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1729 | peerDependencies: 1730 | supports-color: '*' 1731 | peerDependenciesMeta: 1732 | supports-color: 1733 | optional: true 1734 | dependencies: 1735 | ms: 2.1.3 1736 | dev: true 1737 | 1738 | /debug/4.3.4: 1739 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1740 | engines: {node: '>=6.0'} 1741 | peerDependencies: 1742 | supports-color: '*' 1743 | peerDependenciesMeta: 1744 | supports-color: 1745 | optional: true 1746 | dependencies: 1747 | ms: 2.1.2 1748 | dev: true 1749 | 1750 | /debug/4.3.4_supports-color@8.1.1: 1751 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1752 | engines: {node: '>=6.0'} 1753 | peerDependencies: 1754 | supports-color: '*' 1755 | peerDependenciesMeta: 1756 | supports-color: 1757 | optional: true 1758 | dependencies: 1759 | ms: 2.1.2 1760 | supports-color: 8.1.1 1761 | dev: true 1762 | 1763 | /decamelize/4.0.0: 1764 | resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} 1765 | engines: {node: '>=10'} 1766 | dev: true 1767 | 1768 | /deep-eql/4.1.3: 1769 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1770 | engines: {node: '>=6'} 1771 | dependencies: 1772 | type-detect: 4.0.8 1773 | dev: true 1774 | 1775 | /deep-is/0.1.4: 1776 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1777 | dev: true 1778 | 1779 | /define-properties/1.2.0: 1780 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 1781 | engines: {node: '>= 0.4'} 1782 | dependencies: 1783 | has-property-descriptors: 1.0.0 1784 | object-keys: 1.1.1 1785 | dev: true 1786 | 1787 | /diff/5.0.0: 1788 | resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} 1789 | engines: {node: '>=0.3.1'} 1790 | dev: true 1791 | 1792 | /dir-glob/3.0.1: 1793 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1794 | engines: {node: '>=8'} 1795 | dependencies: 1796 | path-type: 4.0.0 1797 | dev: true 1798 | 1799 | /doctrine/2.1.0: 1800 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1801 | engines: {node: '>=0.10.0'} 1802 | dependencies: 1803 | esutils: 2.0.3 1804 | dev: true 1805 | 1806 | /doctrine/3.0.0: 1807 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1808 | engines: {node: '>=6.0.0'} 1809 | dependencies: 1810 | esutils: 2.0.3 1811 | dev: true 1812 | 1813 | /emoji-regex/8.0.0: 1814 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1815 | dev: true 1816 | 1817 | /es-abstract/1.21.2: 1818 | resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} 1819 | engines: {node: '>= 0.4'} 1820 | dependencies: 1821 | array-buffer-byte-length: 1.0.0 1822 | available-typed-arrays: 1.0.5 1823 | call-bind: 1.0.2 1824 | es-set-tostringtag: 2.0.1 1825 | es-to-primitive: 1.2.1 1826 | function.prototype.name: 1.1.5 1827 | get-intrinsic: 1.2.0 1828 | get-symbol-description: 1.0.0 1829 | globalthis: 1.0.3 1830 | gopd: 1.0.1 1831 | has: 1.0.3 1832 | has-property-descriptors: 1.0.0 1833 | has-proto: 1.0.1 1834 | has-symbols: 1.0.3 1835 | internal-slot: 1.0.5 1836 | is-array-buffer: 3.0.2 1837 | is-callable: 1.2.7 1838 | is-negative-zero: 2.0.2 1839 | is-regex: 1.1.4 1840 | is-shared-array-buffer: 1.0.2 1841 | is-string: 1.0.7 1842 | is-typed-array: 1.1.10 1843 | is-weakref: 1.0.2 1844 | object-inspect: 1.12.3 1845 | object-keys: 1.1.1 1846 | object.assign: 4.1.4 1847 | regexp.prototype.flags: 1.4.3 1848 | safe-regex-test: 1.0.0 1849 | string.prototype.trim: 1.2.7 1850 | string.prototype.trimend: 1.0.6 1851 | string.prototype.trimstart: 1.0.6 1852 | typed-array-length: 1.0.4 1853 | unbox-primitive: 1.0.2 1854 | which-typed-array: 1.1.9 1855 | dev: true 1856 | 1857 | /es-set-tostringtag/2.0.1: 1858 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 1859 | engines: {node: '>= 0.4'} 1860 | dependencies: 1861 | get-intrinsic: 1.2.0 1862 | has: 1.0.3 1863 | has-tostringtag: 1.0.0 1864 | dev: true 1865 | 1866 | /es-shim-unscopables/1.0.0: 1867 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 1868 | dependencies: 1869 | has: 1.0.3 1870 | dev: true 1871 | 1872 | /es-to-primitive/1.2.1: 1873 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1874 | engines: {node: '>= 0.4'} 1875 | dependencies: 1876 | is-callable: 1.2.7 1877 | is-date-object: 1.0.5 1878 | is-symbol: 1.0.4 1879 | dev: true 1880 | 1881 | /esbuild-runner/2.2.2_esbuild@0.17.12: 1882 | resolution: {integrity: sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==} 1883 | hasBin: true 1884 | peerDependencies: 1885 | esbuild: '*' 1886 | dependencies: 1887 | esbuild: 0.17.12 1888 | source-map-support: 0.5.21 1889 | tslib: 2.4.0 1890 | dev: true 1891 | 1892 | /esbuild/0.17.12: 1893 | resolution: {integrity: sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==} 1894 | engines: {node: '>=12'} 1895 | hasBin: true 1896 | requiresBuild: true 1897 | optionalDependencies: 1898 | '@esbuild/android-arm': 0.17.12 1899 | '@esbuild/android-arm64': 0.17.12 1900 | '@esbuild/android-x64': 0.17.12 1901 | '@esbuild/darwin-arm64': 0.17.12 1902 | '@esbuild/darwin-x64': 0.17.12 1903 | '@esbuild/freebsd-arm64': 0.17.12 1904 | '@esbuild/freebsd-x64': 0.17.12 1905 | '@esbuild/linux-arm': 0.17.12 1906 | '@esbuild/linux-arm64': 0.17.12 1907 | '@esbuild/linux-ia32': 0.17.12 1908 | '@esbuild/linux-loong64': 0.17.12 1909 | '@esbuild/linux-mips64el': 0.17.12 1910 | '@esbuild/linux-ppc64': 0.17.12 1911 | '@esbuild/linux-riscv64': 0.17.12 1912 | '@esbuild/linux-s390x': 0.17.12 1913 | '@esbuild/linux-x64': 0.17.12 1914 | '@esbuild/netbsd-x64': 0.17.12 1915 | '@esbuild/openbsd-x64': 0.17.12 1916 | '@esbuild/sunos-x64': 0.17.12 1917 | '@esbuild/win32-arm64': 0.17.12 1918 | '@esbuild/win32-ia32': 0.17.12 1919 | '@esbuild/win32-x64': 0.17.12 1920 | dev: true 1921 | 1922 | /escalade/3.1.1: 1923 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1924 | engines: {node: '>=6'} 1925 | dev: true 1926 | 1927 | /escape-string-regexp/4.0.0: 1928 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1929 | engines: {node: '>=10'} 1930 | dev: true 1931 | 1932 | /eslint-config-prettier/8.8.0_eslint@8.36.0: 1933 | resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} 1934 | hasBin: true 1935 | peerDependencies: 1936 | eslint: '>=7.0.0' 1937 | dependencies: 1938 | eslint: 8.36.0 1939 | dev: true 1940 | 1941 | /eslint-import-resolver-node/0.3.7: 1942 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} 1943 | dependencies: 1944 | debug: 3.2.7 1945 | is-core-module: 2.11.0 1946 | resolve: 1.22.1 1947 | transitivePeerDependencies: 1948 | - supports-color 1949 | dev: true 1950 | 1951 | /eslint-module-utils/2.7.4_tf7h2azriypc3gaglz256o6pea: 1952 | resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} 1953 | engines: {node: '>=4'} 1954 | peerDependencies: 1955 | '@typescript-eslint/parser': '*' 1956 | eslint: '*' 1957 | eslint-import-resolver-node: '*' 1958 | eslint-import-resolver-typescript: '*' 1959 | eslint-import-resolver-webpack: '*' 1960 | peerDependenciesMeta: 1961 | '@typescript-eslint/parser': 1962 | optional: true 1963 | eslint: 1964 | optional: true 1965 | eslint-import-resolver-node: 1966 | optional: true 1967 | eslint-import-resolver-typescript: 1968 | optional: true 1969 | eslint-import-resolver-webpack: 1970 | optional: true 1971 | dependencies: 1972 | '@typescript-eslint/parser': 5.56.0_j4766f7ecgqbon3u7zlxn5zszu 1973 | debug: 3.2.7 1974 | eslint: 8.36.0 1975 | eslint-import-resolver-node: 0.3.7 1976 | transitivePeerDependencies: 1977 | - supports-color 1978 | dev: true 1979 | 1980 | /eslint-plugin-import/2.27.5_cnkxirszkzb4o6ts7gbclno24e: 1981 | resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} 1982 | engines: {node: '>=4'} 1983 | peerDependencies: 1984 | '@typescript-eslint/parser': '*' 1985 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1986 | peerDependenciesMeta: 1987 | '@typescript-eslint/parser': 1988 | optional: true 1989 | dependencies: 1990 | '@typescript-eslint/parser': 5.56.0_j4766f7ecgqbon3u7zlxn5zszu 1991 | array-includes: 3.1.6 1992 | array.prototype.flat: 1.3.1 1993 | array.prototype.flatmap: 1.3.1 1994 | debug: 3.2.7 1995 | doctrine: 2.1.0 1996 | eslint: 8.36.0 1997 | eslint-import-resolver-node: 0.3.7 1998 | eslint-module-utils: 2.7.4_tf7h2azriypc3gaglz256o6pea 1999 | has: 1.0.3 2000 | is-core-module: 2.11.0 2001 | is-glob: 4.0.3 2002 | minimatch: 3.1.2 2003 | object.values: 1.1.6 2004 | resolve: 1.22.1 2005 | semver: 6.3.0 2006 | tsconfig-paths: 3.14.2 2007 | transitivePeerDependencies: 2008 | - eslint-import-resolver-typescript 2009 | - eslint-import-resolver-webpack 2010 | - supports-color 2011 | dev: true 2012 | 2013 | /eslint-plugin-prettier/4.2.1_ose2zoovovx4ulolhifz3tfzx4: 2014 | resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} 2015 | engines: {node: '>=12.0.0'} 2016 | peerDependencies: 2017 | eslint: '>=7.28.0' 2018 | eslint-config-prettier: '*' 2019 | prettier: '>=2.0.0' 2020 | peerDependenciesMeta: 2021 | eslint-config-prettier: 2022 | optional: true 2023 | dependencies: 2024 | eslint: 8.36.0 2025 | eslint-config-prettier: 8.8.0_eslint@8.36.0 2026 | prettier: 2.8.6 2027 | prettier-linter-helpers: 1.0.0 2028 | dev: true 2029 | 2030 | /eslint-scope/5.1.1: 2031 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 2032 | engines: {node: '>=8.0.0'} 2033 | dependencies: 2034 | esrecurse: 4.3.0 2035 | estraverse: 4.3.0 2036 | dev: true 2037 | 2038 | /eslint-scope/7.1.1: 2039 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 2040 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2041 | dependencies: 2042 | esrecurse: 4.3.0 2043 | estraverse: 5.3.0 2044 | dev: true 2045 | 2046 | /eslint-visitor-keys/3.3.0: 2047 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 2048 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2049 | dev: true 2050 | 2051 | /eslint/8.36.0: 2052 | resolution: {integrity: sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==} 2053 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2054 | hasBin: true 2055 | dependencies: 2056 | '@eslint-community/eslint-utils': 4.3.0_eslint@8.36.0 2057 | '@eslint-community/regexpp': 4.4.0 2058 | '@eslint/eslintrc': 2.0.1 2059 | '@eslint/js': 8.36.0 2060 | '@humanwhocodes/config-array': 0.11.8 2061 | '@humanwhocodes/module-importer': 1.0.1 2062 | '@nodelib/fs.walk': 1.2.8 2063 | ajv: 6.12.6 2064 | chalk: 4.1.2 2065 | cross-spawn: 7.0.3 2066 | debug: 4.3.4 2067 | doctrine: 3.0.0 2068 | escape-string-regexp: 4.0.0 2069 | eslint-scope: 7.1.1 2070 | eslint-visitor-keys: 3.3.0 2071 | espree: 9.5.0 2072 | esquery: 1.5.0 2073 | esutils: 2.0.3 2074 | fast-deep-equal: 3.1.3 2075 | file-entry-cache: 6.0.1 2076 | find-up: 5.0.0 2077 | glob-parent: 6.0.2 2078 | globals: 13.20.0 2079 | grapheme-splitter: 1.0.4 2080 | ignore: 5.2.4 2081 | import-fresh: 3.3.0 2082 | imurmurhash: 0.1.4 2083 | is-glob: 4.0.3 2084 | is-path-inside: 3.0.3 2085 | js-sdsl: 4.4.0 2086 | js-yaml: 4.1.0 2087 | json-stable-stringify-without-jsonify: 1.0.1 2088 | levn: 0.4.1 2089 | lodash.merge: 4.6.2 2090 | minimatch: 3.1.2 2091 | natural-compare: 1.4.0 2092 | optionator: 0.9.1 2093 | strip-ansi: 6.0.1 2094 | strip-json-comments: 3.1.1 2095 | text-table: 0.2.0 2096 | transitivePeerDependencies: 2097 | - supports-color 2098 | dev: true 2099 | 2100 | /espree/9.5.0: 2101 | resolution: {integrity: sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==} 2102 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2103 | dependencies: 2104 | acorn: 8.8.2 2105 | acorn-jsx: 5.3.2_acorn@8.8.2 2106 | eslint-visitor-keys: 3.3.0 2107 | dev: true 2108 | 2109 | /esquery/1.5.0: 2110 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 2111 | engines: {node: '>=0.10'} 2112 | dependencies: 2113 | estraverse: 5.3.0 2114 | dev: true 2115 | 2116 | /esrecurse/4.3.0: 2117 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 2118 | engines: {node: '>=4.0'} 2119 | dependencies: 2120 | estraverse: 5.3.0 2121 | dev: true 2122 | 2123 | /estraverse/4.3.0: 2124 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 2125 | engines: {node: '>=4.0'} 2126 | dev: true 2127 | 2128 | /estraverse/5.3.0: 2129 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 2130 | engines: {node: '>=4.0'} 2131 | dev: true 2132 | 2133 | /esutils/2.0.3: 2134 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 2135 | engines: {node: '>=0.10.0'} 2136 | dev: true 2137 | 2138 | /execa/5.1.1: 2139 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 2140 | engines: {node: '>=10'} 2141 | dependencies: 2142 | cross-spawn: 7.0.3 2143 | get-stream: 6.0.1 2144 | human-signals: 2.1.0 2145 | is-stream: 2.0.1 2146 | merge-stream: 2.0.0 2147 | npm-run-path: 4.0.1 2148 | onetime: 5.1.2 2149 | signal-exit: 3.0.7 2150 | strip-final-newline: 2.0.0 2151 | dev: true 2152 | 2153 | /fast-deep-equal/3.1.3: 2154 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 2155 | dev: true 2156 | 2157 | /fast-diff/1.2.0: 2158 | resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} 2159 | dev: true 2160 | 2161 | /fast-glob/3.2.12: 2162 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 2163 | engines: {node: '>=8.6.0'} 2164 | dependencies: 2165 | '@nodelib/fs.stat': 2.0.5 2166 | '@nodelib/fs.walk': 1.2.8 2167 | glob-parent: 5.1.2 2168 | merge2: 1.4.1 2169 | micromatch: 4.0.5 2170 | dev: true 2171 | 2172 | /fast-json-stable-stringify/2.1.0: 2173 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 2174 | dev: true 2175 | 2176 | /fast-levenshtein/2.0.6: 2177 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 2178 | dev: true 2179 | 2180 | /fast-xml-parser/4.1.2: 2181 | resolution: {integrity: sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==} 2182 | hasBin: true 2183 | dependencies: 2184 | strnum: 1.0.5 2185 | dev: true 2186 | 2187 | /fastq/1.15.0: 2188 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 2189 | dependencies: 2190 | reusify: 1.0.4 2191 | dev: true 2192 | 2193 | /file-entry-cache/6.0.1: 2194 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 2195 | engines: {node: ^10.12.0 || >=12.0.0} 2196 | dependencies: 2197 | flat-cache: 3.0.4 2198 | dev: true 2199 | 2200 | /fill-range/7.0.1: 2201 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2202 | engines: {node: '>=8'} 2203 | dependencies: 2204 | to-regex-range: 5.0.1 2205 | dev: true 2206 | 2207 | /find-up/5.0.0: 2208 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 2209 | engines: {node: '>=10'} 2210 | dependencies: 2211 | locate-path: 6.0.0 2212 | path-exists: 4.0.0 2213 | dev: true 2214 | 2215 | /flat-cache/3.0.4: 2216 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 2217 | engines: {node: ^10.12.0 || >=12.0.0} 2218 | dependencies: 2219 | flatted: 3.2.7 2220 | rimraf: 3.0.2 2221 | dev: true 2222 | 2223 | /flat/5.0.2: 2224 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 2225 | hasBin: true 2226 | dev: true 2227 | 2228 | /flatted/3.2.7: 2229 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 2230 | dev: true 2231 | 2232 | /for-each/0.3.3: 2233 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 2234 | dependencies: 2235 | is-callable: 1.2.7 2236 | dev: true 2237 | 2238 | /fs.realpath/1.0.0: 2239 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2240 | dev: true 2241 | 2242 | /fsevents/2.3.2: 2243 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 2244 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2245 | os: [darwin] 2246 | requiresBuild: true 2247 | dev: true 2248 | optional: true 2249 | 2250 | /function-bind/1.1.1: 2251 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 2252 | dev: true 2253 | 2254 | /function.prototype.name/1.1.5: 2255 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 2256 | engines: {node: '>= 0.4'} 2257 | dependencies: 2258 | call-bind: 1.0.2 2259 | define-properties: 1.2.0 2260 | es-abstract: 1.21.2 2261 | functions-have-names: 1.2.3 2262 | dev: true 2263 | 2264 | /functions-have-names/1.2.3: 2265 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 2266 | dev: true 2267 | 2268 | /get-caller-file/2.0.5: 2269 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 2270 | engines: {node: 6.* || 8.* || >= 10.*} 2271 | dev: true 2272 | 2273 | /get-func-name/2.0.0: 2274 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 2275 | dev: true 2276 | 2277 | /get-intrinsic/1.2.0: 2278 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 2279 | dependencies: 2280 | function-bind: 1.1.1 2281 | has: 1.0.3 2282 | has-symbols: 1.0.3 2283 | dev: true 2284 | 2285 | /get-stream/6.0.1: 2286 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 2287 | engines: {node: '>=10'} 2288 | dev: true 2289 | 2290 | /get-symbol-description/1.0.0: 2291 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 2292 | engines: {node: '>= 0.4'} 2293 | dependencies: 2294 | call-bind: 1.0.2 2295 | get-intrinsic: 1.2.0 2296 | dev: true 2297 | 2298 | /glob-parent/5.1.2: 2299 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2300 | engines: {node: '>= 6'} 2301 | dependencies: 2302 | is-glob: 4.0.3 2303 | dev: true 2304 | 2305 | /glob-parent/6.0.2: 2306 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2307 | engines: {node: '>=10.13.0'} 2308 | dependencies: 2309 | is-glob: 4.0.3 2310 | dev: true 2311 | 2312 | /glob/7.1.6: 2313 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 2314 | dependencies: 2315 | fs.realpath: 1.0.0 2316 | inflight: 1.0.6 2317 | inherits: 2.0.4 2318 | minimatch: 3.1.2 2319 | once: 1.4.0 2320 | path-is-absolute: 1.0.1 2321 | dev: true 2322 | 2323 | /glob/7.2.0: 2324 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} 2325 | dependencies: 2326 | fs.realpath: 1.0.0 2327 | inflight: 1.0.6 2328 | inherits: 2.0.4 2329 | minimatch: 3.1.2 2330 | once: 1.4.0 2331 | path-is-absolute: 1.0.1 2332 | dev: true 2333 | 2334 | /globals/13.20.0: 2335 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 2336 | engines: {node: '>=8'} 2337 | dependencies: 2338 | type-fest: 0.20.2 2339 | dev: true 2340 | 2341 | /globalthis/1.0.3: 2342 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 2343 | engines: {node: '>= 0.4'} 2344 | dependencies: 2345 | define-properties: 1.2.0 2346 | dev: true 2347 | 2348 | /globby/11.1.0: 2349 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2350 | engines: {node: '>=10'} 2351 | dependencies: 2352 | array-union: 2.1.0 2353 | dir-glob: 3.0.1 2354 | fast-glob: 3.2.12 2355 | ignore: 5.2.4 2356 | merge2: 1.4.1 2357 | slash: 3.0.0 2358 | dev: true 2359 | 2360 | /gopd/1.0.1: 2361 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 2362 | dependencies: 2363 | get-intrinsic: 1.2.0 2364 | dev: true 2365 | 2366 | /grapheme-splitter/1.0.4: 2367 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 2368 | dev: true 2369 | 2370 | /has-bigints/1.0.2: 2371 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 2372 | dev: true 2373 | 2374 | /has-flag/4.0.0: 2375 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2376 | engines: {node: '>=8'} 2377 | dev: true 2378 | 2379 | /has-property-descriptors/1.0.0: 2380 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 2381 | dependencies: 2382 | get-intrinsic: 1.2.0 2383 | dev: true 2384 | 2385 | /has-proto/1.0.1: 2386 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 2387 | engines: {node: '>= 0.4'} 2388 | dev: true 2389 | 2390 | /has-symbols/1.0.3: 2391 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2392 | engines: {node: '>= 0.4'} 2393 | dev: true 2394 | 2395 | /has-tostringtag/1.0.0: 2396 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 2397 | engines: {node: '>= 0.4'} 2398 | dependencies: 2399 | has-symbols: 1.0.3 2400 | dev: true 2401 | 2402 | /has/1.0.3: 2403 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 2404 | engines: {node: '>= 0.4.0'} 2405 | dependencies: 2406 | function-bind: 1.1.1 2407 | dev: true 2408 | 2409 | /he/1.2.0: 2410 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 2411 | hasBin: true 2412 | dev: true 2413 | 2414 | /human-signals/2.1.0: 2415 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 2416 | engines: {node: '>=10.17.0'} 2417 | dev: true 2418 | 2419 | /ignore/5.2.4: 2420 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 2421 | engines: {node: '>= 4'} 2422 | dev: true 2423 | 2424 | /import-fresh/3.3.0: 2425 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2426 | engines: {node: '>=6'} 2427 | dependencies: 2428 | parent-module: 1.0.1 2429 | resolve-from: 4.0.0 2430 | dev: true 2431 | 2432 | /imurmurhash/0.1.4: 2433 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2434 | engines: {node: '>=0.8.19'} 2435 | dev: true 2436 | 2437 | /inflight/1.0.6: 2438 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2439 | dependencies: 2440 | once: 1.4.0 2441 | wrappy: 1.0.2 2442 | dev: true 2443 | 2444 | /inherits/2.0.4: 2445 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2446 | dev: true 2447 | 2448 | /internal-slot/1.0.5: 2449 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 2450 | engines: {node: '>= 0.4'} 2451 | dependencies: 2452 | get-intrinsic: 1.2.0 2453 | has: 1.0.3 2454 | side-channel: 1.0.4 2455 | dev: true 2456 | 2457 | /is-array-buffer/3.0.2: 2458 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 2459 | dependencies: 2460 | call-bind: 1.0.2 2461 | get-intrinsic: 1.2.0 2462 | is-typed-array: 1.1.10 2463 | dev: true 2464 | 2465 | /is-bigint/1.0.4: 2466 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2467 | dependencies: 2468 | has-bigints: 1.0.2 2469 | dev: true 2470 | 2471 | /is-binary-path/2.1.0: 2472 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2473 | engines: {node: '>=8'} 2474 | dependencies: 2475 | binary-extensions: 2.2.0 2476 | dev: true 2477 | 2478 | /is-boolean-object/1.1.2: 2479 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2480 | engines: {node: '>= 0.4'} 2481 | dependencies: 2482 | call-bind: 1.0.2 2483 | has-tostringtag: 1.0.0 2484 | dev: true 2485 | 2486 | /is-callable/1.2.7: 2487 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 2488 | engines: {node: '>= 0.4'} 2489 | dev: true 2490 | 2491 | /is-core-module/2.11.0: 2492 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 2493 | dependencies: 2494 | has: 1.0.3 2495 | dev: true 2496 | 2497 | /is-date-object/1.0.5: 2498 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2499 | engines: {node: '>= 0.4'} 2500 | dependencies: 2501 | has-tostringtag: 1.0.0 2502 | dev: true 2503 | 2504 | /is-extglob/2.1.1: 2505 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2506 | engines: {node: '>=0.10.0'} 2507 | dev: true 2508 | 2509 | /is-fullwidth-code-point/3.0.0: 2510 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2511 | engines: {node: '>=8'} 2512 | dev: true 2513 | 2514 | /is-glob/4.0.3: 2515 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2516 | engines: {node: '>=0.10.0'} 2517 | dependencies: 2518 | is-extglob: 2.1.1 2519 | dev: true 2520 | 2521 | /is-negative-zero/2.0.2: 2522 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 2523 | engines: {node: '>= 0.4'} 2524 | dev: true 2525 | 2526 | /is-number-object/1.0.7: 2527 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2528 | engines: {node: '>= 0.4'} 2529 | dependencies: 2530 | has-tostringtag: 1.0.0 2531 | dev: true 2532 | 2533 | /is-number/7.0.0: 2534 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2535 | engines: {node: '>=0.12.0'} 2536 | dev: true 2537 | 2538 | /is-path-inside/3.0.3: 2539 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2540 | engines: {node: '>=8'} 2541 | dev: true 2542 | 2543 | /is-plain-obj/2.1.0: 2544 | resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} 2545 | engines: {node: '>=8'} 2546 | dev: true 2547 | 2548 | /is-regex/1.1.4: 2549 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2550 | engines: {node: '>= 0.4'} 2551 | dependencies: 2552 | call-bind: 1.0.2 2553 | has-tostringtag: 1.0.0 2554 | dev: true 2555 | 2556 | /is-shared-array-buffer/1.0.2: 2557 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 2558 | dependencies: 2559 | call-bind: 1.0.2 2560 | dev: true 2561 | 2562 | /is-stream/2.0.1: 2563 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 2564 | engines: {node: '>=8'} 2565 | dev: true 2566 | 2567 | /is-string/1.0.7: 2568 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2569 | engines: {node: '>= 0.4'} 2570 | dependencies: 2571 | has-tostringtag: 1.0.0 2572 | dev: true 2573 | 2574 | /is-symbol/1.0.4: 2575 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2576 | engines: {node: '>= 0.4'} 2577 | dependencies: 2578 | has-symbols: 1.0.3 2579 | dev: true 2580 | 2581 | /is-typed-array/1.1.10: 2582 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 2583 | engines: {node: '>= 0.4'} 2584 | dependencies: 2585 | available-typed-arrays: 1.0.5 2586 | call-bind: 1.0.2 2587 | for-each: 0.3.3 2588 | gopd: 1.0.1 2589 | has-tostringtag: 1.0.0 2590 | dev: true 2591 | 2592 | /is-unicode-supported/0.1.0: 2593 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 2594 | engines: {node: '>=10'} 2595 | dev: true 2596 | 2597 | /is-weakref/1.0.2: 2598 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2599 | dependencies: 2600 | call-bind: 1.0.2 2601 | dev: true 2602 | 2603 | /isexe/2.0.0: 2604 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2605 | dev: true 2606 | 2607 | /joycon/3.1.1: 2608 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 2609 | engines: {node: '>=10'} 2610 | dev: true 2611 | 2612 | /js-sdsl/4.4.0: 2613 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} 2614 | dev: true 2615 | 2616 | /js-yaml/4.1.0: 2617 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2618 | hasBin: true 2619 | dependencies: 2620 | argparse: 2.0.1 2621 | dev: true 2622 | 2623 | /json-schema-traverse/0.4.1: 2624 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2625 | dev: true 2626 | 2627 | /json-stable-stringify-without-jsonify/1.0.1: 2628 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2629 | dev: true 2630 | 2631 | /json5/1.0.2: 2632 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 2633 | hasBin: true 2634 | dependencies: 2635 | minimist: 1.2.8 2636 | dev: true 2637 | 2638 | /kysely/0.23.5: 2639 | resolution: {integrity: sha512-TH+b56pVXQq0tsyooYLeNfV11j6ih7D50dyN8tkM0e7ndiUH28Nziojiog3qRFlmEj9XePYdZUrNJ2079Qjdow==} 2640 | engines: {node: '>=14.0.0'} 2641 | dev: true 2642 | 2643 | /levn/0.4.1: 2644 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2645 | engines: {node: '>= 0.8.0'} 2646 | dependencies: 2647 | prelude-ls: 1.2.1 2648 | type-check: 0.4.0 2649 | dev: true 2650 | 2651 | /lilconfig/2.1.0: 2652 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 2653 | engines: {node: '>=10'} 2654 | dev: true 2655 | 2656 | /lines-and-columns/1.2.4: 2657 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2658 | dev: true 2659 | 2660 | /load-tsconfig/0.2.5: 2661 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 2662 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2663 | dev: true 2664 | 2665 | /locate-path/6.0.0: 2666 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2667 | engines: {node: '>=10'} 2668 | dependencies: 2669 | p-locate: 5.0.0 2670 | dev: true 2671 | 2672 | /lodash.merge/4.6.2: 2673 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2674 | dev: true 2675 | 2676 | /lodash.sortby/4.7.0: 2677 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2678 | dev: true 2679 | 2680 | /log-symbols/4.1.0: 2681 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 2682 | engines: {node: '>=10'} 2683 | dependencies: 2684 | chalk: 4.1.2 2685 | is-unicode-supported: 0.1.0 2686 | dev: true 2687 | 2688 | /loupe/2.3.6: 2689 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 2690 | dependencies: 2691 | get-func-name: 2.0.0 2692 | dev: true 2693 | 2694 | /lru-cache/6.0.0: 2695 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2696 | engines: {node: '>=10'} 2697 | dependencies: 2698 | yallist: 4.0.0 2699 | dev: true 2700 | 2701 | /merge-stream/2.0.0: 2702 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2703 | dev: true 2704 | 2705 | /merge2/1.4.1: 2706 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2707 | engines: {node: '>= 8'} 2708 | dev: true 2709 | 2710 | /micromatch/4.0.5: 2711 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2712 | engines: {node: '>=8.6'} 2713 | dependencies: 2714 | braces: 3.0.2 2715 | picomatch: 2.3.1 2716 | dev: true 2717 | 2718 | /mimic-fn/2.1.0: 2719 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2720 | engines: {node: '>=6'} 2721 | dev: true 2722 | 2723 | /minimatch/3.1.2: 2724 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2725 | dependencies: 2726 | brace-expansion: 1.1.11 2727 | dev: true 2728 | 2729 | /minimatch/5.0.1: 2730 | resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} 2731 | engines: {node: '>=10'} 2732 | dependencies: 2733 | brace-expansion: 2.0.1 2734 | dev: true 2735 | 2736 | /minimist/1.2.8: 2737 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2738 | dev: true 2739 | 2740 | /mocha/10.2.0: 2741 | resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} 2742 | engines: {node: '>= 14.0.0'} 2743 | hasBin: true 2744 | dependencies: 2745 | ansi-colors: 4.1.1 2746 | browser-stdout: 1.3.1 2747 | chokidar: 3.5.3 2748 | debug: 4.3.4_supports-color@8.1.1 2749 | diff: 5.0.0 2750 | escape-string-regexp: 4.0.0 2751 | find-up: 5.0.0 2752 | glob: 7.2.0 2753 | he: 1.2.0 2754 | js-yaml: 4.1.0 2755 | log-symbols: 4.1.0 2756 | minimatch: 5.0.1 2757 | ms: 2.1.3 2758 | nanoid: 3.3.3 2759 | serialize-javascript: 6.0.0 2760 | strip-json-comments: 3.1.1 2761 | supports-color: 8.1.1 2762 | workerpool: 6.2.1 2763 | yargs: 16.2.0 2764 | yargs-parser: 20.2.4 2765 | yargs-unparser: 2.0.0 2766 | dev: true 2767 | 2768 | /ms/2.1.2: 2769 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2770 | dev: true 2771 | 2772 | /ms/2.1.3: 2773 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2774 | dev: true 2775 | 2776 | /mz/2.7.0: 2777 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2778 | dependencies: 2779 | any-promise: 1.3.0 2780 | object-assign: 4.1.1 2781 | thenify-all: 1.6.0 2782 | dev: true 2783 | 2784 | /nanoid/3.3.3: 2785 | resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} 2786 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2787 | hasBin: true 2788 | dev: true 2789 | 2790 | /natural-compare-lite/1.4.0: 2791 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 2792 | dev: true 2793 | 2794 | /natural-compare/1.4.0: 2795 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2796 | dev: true 2797 | 2798 | /normalize-path/3.0.0: 2799 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2800 | engines: {node: '>=0.10.0'} 2801 | dev: true 2802 | 2803 | /npm-run-path/4.0.1: 2804 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 2805 | engines: {node: '>=8'} 2806 | dependencies: 2807 | path-key: 3.1.1 2808 | dev: true 2809 | 2810 | /object-assign/4.1.1: 2811 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2812 | engines: {node: '>=0.10.0'} 2813 | dev: true 2814 | 2815 | /object-inspect/1.12.3: 2816 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 2817 | dev: true 2818 | 2819 | /object-keys/1.1.1: 2820 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2821 | engines: {node: '>= 0.4'} 2822 | dev: true 2823 | 2824 | /object.assign/4.1.4: 2825 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2826 | engines: {node: '>= 0.4'} 2827 | dependencies: 2828 | call-bind: 1.0.2 2829 | define-properties: 1.2.0 2830 | has-symbols: 1.0.3 2831 | object-keys: 1.1.1 2832 | dev: true 2833 | 2834 | /object.values/1.1.6: 2835 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} 2836 | engines: {node: '>= 0.4'} 2837 | dependencies: 2838 | call-bind: 1.0.2 2839 | define-properties: 1.2.0 2840 | es-abstract: 1.21.2 2841 | dev: true 2842 | 2843 | /once/1.4.0: 2844 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2845 | dependencies: 2846 | wrappy: 1.0.2 2847 | dev: true 2848 | 2849 | /onetime/5.1.2: 2850 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2851 | engines: {node: '>=6'} 2852 | dependencies: 2853 | mimic-fn: 2.1.0 2854 | dev: true 2855 | 2856 | /optionator/0.9.1: 2857 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 2858 | engines: {node: '>= 0.8.0'} 2859 | dependencies: 2860 | deep-is: 0.1.4 2861 | fast-levenshtein: 2.0.6 2862 | levn: 0.4.1 2863 | prelude-ls: 1.2.1 2864 | type-check: 0.4.0 2865 | word-wrap: 1.2.3 2866 | dev: true 2867 | 2868 | /p-limit/3.1.0: 2869 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2870 | engines: {node: '>=10'} 2871 | dependencies: 2872 | yocto-queue: 0.1.0 2873 | dev: true 2874 | 2875 | /p-locate/5.0.0: 2876 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2877 | engines: {node: '>=10'} 2878 | dependencies: 2879 | p-limit: 3.1.0 2880 | dev: true 2881 | 2882 | /parent-module/1.0.1: 2883 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2884 | engines: {node: '>=6'} 2885 | dependencies: 2886 | callsites: 3.1.0 2887 | dev: true 2888 | 2889 | /path-exists/4.0.0: 2890 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2891 | engines: {node: '>=8'} 2892 | dev: true 2893 | 2894 | /path-is-absolute/1.0.1: 2895 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2896 | engines: {node: '>=0.10.0'} 2897 | dev: true 2898 | 2899 | /path-key/3.1.1: 2900 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2901 | engines: {node: '>=8'} 2902 | dev: true 2903 | 2904 | /path-parse/1.0.7: 2905 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2906 | dev: true 2907 | 2908 | /path-type/4.0.0: 2909 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2910 | engines: {node: '>=8'} 2911 | dev: true 2912 | 2913 | /pathval/1.1.1: 2914 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2915 | dev: true 2916 | 2917 | /picomatch/2.3.1: 2918 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2919 | engines: {node: '>=8.6'} 2920 | dev: true 2921 | 2922 | /pirates/4.0.5: 2923 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 2924 | engines: {node: '>= 6'} 2925 | dev: true 2926 | 2927 | /postcss-load-config/3.1.4: 2928 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 2929 | engines: {node: '>= 10'} 2930 | peerDependencies: 2931 | postcss: '>=8.0.9' 2932 | ts-node: '>=9.0.0' 2933 | peerDependenciesMeta: 2934 | postcss: 2935 | optional: true 2936 | ts-node: 2937 | optional: true 2938 | dependencies: 2939 | lilconfig: 2.1.0 2940 | yaml: 1.10.2 2941 | dev: true 2942 | 2943 | /prelude-ls/1.2.1: 2944 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2945 | engines: {node: '>= 0.8.0'} 2946 | dev: true 2947 | 2948 | /prettier-linter-helpers/1.0.0: 2949 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 2950 | engines: {node: '>=6.0.0'} 2951 | dependencies: 2952 | fast-diff: 1.2.0 2953 | dev: true 2954 | 2955 | /prettier-plugin-organize-imports/3.2.2_tcllvk4eo3otqqvuorc2duftpy: 2956 | resolution: {integrity: sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA==} 2957 | peerDependencies: 2958 | '@volar/vue-language-plugin-pug': ^1.0.4 2959 | '@volar/vue-typescript': ^1.0.4 2960 | prettier: '>=2.0' 2961 | typescript: '>=2.9' 2962 | peerDependenciesMeta: 2963 | '@volar/vue-language-plugin-pug': 2964 | optional: true 2965 | '@volar/vue-typescript': 2966 | optional: true 2967 | dependencies: 2968 | prettier: 2.8.6 2969 | typescript: 5.0.2 2970 | dev: true 2971 | 2972 | /prettier-plugin-pkg/0.17.1_prettier@2.8.6: 2973 | resolution: {integrity: sha512-XPRRMQR5oseJXdfK8kQDj2LCV1UjmTuDlPbbJ8C2WLaATNhdvZLhQO0+NtWnRrQTP+erLR5cVxfcwyqF+3R8SA==} 2974 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 2975 | peerDependencies: 2976 | prettier: ^2.0.0 2977 | dependencies: 2978 | prettier: 2.8.6 2979 | dev: true 2980 | 2981 | /prettier/2.8.6: 2982 | resolution: {integrity: sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==} 2983 | engines: {node: '>=10.13.0'} 2984 | hasBin: true 2985 | dev: true 2986 | 2987 | /punycode/2.3.0: 2988 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 2989 | engines: {node: '>=6'} 2990 | dev: true 2991 | 2992 | /queue-microtask/1.2.3: 2993 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2994 | dev: true 2995 | 2996 | /randombytes/2.1.0: 2997 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 2998 | dependencies: 2999 | safe-buffer: 5.2.1 3000 | dev: true 3001 | 3002 | /readdirp/3.6.0: 3003 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3004 | engines: {node: '>=8.10.0'} 3005 | dependencies: 3006 | picomatch: 2.3.1 3007 | dev: true 3008 | 3009 | /regexp.prototype.flags/1.4.3: 3010 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 3011 | engines: {node: '>= 0.4'} 3012 | dependencies: 3013 | call-bind: 1.0.2 3014 | define-properties: 1.2.0 3015 | functions-have-names: 1.2.3 3016 | dev: true 3017 | 3018 | /require-directory/2.1.1: 3019 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 3020 | engines: {node: '>=0.10.0'} 3021 | dev: true 3022 | 3023 | /resolve-from/4.0.0: 3024 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3025 | engines: {node: '>=4'} 3026 | dev: true 3027 | 3028 | /resolve-from/5.0.0: 3029 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 3030 | engines: {node: '>=8'} 3031 | dev: true 3032 | 3033 | /resolve/1.22.1: 3034 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 3035 | hasBin: true 3036 | dependencies: 3037 | is-core-module: 2.11.0 3038 | path-parse: 1.0.7 3039 | supports-preserve-symlinks-flag: 1.0.0 3040 | dev: true 3041 | 3042 | /reusify/1.0.4: 3043 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3044 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3045 | dev: true 3046 | 3047 | /rimraf/3.0.2: 3048 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3049 | hasBin: true 3050 | dependencies: 3051 | glob: 7.2.0 3052 | dev: true 3053 | 3054 | /rollup/3.20.0: 3055 | resolution: {integrity: sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==} 3056 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 3057 | hasBin: true 3058 | optionalDependencies: 3059 | fsevents: 2.3.2 3060 | dev: true 3061 | 3062 | /run-parallel/1.2.0: 3063 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3064 | dependencies: 3065 | queue-microtask: 1.2.3 3066 | dev: true 3067 | 3068 | /safe-buffer/5.2.1: 3069 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 3070 | dev: true 3071 | 3072 | /safe-regex-test/1.0.0: 3073 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 3074 | dependencies: 3075 | call-bind: 1.0.2 3076 | get-intrinsic: 1.2.0 3077 | is-regex: 1.1.4 3078 | dev: true 3079 | 3080 | /semver/6.3.0: 3081 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 3082 | hasBin: true 3083 | dev: true 3084 | 3085 | /semver/7.3.8: 3086 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 3087 | engines: {node: '>=10'} 3088 | hasBin: true 3089 | dependencies: 3090 | lru-cache: 6.0.0 3091 | dev: true 3092 | 3093 | /serialize-javascript/6.0.0: 3094 | resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} 3095 | dependencies: 3096 | randombytes: 2.1.0 3097 | dev: true 3098 | 3099 | /shebang-command/2.0.0: 3100 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3101 | engines: {node: '>=8'} 3102 | dependencies: 3103 | shebang-regex: 3.0.0 3104 | dev: true 3105 | 3106 | /shebang-regex/3.0.0: 3107 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3108 | engines: {node: '>=8'} 3109 | dev: true 3110 | 3111 | /side-channel/1.0.4: 3112 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 3113 | dependencies: 3114 | call-bind: 1.0.2 3115 | get-intrinsic: 1.2.0 3116 | object-inspect: 1.12.3 3117 | dev: true 3118 | 3119 | /signal-exit/3.0.7: 3120 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3121 | dev: true 3122 | 3123 | /slash/3.0.0: 3124 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3125 | engines: {node: '>=8'} 3126 | dev: true 3127 | 3128 | /source-map-support/0.5.21: 3129 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 3130 | dependencies: 3131 | buffer-from: 1.1.2 3132 | source-map: 0.6.1 3133 | dev: true 3134 | 3135 | /source-map/0.6.1: 3136 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3137 | engines: {node: '>=0.10.0'} 3138 | dev: true 3139 | 3140 | /source-map/0.8.0-beta.0: 3141 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 3142 | engines: {node: '>= 8'} 3143 | dependencies: 3144 | whatwg-url: 7.1.0 3145 | dev: true 3146 | 3147 | /string-width/4.2.3: 3148 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3149 | engines: {node: '>=8'} 3150 | dependencies: 3151 | emoji-regex: 8.0.0 3152 | is-fullwidth-code-point: 3.0.0 3153 | strip-ansi: 6.0.1 3154 | dev: true 3155 | 3156 | /string.prototype.trim/1.2.7: 3157 | resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} 3158 | engines: {node: '>= 0.4'} 3159 | dependencies: 3160 | call-bind: 1.0.2 3161 | define-properties: 1.2.0 3162 | es-abstract: 1.21.2 3163 | dev: true 3164 | 3165 | /string.prototype.trimend/1.0.6: 3166 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 3167 | dependencies: 3168 | call-bind: 1.0.2 3169 | define-properties: 1.2.0 3170 | es-abstract: 1.21.2 3171 | dev: true 3172 | 3173 | /string.prototype.trimstart/1.0.6: 3174 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 3175 | dependencies: 3176 | call-bind: 1.0.2 3177 | define-properties: 1.2.0 3178 | es-abstract: 1.21.2 3179 | dev: true 3180 | 3181 | /strip-ansi/6.0.1: 3182 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3183 | engines: {node: '>=8'} 3184 | dependencies: 3185 | ansi-regex: 5.0.1 3186 | dev: true 3187 | 3188 | /strip-bom/3.0.0: 3189 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3190 | engines: {node: '>=4'} 3191 | dev: true 3192 | 3193 | /strip-final-newline/2.0.0: 3194 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 3195 | engines: {node: '>=6'} 3196 | dev: true 3197 | 3198 | /strip-json-comments/3.1.1: 3199 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3200 | engines: {node: '>=8'} 3201 | dev: true 3202 | 3203 | /strnum/1.0.5: 3204 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 3205 | dev: true 3206 | 3207 | /sucrase/3.30.0: 3208 | resolution: {integrity: sha512-7d37d3vLF0IeH2dzvHpzDNDxUqpbDHJXTJOAnQ8jvMW04o2Czps6mxtaSnKWpE+hUS/eczqfWPUgQTrazKZPnQ==} 3209 | engines: {node: '>=8'} 3210 | hasBin: true 3211 | dependencies: 3212 | commander: 4.1.1 3213 | glob: 7.1.6 3214 | lines-and-columns: 1.2.4 3215 | mz: 2.7.0 3216 | pirates: 4.0.5 3217 | ts-interface-checker: 0.1.13 3218 | dev: true 3219 | 3220 | /supports-color/7.2.0: 3221 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3222 | engines: {node: '>=8'} 3223 | dependencies: 3224 | has-flag: 4.0.0 3225 | dev: true 3226 | 3227 | /supports-color/8.1.1: 3228 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 3229 | engines: {node: '>=10'} 3230 | dependencies: 3231 | has-flag: 4.0.0 3232 | dev: true 3233 | 3234 | /supports-preserve-symlinks-flag/1.0.0: 3235 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3236 | engines: {node: '>= 0.4'} 3237 | dev: true 3238 | 3239 | /text-table/0.2.0: 3240 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3241 | dev: true 3242 | 3243 | /thenify-all/1.6.0: 3244 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3245 | engines: {node: '>=0.8'} 3246 | dependencies: 3247 | thenify: 3.3.1 3248 | dev: true 3249 | 3250 | /thenify/3.3.1: 3251 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3252 | dependencies: 3253 | any-promise: 1.3.0 3254 | dev: true 3255 | 3256 | /to-regex-range/5.0.1: 3257 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3258 | engines: {node: '>=8.0'} 3259 | dependencies: 3260 | is-number: 7.0.0 3261 | dev: true 3262 | 3263 | /tr46/1.0.1: 3264 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 3265 | dependencies: 3266 | punycode: 2.3.0 3267 | dev: true 3268 | 3269 | /tree-kill/1.2.2: 3270 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 3271 | hasBin: true 3272 | dev: true 3273 | 3274 | /ts-interface-checker/0.1.13: 3275 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3276 | dev: true 3277 | 3278 | /tsconfig-paths/3.14.2: 3279 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 3280 | dependencies: 3281 | '@types/json5': 0.0.29 3282 | json5: 1.0.2 3283 | minimist: 1.2.8 3284 | strip-bom: 3.0.0 3285 | dev: true 3286 | 3287 | /tslib/1.14.1: 3288 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 3289 | dev: true 3290 | 3291 | /tslib/2.4.0: 3292 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 3293 | dev: true 3294 | 3295 | /tslib/2.5.0: 3296 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 3297 | dev: true 3298 | 3299 | /tsup/6.7.0_typescript@5.0.2: 3300 | resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} 3301 | engines: {node: '>=14.18'} 3302 | hasBin: true 3303 | peerDependencies: 3304 | '@swc/core': ^1 3305 | postcss: ^8.4.12 3306 | typescript: '>=4.1.0' 3307 | peerDependenciesMeta: 3308 | '@swc/core': 3309 | optional: true 3310 | postcss: 3311 | optional: true 3312 | typescript: 3313 | optional: true 3314 | dependencies: 3315 | bundle-require: 4.0.1_esbuild@0.17.12 3316 | cac: 6.7.14 3317 | chokidar: 3.5.3 3318 | debug: 4.3.4 3319 | esbuild: 0.17.12 3320 | execa: 5.1.1 3321 | globby: 11.1.0 3322 | joycon: 3.1.1 3323 | postcss-load-config: 3.1.4 3324 | resolve-from: 5.0.0 3325 | rollup: 3.20.0 3326 | source-map: 0.8.0-beta.0 3327 | sucrase: 3.30.0 3328 | tree-kill: 1.2.2 3329 | typescript: 5.0.2 3330 | transitivePeerDependencies: 3331 | - supports-color 3332 | - ts-node 3333 | dev: true 3334 | 3335 | /tsutils/3.21.0_typescript@5.0.2: 3336 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 3337 | engines: {node: '>= 6'} 3338 | peerDependencies: 3339 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 3340 | dependencies: 3341 | tslib: 1.14.1 3342 | typescript: 5.0.2 3343 | dev: true 3344 | 3345 | /type-check/0.4.0: 3346 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3347 | engines: {node: '>= 0.8.0'} 3348 | dependencies: 3349 | prelude-ls: 1.2.1 3350 | dev: true 3351 | 3352 | /type-detect/4.0.8: 3353 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3354 | engines: {node: '>=4'} 3355 | dev: true 3356 | 3357 | /type-fest/0.20.2: 3358 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3359 | engines: {node: '>=10'} 3360 | dev: true 3361 | 3362 | /typed-array-length/1.0.4: 3363 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 3364 | dependencies: 3365 | call-bind: 1.0.2 3366 | for-each: 0.3.3 3367 | is-typed-array: 1.1.10 3368 | dev: true 3369 | 3370 | /typescript/5.0.2: 3371 | resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} 3372 | engines: {node: '>=12.20'} 3373 | hasBin: true 3374 | dev: true 3375 | 3376 | /unbox-primitive/1.0.2: 3377 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 3378 | dependencies: 3379 | call-bind: 1.0.2 3380 | has-bigints: 1.0.2 3381 | has-symbols: 1.0.3 3382 | which-boxed-primitive: 1.0.2 3383 | dev: true 3384 | 3385 | /uri-js/4.4.1: 3386 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3387 | dependencies: 3388 | punycode: 2.3.0 3389 | dev: true 3390 | 3391 | /uuid/8.3.2: 3392 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 3393 | hasBin: true 3394 | dev: true 3395 | 3396 | /webidl-conversions/4.0.2: 3397 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 3398 | dev: true 3399 | 3400 | /whatwg-url/7.1.0: 3401 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 3402 | dependencies: 3403 | lodash.sortby: 4.7.0 3404 | tr46: 1.0.1 3405 | webidl-conversions: 4.0.2 3406 | dev: true 3407 | 3408 | /which-boxed-primitive/1.0.2: 3409 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3410 | dependencies: 3411 | is-bigint: 1.0.4 3412 | is-boolean-object: 1.1.2 3413 | is-number-object: 1.0.7 3414 | is-string: 1.0.7 3415 | is-symbol: 1.0.4 3416 | dev: true 3417 | 3418 | /which-typed-array/1.1.9: 3419 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 3420 | engines: {node: '>= 0.4'} 3421 | dependencies: 3422 | available-typed-arrays: 1.0.5 3423 | call-bind: 1.0.2 3424 | for-each: 0.3.3 3425 | gopd: 1.0.1 3426 | has-tostringtag: 1.0.0 3427 | is-typed-array: 1.1.10 3428 | dev: true 3429 | 3430 | /which/2.0.2: 3431 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3432 | engines: {node: '>= 8'} 3433 | hasBin: true 3434 | dependencies: 3435 | isexe: 2.0.0 3436 | dev: true 3437 | 3438 | /word-wrap/1.2.3: 3439 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 3440 | engines: {node: '>=0.10.0'} 3441 | dev: true 3442 | 3443 | /workerpool/6.2.1: 3444 | resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} 3445 | dev: true 3446 | 3447 | /wrap-ansi/7.0.0: 3448 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3449 | engines: {node: '>=10'} 3450 | dependencies: 3451 | ansi-styles: 4.3.0 3452 | string-width: 4.2.3 3453 | strip-ansi: 6.0.1 3454 | dev: true 3455 | 3456 | /wrappy/1.0.2: 3457 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3458 | dev: true 3459 | 3460 | /y18n/5.0.8: 3461 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 3462 | engines: {node: '>=10'} 3463 | dev: true 3464 | 3465 | /yallist/4.0.0: 3466 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3467 | dev: true 3468 | 3469 | /yaml/1.10.2: 3470 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 3471 | engines: {node: '>= 6'} 3472 | dev: true 3473 | 3474 | /yargs-parser/20.2.4: 3475 | resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} 3476 | engines: {node: '>=10'} 3477 | dev: true 3478 | 3479 | /yargs-unparser/2.0.0: 3480 | resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} 3481 | engines: {node: '>=10'} 3482 | dependencies: 3483 | camelcase: 6.3.0 3484 | decamelize: 4.0.0 3485 | flat: 5.0.2 3486 | is-plain-obj: 2.1.0 3487 | dev: true 3488 | 3489 | /yargs/16.2.0: 3490 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 3491 | engines: {node: '>=10'} 3492 | dependencies: 3493 | cliui: 7.0.4 3494 | escalade: 3.1.1 3495 | get-caller-file: 2.0.5 3496 | require-directory: 2.1.1 3497 | string-width: 4.2.3 3498 | y18n: 5.0.8 3499 | yargs-parser: 20.2.4 3500 | dev: true 3501 | 3502 | /yocto-queue/0.1.0: 3503 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3504 | engines: {node: '>=10'} 3505 | dev: true 3506 | -------------------------------------------------------------------------------- /scripts/dist-fix.js: -------------------------------------------------------------------------------- 1 | const {mkdir, readdir, rename, rm, writeFile, copyFile, readFile, unlink} = require('node:fs/promises') 2 | const path = require('node:path') 3 | 4 | ;(async () => { 5 | const distPath = path.join(__dirname, '../dist') 6 | const distCjsPath = path.join(distPath, 'cjs') 7 | const distEsmPath = path.join(distPath, 'esm') 8 | 9 | const [dist, distEsm] = await Promise.all([ 10 | readdir(distPath), 11 | readdir(distEsmPath), 12 | rm(distCjsPath, {force: true, recursive: true}), 13 | ]) 14 | 15 | await Promise.all([ 16 | mkdir(distCjsPath), 17 | writeFile(path.join(distEsmPath, 'package.json'), JSON.stringify({type: 'module', sideEffects: false})), 18 | ...dist 19 | .filter((distFilePath) => distFilePath.match(/\.d\.ts$/)) 20 | .map((distFilePath) => copyFile(path.join(distPath, distFilePath), path.join(distEsmPath, distFilePath))), 21 | ...distEsm 22 | .filter((esmFilePath) => esmFilePath.match(/\.js$/)) 23 | .map(async (esmFilePath) => { 24 | const distEsmFilePath = path.join(distEsmPath, esmFilePath) 25 | 26 | const esmFile = await readFile(distEsmFilePath) 27 | const esmFileContents = esmFile.toString() 28 | 29 | const dtsFilePath = `./${esmFilePath.replace('.js', '.d.ts')}` 30 | 31 | const denoFriendlyEsmFileContents = [`/// `, esmFileContents].join('\n') 32 | 33 | await unlink(distEsmFilePath) 34 | 35 | await writeFile(distEsmFilePath, denoFriendlyEsmFileContents) 36 | }), 37 | ]) 38 | 39 | await Promise.all([ 40 | writeFile(path.join(distCjsPath, 'package.json'), JSON.stringify({type: 'commonjs', sideEffects: false})), 41 | ...dist 42 | .filter((filePath) => filePath.match(/\.[t|j]s(\.map)?$/)) 43 | .map((filePath) => rename(path.join(distPath, filePath), path.join(distCjsPath, filePath))), 44 | ]) 45 | })() 46 | -------------------------------------------------------------------------------- /src/dialect/adapter.ts: -------------------------------------------------------------------------------- 1 | import {DialectAdapterBase, type Kysely} from 'kysely' 2 | 3 | import {S3SelectLocksUnsupportedError} from './errors.js' 4 | 5 | export class S3SelectAdapter extends DialectAdapterBase { 6 | get supportsReturning(): boolean { 7 | return false 8 | } 9 | 10 | get supportsTransactionalDdl(): boolean { 11 | return false 12 | } 13 | 14 | async acquireMigrationLock(_: Kysely): Promise { 15 | this.#throwLocksError() 16 | } 17 | 18 | async releaseMigrationLock(_: Kysely): Promise { 19 | this.#throwLocksError() 20 | } 21 | 22 | #throwLocksError(): never { 23 | throw new S3SelectLocksUnsupportedError() 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/dialect/connection.ts: -------------------------------------------------------------------------------- 1 | import {SelectObjectContentCommand, type InputSerialization} from '@aws-sdk/client-s3' 2 | import type {CompiledQuery, DatabaseConnection, QueryResult} from 'kysely' 3 | 4 | import {S3SelectContentTypeUnsupportedError, S3SelectStreamingUnsupportedError} from './errors.js' 5 | import type {S3SelectDialectConfig} from './types.js' 6 | 7 | export class S3SelectConnection implements DatabaseConnection { 8 | readonly #config: S3SelectDialectConfig 9 | 10 | constructor(config: S3SelectDialectConfig) { 11 | this.#config = config 12 | } 13 | 14 | async executeQuery(compiledQuery: CompiledQuery): Promise> { 15 | const command = new SelectObjectContentCommand({ 16 | Bucket: this.#config.bucket, 17 | Expression: compiledQuery.sql, 18 | ExpressionType: 'SQL', 19 | InputSerialization: this.#resolveInputSerialization(), 20 | Key: this.#config.key, 21 | OutputSerialization: { 22 | JSON: { 23 | RecordDelimiter: ',', 24 | }, 25 | }, 26 | }) 27 | 28 | const {Payload} = await this.#config.client.send(command) 29 | 30 | if (!Payload) { 31 | return {rows: []} 32 | } 33 | 34 | const textDecoder = new TextDecoder() 35 | const stringifiedOutputs: string[] = [] 36 | 37 | for await (const {Records} of Payload) { 38 | if (Records) { 39 | const decodedText = textDecoder.decode(Records.Payload) 40 | 41 | stringifiedOutputs.push(decodedText) 42 | } 43 | } 44 | 45 | return { 46 | rows: JSON.parse(`[${stringifiedOutputs.join('').slice(0, -1)}]`), 47 | } 48 | } 49 | 50 | streamQuery(_: CompiledQuery): AsyncIterableIterator> { 51 | throw new S3SelectStreamingUnsupportedError() 52 | } 53 | 54 | #resolveInputSerialization(): InputSerialization { 55 | const inputSerialization = {CompressionType: this.#config.compressionType?.toUpperCase() || 'NONE'} 56 | 57 | const {contentType} = this.#config 58 | 59 | switch (contentType) { 60 | case 'csv': { 61 | const {csvOptions} = this.#config 62 | 63 | return { 64 | ...inputSerialization, 65 | CSV: { 66 | AllowQuotedRecordDelimiter: Boolean(csvOptions?.allowQuotedRecordDelimiter), 67 | Comments: csvOptions?.comments || '#', 68 | FieldDelimiter: csvOptions?.fieldDelimiter || ',', 69 | FileHeaderInfo: csvOptions?.fileHeaderInfo?.toUpperCase() || 'USE', 70 | QuoteCharacter: csvOptions?.quoteCharacter || '"', 71 | QuoteEscapeCharacter: csvOptions?.quoteEscapeCharacter || '"', 72 | RecordDelimiter: csvOptions?.recordDelimiter || '\n', 73 | }, 74 | } 75 | } 76 | case 'json': 77 | return { 78 | ...inputSerialization, 79 | JSON: { 80 | Type: this.#config.jsonOptions?.type?.toUpperCase() || 'DOCUMENT', 81 | }, 82 | } 83 | case 'parquet': 84 | return { 85 | ...inputSerialization, 86 | Parquet: {}, 87 | } 88 | default: 89 | throw new S3SelectContentTypeUnsupportedError(contentType) 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/dialect/dialect.ts: -------------------------------------------------------------------------------- 1 | import type {DatabaseIntrospector, Dialect, DialectAdapter, Driver, Kysely, QueryCompiler} from 'kysely' 2 | 3 | import {S3SelectAdapter} from './adapter.js' 4 | import {S3SelectDriver} from './driver.js' 5 | import {S3SelectIntrospector} from './introspector.js' 6 | import {S3SelectQueryCompiler} from './query-compiler.js' 7 | import type {S3SelectDialectConfig} from './types.js' 8 | 9 | export class S3SelectDialect implements Dialect { 10 | readonly #config: S3SelectDialectConfig 11 | 12 | constructor(config: S3SelectDialectConfig) { 13 | this.#config = config 14 | } 15 | 16 | createAdapter(): DialectAdapter { 17 | return new S3SelectAdapter() 18 | } 19 | 20 | createDriver(): Driver { 21 | return new S3SelectDriver(this.#config) 22 | } 23 | 24 | createIntrospector(db: Kysely): DatabaseIntrospector { 25 | return new S3SelectIntrospector(db) 26 | } 27 | 28 | createQueryCompiler(): QueryCompiler { 29 | return new S3SelectQueryCompiler() 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/dialect/driver.ts: -------------------------------------------------------------------------------- 1 | import type {DatabaseConnection, Driver} from 'kysely' 2 | 3 | import {S3SelectConnection} from './connection.js' 4 | import {S3SelectTransactionsUnsupportedError} from './errors.js' 5 | import type {S3SelectDialectConfig} from './types.js' 6 | 7 | export class S3SelectDriver implements Driver { 8 | readonly #config: S3SelectDialectConfig 9 | 10 | constructor(config: S3SelectDialectConfig) { 11 | this.#config = config 12 | } 13 | 14 | async init(): Promise { 15 | // noop 16 | } 17 | 18 | async acquireConnection(): Promise { 19 | return new S3SelectConnection(this.#config) 20 | } 21 | 22 | beginTransaction(_: DatabaseConnection): Promise { 23 | this.#throwTransactionsError() 24 | } 25 | 26 | commitTransaction(_: DatabaseConnection): Promise { 27 | this.#throwTransactionsError() 28 | } 29 | 30 | rollbackTransaction(_: DatabaseConnection): Promise { 31 | this.#throwTransactionsError() 32 | } 33 | 34 | async releaseConnection(_: DatabaseConnection): Promise { 35 | // noop 36 | } 37 | 38 | async destroy(): Promise { 39 | // noop 40 | } 41 | 42 | #throwTransactionsError(): never { 43 | throw new S3SelectTransactionsUnsupportedError() 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/dialect/errors.ts: -------------------------------------------------------------------------------- 1 | export class S3SelectLocksUnsupportedError extends Error { 2 | constructor() { 3 | super('S3 select does not support locks!') 4 | this.name = 'S3SelectLocksUnsupportedError' 5 | } 6 | } 7 | 8 | export class S3SelectTransactionsUnsupportedError extends Error { 9 | constructor() { 10 | super('S3 select does not support transactions!') 11 | this.name = 'S3SelectTransactionsUnsupportedError' 12 | } 13 | } 14 | 15 | export class S3SelectStreamingUnsupportedError extends Error { 16 | constructor() { 17 | super('S3 select does not support streaming!') 18 | this.name = 'S3SelectStreamingUnsupportedError' 19 | } 20 | } 21 | 22 | export class S3SelectContentTypeUnsupportedError extends Error { 23 | constructor(contentType: string) { 24 | super(`S3 select does not support content type ${contentType}!`) 25 | this.name = 'S3SelectContentTypeUnsupportedError' 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/dialect/introspector.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | DatabaseIntrospector, 3 | DatabaseMetadata, 4 | DatabaseMetadataOptions, 5 | Kysely, 6 | SchemaMetadata, 7 | TableMetadata, 8 | } from 'kysely' 9 | 10 | export class S3SelectIntrospector implements DatabaseIntrospector { 11 | readonly #db: Kysely 12 | 13 | constructor(db: Kysely) { 14 | this.#db = db 15 | } 16 | 17 | getSchemas(): Promise { 18 | throw new Error('Method not implemented.') 19 | } 20 | 21 | getTables(options?: DatabaseMetadataOptions | undefined): Promise { 22 | throw new Error('Method not implemented.') 23 | } 24 | 25 | getMetadata(options?: DatabaseMetadataOptions | undefined): Promise { 26 | throw new Error('Method not implemented.') 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/dialect/query-compiler.ts: -------------------------------------------------------------------------------- 1 | import {SqliteQueryCompiler, type ValueNode} from 'kysely' 2 | 3 | export class S3SelectQueryCompiler extends SqliteQueryCompiler { 4 | protected visitValue(node: ValueNode): void { 5 | this.appendImmediateValue(node.value) 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/dialect/types.ts: -------------------------------------------------------------------------------- 1 | import type {S3Client} from '@aws-sdk/client-s3' 2 | 3 | export type S3SelectDialectConfig = { 4 | bucket: string 5 | client: S3Client 6 | compressionType?: 'none' | 'gzip' | 'bzip2' 7 | key: string 8 | } & ( 9 | | { 10 | contentType: 'csv' 11 | csvOptions?: CSVOptions 12 | } 13 | | { 14 | contentType: 'json' 15 | jsonOptions?: JSONOptions 16 | } 17 | | { 18 | contentType: 'parquet' 19 | } 20 | ) 21 | 22 | /** 23 | * {@link https://docs.aws.amazon.com/AmazonS3/latest/API/API_CSVInput.html} 24 | */ 25 | export interface CSVOptions { 26 | allowQuotedRecordDelimiter?: boolean 27 | comments?: string 28 | fieldDelimiter?: string 29 | fileHeaderInfo?: 'none' | 'ignore' | 'use' 30 | quoteCharacter?: string 31 | quoteEscapeCharacter?: string 32 | recordDelimiter?: string 33 | } 34 | 35 | /** 36 | * {@link https://docs.aws.amazon.com/AmazonS3/latest/API/API_JSONInput.html} 37 | */ 38 | export interface JSONOptions { 39 | type?: 'document' | 'lines' 40 | } 41 | 42 | /** 43 | * {@link https://docs.aws.amazon.com/AmazonS3/latest/API/API_ParquetInput.html} 44 | */ 45 | export interface ParquetOptions {} 46 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './dialect/adapter.js' 2 | export * from './dialect/connection.js' 3 | export * from './dialect/dialect.js' 4 | export * from './dialect/driver.js' 5 | export * from './dialect/errors.js' 6 | export * from './dialect/introspector.js' 7 | export * from './dialect/query-compiler.js' 8 | export type {CSVOptions, JSONOptions, ParquetOptions, S3SelectDialectConfig} from './dialect/types.js' 9 | -------------------------------------------------------------------------------- /tests/nodejs/select.test.ts: -------------------------------------------------------------------------------- 1 | import {expect} from 'chai' 2 | 3 | import {sql} from 'kysely' 4 | import {Entry, initTest, type Patient, type TestContext} from './setup' 5 | 6 | describe('select', () => { 7 | let ctx: TestContext 8 | 9 | before(async () => { 10 | ctx = await initTest() 11 | }) 12 | 13 | describe('csv', () => { 14 | it('should select some columns, filter and limit', async () => { 15 | const query = ctx.csv 16 | .selectFrom('S3Object') 17 | .where('START', '>=', '2000') 18 | .where('STOP', '!=', '') 19 | .select(['PATIENT as patient', 'DESCRIPTION as description']) 20 | .limit(50) 21 | 22 | expect(query.compile().sql).to.equal( 23 | [ 24 | 'select "PATIENT" as "patient",', 25 | '"DESCRIPTION" as "description"', 26 | 'from "S3Object"', 27 | 'where "START" >= \'2000\'', 28 | 'and "STOP" != \'\'', 29 | 'limit 50', 30 | ].join(' '), 31 | ) 32 | 33 | const results = await query.execute() 34 | 35 | expect(results).to.be.an('array').that.is.not.empty 36 | results.forEach((result) => { 37 | expect(result).to.be.an('object') 38 | expect(result).to.have.property('patient').which.is.a('string').that.is.not.empty 39 | expect(result).to.have.property('description').which.is.a('string').that.is.not.empty 40 | }) 41 | }) 42 | }) 43 | 44 | describe('json', () => { 45 | it('should select some columns, filter and limit', async () => { 46 | const query = ctx.json 47 | .selectFrom( 48 | sql>`S3Object[*].${sql.ref('entry')}[*].${sql.ref('resource')}`.as('resource'), 49 | ) 50 | .where('resource.resourceType', '=', 'Patient') 51 | .select(['resource.id as id', 'resource.name as name']) 52 | .limit(1) 53 | .$castTo>() 54 | 55 | expect(query.compile().sql).to.equal( 56 | [ 57 | 'select "resource"."id" as "id",', 58 | '"resource"."name" as "name"', 59 | 'from S3Object[*]."entry"[*]."resource" as "resource"', 60 | 'where "resource"."resourceType" = \'Patient\'', 61 | 'limit 1', 62 | ].join(' '), 63 | ) 64 | 65 | const patient = await query.executeTakeFirstOrThrow() 66 | 67 | expect(patient).to.be.an('object') 68 | expect(patient).to.have.property('id').which.is.a('string').that.is.not.empty 69 | expect(patient).to.have.property('name').which.is.an('array').that.is.not.empty 70 | patient.name.forEach((name) => { 71 | expect(name).to.be.an('object') 72 | expect(name).to.have.property('use').which.is.a('string').that.is.not.empty 73 | expect(name).to.have.property('family').which.is.a('string').that.is.not.empty 74 | expect(name).to.have.property('given').which.is.an('array').that.is.not.empty 75 | name.given.forEach((given) => expect(given).to.be.a('string').that.is.not.empty) 76 | expect(name).to.have.property('prefix').which.is.an('array').that.is.not.empty 77 | name.prefix.forEach((prefix) => expect(prefix).to.be.a('string').that.is.not.empty) 78 | }) 79 | }) 80 | }) 81 | }) 82 | -------------------------------------------------------------------------------- /tests/nodejs/setup.ts: -------------------------------------------------------------------------------- 1 | import {S3Client} from '@aws-sdk/client-s3' 2 | import {Kysely} from 'kysely' 3 | 4 | import {S3SelectDialect} from '../../src/dialect/dialect.js' 5 | 6 | export interface Condition { 7 | START: string 8 | STOP: string 9 | PATIENT: string 10 | CODE: string 11 | DESCRIPTION: string 12 | } 13 | 14 | export interface CSVDatabase { 15 | S3Object: Condition 16 | } 17 | 18 | export interface Bundle { 19 | resourceType: 'Bundle' 20 | type: 'transaction' 21 | entry: Entry[] 22 | } 23 | 24 | export interface Entry { 25 | fullUrl: string 26 | resource: Patient 27 | request: object 28 | } 29 | 30 | export interface Patient { 31 | resourceType: 'Patient' 32 | id: string 33 | meta: object 34 | text: object 35 | extension: object[] 36 | identifier: object[] 37 | name: { 38 | use: 'official' 39 | family: string 40 | given: string[] 41 | prefix: string[] 42 | }[] 43 | telecom: object[] 44 | gender: 'male' | 'female' 45 | birthDate: string 46 | deceasedDateTime: string 47 | address: object[] 48 | maritalStatus: object 49 | multipleBirthBoolean: boolean 50 | communication: object[] 51 | } 52 | 53 | export interface JSONDatabase { 54 | S3Object: Bundle 55 | } 56 | 57 | export type TestContext = Awaited> 58 | 59 | const client = new S3Client({ 60 | region: 'us-east-1', 61 | }) 62 | const BUCKET = 'synthea-open-data' 63 | const KEY_CSV = 'coherent/unzipped/csv/conditions.csv' 64 | const KEY_JSON = 'coherent/unzipped/fhir/Abe604_Frami345_b8dd1798-beef-094d-1be4-f90ee0e6b7d5.json' 65 | 66 | export async function initTest() { 67 | return { 68 | csv: new Kysely({ 69 | dialect: new S3SelectDialect({ 70 | bucket: BUCKET, 71 | client, 72 | contentType: 'csv', 73 | key: KEY_CSV, 74 | }), 75 | }), 76 | json: new Kysely({ 77 | dialect: new S3SelectDialect({ 78 | bucket: BUCKET, 79 | client, 80 | contentType: 'json', 81 | key: KEY_JSON, 82 | }), 83 | }), 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/node18/tsconfig.json", 3 | "compilerOptions": { 4 | "rootDir": "src" 5 | }, 6 | "include": ["src"], 7 | "exclude": ["node_modules", "dist", "tests", "examples", "scripts", "assets"] 8 | } 9 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import {defineConfig} from 'tsup' 2 | 3 | export default defineConfig({ 4 | clean: true, 5 | dts: true, 6 | entry: ['./src/index.ts'], 7 | format: ['cjs', 'esm'], 8 | legacyOutput: true, 9 | outDir: 'dist', 10 | sourcemap: true, 11 | }) 12 | --------------------------------------------------------------------------------