├── .changeset ├── README.md └── config.json ├── .github └── workflows │ └── release.yml ├── .gitignore ├── CHANGELOG.md ├── README.md ├── jest.config.js ├── module-fixup.sh ├── package.json ├── pnpm-lock.yaml ├── src ├── data-api-dialect.ts ├── data-api-driver.ts ├── data-api-query-compiler.ts ├── index.ts └── postgres-introspector.ts ├── test ├── data-api-query-compiler.test.ts ├── harness.ts ├── migrations │ └── test-migration1.js ├── setup.js └── temporary.test.ts ├── tsconfig-cjs.json ├── tsconfig-esm.json ├── tsconfig.json └── vitest.config.ts /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json", 3 | "changelog": [ 4 | "@changesets/changelog-github", 5 | { "repo": "serverless-stack/kysely-data-api" } 6 | ], 7 | "commit": false, 8 | "linked": [], 9 | "access": "public", 10 | "baseBranch": "master", 11 | "updateInternalDependencies": "patch", 12 | "ignore": [] 13 | } 14 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - master 8 | 9 | concurrency: ${{ github.workflow }}-${{ github.ref }} 10 | 11 | jobs: 12 | release: 13 | name: Release 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Checkout Repo 17 | # https://github.com/actions/checkout 18 | uses: actions/checkout@v2 19 | 20 | - name: Setup Node.js 21 | # https://github.com/actions/setup-node 22 | uses: actions/setup-node@v2 23 | with: 24 | node-version: 16.x 25 | 26 | - uses: pnpm/action-setup@v2 27 | with: 28 | version: 8 29 | run_install: false 30 | 31 | - name: Get pnpm store directory 32 | id: pnpm-cache 33 | shell: bash 34 | run: | 35 | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT 36 | 37 | - uses: actions/cache@v3 38 | name: Setup pnpm cache 39 | with: 40 | path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} 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 install 47 | 48 | - name: Create Release Pull Request or Publish to npm 49 | id: changesets 50 | # https://github.com/changesets/action 51 | uses: changesets/action@v1 52 | with: 53 | createGithubReleases: false 54 | publish: pnpm release 55 | env: 56 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 57 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 58 | 59 | - name: View outputs 60 | run: echo ${{join(steps.changesets.outputs.*, ' ')}} 61 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # kysely-data-api 2 | 3 | ## 2.0.0 4 | 5 | ### Major Changes 6 | 7 | - [#43](https://github.com/sst/kysely-data-api/pull/43) [`f1de155`](https://github.com/sst/kysely-data-api/commit/f1de155f0d38f3ec58fa61654403fcf76c1ea4ad) Thanks [@omikader](https://github.com/omikader)! - fix(driver): return Object for JSON columns and imply UTC for timestampz 8 | 9 | ### Patch Changes 10 | 11 | - [#44](https://github.com/sst/kysely-data-api/pull/44) [`b3975e2`](https://github.com/sst/kysely-data-api/commit/b3975e2c4ce9854ebd2ab0e0db5779970f73f420) Thanks [@iloewensen](https://github.com/iloewensen)! - use or-operator to fix postgres introspector 12 | 13 | ## 1.0.1 14 | 15 | ### Patch Changes 16 | 17 | - [#41](https://github.com/sst/kysely-data-api/pull/41) [`6158bd5`](https://github.com/sst/kysely-data-api/commit/6158bd5bb370231ec460c8d7965dc24d1f482092) Thanks [@woconnor](https://github.com/woconnor)! - Update pnpm-lock.yaml 18 | 19 | - [#40](https://github.com/sst/kysely-data-api/pull/40) [`9642337`](https://github.com/sst/kysely-data-api/commit/96423370aa7b50c2fde1ff4fde95a64011e40b58) Thanks [@woconnor](https://github.com/woconnor)! - Fix build and test with latest Kysely 20 | 21 | ## 1.0.0 22 | 23 | ### Major Changes 24 | 25 | - [#35](https://github.com/sst/kysely-data-api/pull/35) [`d1e0380`](https://github.com/sst/kysely-data-api/commit/d1e0380a3db2b5db90f20ae047d5012fd33737bb) Thanks [@omikader](https://github.com/omikader)! - Upgrade kysely dependency to ^0.26.0 26 | 27 | ## 0.3.1 28 | 29 | ### Patch Changes 30 | 31 | - [#32](https://github.com/sst/kysely-data-api/pull/32) [`7f5ebdd`](https://github.com/sst/kysely-data-api/commit/7f5ebdd97e015c990855adbd5912fc28943219dd) Thanks [@omikader](https://github.com/omikader)! - fix(types): set strict kysely peer dependency due to breaking change 32 | 33 | ## 0.3.0 34 | 35 | ### Minor Changes 36 | 37 | - [#29](https://github.com/sst/kysely-data-api/pull/29) [`a2c26d4`](https://github.com/sst/kysely-data-api/commit/a2c26d475394ff949e29b3fb224fa38b52fcd70b) Thanks [@c-st](https://github.com/c-st)! - Convert string for fields marked as TIMESTAMP to Date 38 | 39 | ## 0.2.1 40 | 41 | ### Patch Changes 42 | 43 | - [`d296d2c`](https://github.com/serverless-stack/kysely-data-api/commit/d296d2c9500d622e706f4e42402d9b84de072688) Thanks [@thdxr](https://github.com/thdxr)! - Use forked postgres-introspector 44 | 45 | - [#24](https://github.com/serverless-stack/kysely-data-api/pull/24) [`d5d5e5a`](https://github.com/serverless-stack/kysely-data-api/commit/d5d5e5aa6de7d8ad3381b8e599ad52846dbcc611) Thanks [@igalklebanov](https://github.com/igalklebanov)! - arrayValue fields will now be unmarshalled so consumers will get JS arrays. 46 | 47 | ## 0.2.0 48 | 49 | ### Minor Changes 50 | 51 | - [`80a6f36`](https://github.com/serverless-stack/kysely-data-api/commit/80a6f3664eb3421b5d0632895f916083caafdbd0) Thanks [@thdxr](https://github.com/thdxr)! - Upgrade to aws-sdk v3 52 | 53 | ## 0.1.4 54 | 55 | ### Patch Changes 56 | 57 | - [`d91a5b4`](https://github.com/serverless-stack/kysely-data-api/commit/d91a5b48e2ebb617640c6d28e8d52a0944468fdd) Thanks [@thdxr](https://github.com/thdxr)! - Fix issue with ESM export 58 | 59 | ## 0.1.3 60 | 61 | ### Patch Changes 62 | 63 | - [`293394c`](https://github.com/serverless-stack/kysely-data-api/commit/293394c0980d6d97e70b0eec7e329d7a89e92d73) Thanks [@thdxr](https://github.com/thdxr)! - Query compiler support for Date & typeHint #5 64 | 65 | ## 0.1.2 66 | 67 | ### Patch Changes 68 | 69 | - [`0c495b3`](https://github.com/serverless-stack/kysely-data-api/commit/0c495b32eca982a915656c3f0a1ca9d11b7ebd07) Thanks [@thdxr](https://github.com/thdxr)! - Relax peer dependency requirement 70 | 71 | ## 0.1.1 72 | 73 | ### Patch Changes 74 | 75 | - [`b966b1d`](https://github.com/serverless-stack/kysely-data-api/commit/b966b1d6de4f7c43d64e2c844549b27b5968b93e) Thanks [@thdxr](https://github.com/thdxr)! - Proper support for Date parameter 76 | 77 | ## 0.1.0 78 | 79 | ### Minor Changes 80 | 81 | - [`0deb9ac`](https://github.com/serverless-stack/kysely-data-api/commit/0deb9ac392b984f1e559dbd05a3e0117cccff638) Thanks [@thdxr](https://github.com/thdxr)! - Throw error if streamQuery is used 82 | 83 | ## 0.0.12 84 | 85 | ### Patch Changes 86 | 87 | - [`869c6d2`](https://github.com/serverless-stack/kysely-data-api/commit/869c6d20f84610cefd6fe3cad755906d8f78f6af) Thanks [@thdxr](https://github.com/thdxr)! - Fix for SQL aliases 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Kysely Data Api 2 | 3 | This library adds AWS RDS Data Api support for [kysely](https://github.com/koskimas/kysely). It has support for both MySQL and Postgres 4 | 5 | ### Usage 6 | 7 | ```typescript 8 | const dataApi = new DataApiDialect({ 9 | mode: "mysql", 10 | driver: { 11 | client: new RDSDataService(), 12 | database: "bench", 13 | secretArn: "", 15 | }, 16 | }); 17 | 18 | export const db = new Kysely({ dialect: dataApi }); 19 | ``` 20 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | transform: { 3 | "\\.ts$": "esbuild-runner/jest", 4 | }, 5 | setupFilesAfterEnv: ["./test/setup.js"], 6 | }; 7 | -------------------------------------------------------------------------------- /module-fixup.sh: -------------------------------------------------------------------------------- 1 | cat > dist/cjs/package.json < dist/esm/package.json <=16.0.0'} 56 | dependencies: 57 | '@aws-crypto/util': 5.2.0 58 | '@aws-sdk/types': 3.609.0 59 | tslib: 2.6.2 60 | dev: true 61 | 62 | /@aws-crypto/supports-web-crypto@5.2.0: 63 | resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} 64 | dependencies: 65 | tslib: 2.6.2 66 | dev: true 67 | 68 | /@aws-crypto/util@5.2.0: 69 | resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} 70 | dependencies: 71 | '@aws-sdk/types': 3.609.0 72 | '@smithy/util-utf8': 2.3.0 73 | tslib: 2.6.2 74 | dev: true 75 | 76 | /@aws-sdk/client-rds-data@3.614.0: 77 | resolution: {integrity: sha512-QRDTUVr53cHzLyajfxwA1GXgk7d3JRzg5eEs3NFlcTXxuJV5GNqGNDAkWkkYu8INdl6wg/kvap7emaPLWtUGbA==} 78 | engines: {node: '>=16.0.0'} 79 | dependencies: 80 | '@aws-crypto/sha256-browser': 5.2.0 81 | '@aws-crypto/sha256-js': 5.2.0 82 | '@aws-sdk/client-sso-oidc': 3.614.0(@aws-sdk/client-sts@3.614.0) 83 | '@aws-sdk/client-sts': 3.614.0 84 | '@aws-sdk/core': 3.614.0 85 | '@aws-sdk/credential-provider-node': 3.614.0(@aws-sdk/client-sso-oidc@3.614.0)(@aws-sdk/client-sts@3.614.0) 86 | '@aws-sdk/middleware-host-header': 3.609.0 87 | '@aws-sdk/middleware-logger': 3.609.0 88 | '@aws-sdk/middleware-recursion-detection': 3.609.0 89 | '@aws-sdk/middleware-user-agent': 3.614.0 90 | '@aws-sdk/region-config-resolver': 3.614.0 91 | '@aws-sdk/types': 3.609.0 92 | '@aws-sdk/util-endpoints': 3.614.0 93 | '@aws-sdk/util-user-agent-browser': 3.609.0 94 | '@aws-sdk/util-user-agent-node': 3.614.0 95 | '@smithy/config-resolver': 3.0.5 96 | '@smithy/core': 2.2.6 97 | '@smithy/fetch-http-handler': 3.2.1 98 | '@smithy/hash-node': 3.0.3 99 | '@smithy/invalid-dependency': 3.0.3 100 | '@smithy/middleware-content-length': 3.0.3 101 | '@smithy/middleware-endpoint': 3.0.5 102 | '@smithy/middleware-retry': 3.0.9 103 | '@smithy/middleware-serde': 3.0.3 104 | '@smithy/middleware-stack': 3.0.3 105 | '@smithy/node-config-provider': 3.1.4 106 | '@smithy/node-http-handler': 3.1.2 107 | '@smithy/protocol-http': 4.0.3 108 | '@smithy/smithy-client': 3.1.7 109 | '@smithy/types': 3.3.0 110 | '@smithy/url-parser': 3.0.3 111 | '@smithy/util-base64': 3.0.0 112 | '@smithy/util-body-length-browser': 3.0.0 113 | '@smithy/util-body-length-node': 3.0.0 114 | '@smithy/util-defaults-mode-browser': 3.0.9 115 | '@smithy/util-defaults-mode-node': 3.0.9 116 | '@smithy/util-endpoints': 2.0.5 117 | '@smithy/util-middleware': 3.0.3 118 | '@smithy/util-retry': 3.0.3 119 | '@smithy/util-utf8': 3.0.0 120 | tslib: 2.6.2 121 | transitivePeerDependencies: 122 | - aws-crt 123 | dev: true 124 | 125 | /@aws-sdk/client-sso-oidc@3.614.0(@aws-sdk/client-sts@3.614.0): 126 | resolution: {integrity: sha512-BI1NWcpppbHg/28zbUg54dZeckork8BItZIcjls12vxasy+p3iEzrJVG60jcbUTTsk3Qc1tyxNfrdcVqx0y7Ww==} 127 | engines: {node: '>=16.0.0'} 128 | peerDependencies: 129 | '@aws-sdk/client-sts': ^3.614.0 130 | dependencies: 131 | '@aws-crypto/sha256-browser': 5.2.0 132 | '@aws-crypto/sha256-js': 5.2.0 133 | '@aws-sdk/client-sts': 3.614.0 134 | '@aws-sdk/core': 3.614.0 135 | '@aws-sdk/credential-provider-node': 3.614.0(@aws-sdk/client-sso-oidc@3.614.0)(@aws-sdk/client-sts@3.614.0) 136 | '@aws-sdk/middleware-host-header': 3.609.0 137 | '@aws-sdk/middleware-logger': 3.609.0 138 | '@aws-sdk/middleware-recursion-detection': 3.609.0 139 | '@aws-sdk/middleware-user-agent': 3.614.0 140 | '@aws-sdk/region-config-resolver': 3.614.0 141 | '@aws-sdk/types': 3.609.0 142 | '@aws-sdk/util-endpoints': 3.614.0 143 | '@aws-sdk/util-user-agent-browser': 3.609.0 144 | '@aws-sdk/util-user-agent-node': 3.614.0 145 | '@smithy/config-resolver': 3.0.5 146 | '@smithy/core': 2.2.6 147 | '@smithy/fetch-http-handler': 3.2.1 148 | '@smithy/hash-node': 3.0.3 149 | '@smithy/invalid-dependency': 3.0.3 150 | '@smithy/middleware-content-length': 3.0.3 151 | '@smithy/middleware-endpoint': 3.0.5 152 | '@smithy/middleware-retry': 3.0.9 153 | '@smithy/middleware-serde': 3.0.3 154 | '@smithy/middleware-stack': 3.0.3 155 | '@smithy/node-config-provider': 3.1.4 156 | '@smithy/node-http-handler': 3.1.2 157 | '@smithy/protocol-http': 4.0.3 158 | '@smithy/smithy-client': 3.1.7 159 | '@smithy/types': 3.3.0 160 | '@smithy/url-parser': 3.0.3 161 | '@smithy/util-base64': 3.0.0 162 | '@smithy/util-body-length-browser': 3.0.0 163 | '@smithy/util-body-length-node': 3.0.0 164 | '@smithy/util-defaults-mode-browser': 3.0.9 165 | '@smithy/util-defaults-mode-node': 3.0.9 166 | '@smithy/util-endpoints': 2.0.5 167 | '@smithy/util-middleware': 3.0.3 168 | '@smithy/util-retry': 3.0.3 169 | '@smithy/util-utf8': 3.0.0 170 | tslib: 2.6.2 171 | transitivePeerDependencies: 172 | - aws-crt 173 | dev: true 174 | 175 | /@aws-sdk/client-sso@3.614.0: 176 | resolution: {integrity: sha512-p5pyYaxRzBttjBkqfc8i3K7DzBdTg3ECdVgBo6INIUxfvDy0J8QUE8vNtCgvFIkq+uPw/8M+Eo4zzln7anuO0Q==} 177 | engines: {node: '>=16.0.0'} 178 | dependencies: 179 | '@aws-crypto/sha256-browser': 5.2.0 180 | '@aws-crypto/sha256-js': 5.2.0 181 | '@aws-sdk/core': 3.614.0 182 | '@aws-sdk/middleware-host-header': 3.609.0 183 | '@aws-sdk/middleware-logger': 3.609.0 184 | '@aws-sdk/middleware-recursion-detection': 3.609.0 185 | '@aws-sdk/middleware-user-agent': 3.614.0 186 | '@aws-sdk/region-config-resolver': 3.614.0 187 | '@aws-sdk/types': 3.609.0 188 | '@aws-sdk/util-endpoints': 3.614.0 189 | '@aws-sdk/util-user-agent-browser': 3.609.0 190 | '@aws-sdk/util-user-agent-node': 3.614.0 191 | '@smithy/config-resolver': 3.0.5 192 | '@smithy/core': 2.2.6 193 | '@smithy/fetch-http-handler': 3.2.1 194 | '@smithy/hash-node': 3.0.3 195 | '@smithy/invalid-dependency': 3.0.3 196 | '@smithy/middleware-content-length': 3.0.3 197 | '@smithy/middleware-endpoint': 3.0.5 198 | '@smithy/middleware-retry': 3.0.9 199 | '@smithy/middleware-serde': 3.0.3 200 | '@smithy/middleware-stack': 3.0.3 201 | '@smithy/node-config-provider': 3.1.4 202 | '@smithy/node-http-handler': 3.1.2 203 | '@smithy/protocol-http': 4.0.3 204 | '@smithy/smithy-client': 3.1.7 205 | '@smithy/types': 3.3.0 206 | '@smithy/url-parser': 3.0.3 207 | '@smithy/util-base64': 3.0.0 208 | '@smithy/util-body-length-browser': 3.0.0 209 | '@smithy/util-body-length-node': 3.0.0 210 | '@smithy/util-defaults-mode-browser': 3.0.9 211 | '@smithy/util-defaults-mode-node': 3.0.9 212 | '@smithy/util-endpoints': 2.0.5 213 | '@smithy/util-middleware': 3.0.3 214 | '@smithy/util-retry': 3.0.3 215 | '@smithy/util-utf8': 3.0.0 216 | tslib: 2.6.2 217 | transitivePeerDependencies: 218 | - aws-crt 219 | dev: true 220 | 221 | /@aws-sdk/client-sts@3.614.0: 222 | resolution: {integrity: sha512-i6QmaVA1KHHYNnI2VYQy/sc31rLm4+jSp8b/YbQpFnD0w3aXsrEEHHlxek45uSkHb4Nrj1omFBVy/xp1WVYx2Q==} 223 | engines: {node: '>=16.0.0'} 224 | dependencies: 225 | '@aws-crypto/sha256-browser': 5.2.0 226 | '@aws-crypto/sha256-js': 5.2.0 227 | '@aws-sdk/client-sso-oidc': 3.614.0(@aws-sdk/client-sts@3.614.0) 228 | '@aws-sdk/core': 3.614.0 229 | '@aws-sdk/credential-provider-node': 3.614.0(@aws-sdk/client-sso-oidc@3.614.0)(@aws-sdk/client-sts@3.614.0) 230 | '@aws-sdk/middleware-host-header': 3.609.0 231 | '@aws-sdk/middleware-logger': 3.609.0 232 | '@aws-sdk/middleware-recursion-detection': 3.609.0 233 | '@aws-sdk/middleware-user-agent': 3.614.0 234 | '@aws-sdk/region-config-resolver': 3.614.0 235 | '@aws-sdk/types': 3.609.0 236 | '@aws-sdk/util-endpoints': 3.614.0 237 | '@aws-sdk/util-user-agent-browser': 3.609.0 238 | '@aws-sdk/util-user-agent-node': 3.614.0 239 | '@smithy/config-resolver': 3.0.5 240 | '@smithy/core': 2.2.6 241 | '@smithy/fetch-http-handler': 3.2.1 242 | '@smithy/hash-node': 3.0.3 243 | '@smithy/invalid-dependency': 3.0.3 244 | '@smithy/middleware-content-length': 3.0.3 245 | '@smithy/middleware-endpoint': 3.0.5 246 | '@smithy/middleware-retry': 3.0.9 247 | '@smithy/middleware-serde': 3.0.3 248 | '@smithy/middleware-stack': 3.0.3 249 | '@smithy/node-config-provider': 3.1.4 250 | '@smithy/node-http-handler': 3.1.2 251 | '@smithy/protocol-http': 4.0.3 252 | '@smithy/smithy-client': 3.1.7 253 | '@smithy/types': 3.3.0 254 | '@smithy/url-parser': 3.0.3 255 | '@smithy/util-base64': 3.0.0 256 | '@smithy/util-body-length-browser': 3.0.0 257 | '@smithy/util-body-length-node': 3.0.0 258 | '@smithy/util-defaults-mode-browser': 3.0.9 259 | '@smithy/util-defaults-mode-node': 3.0.9 260 | '@smithy/util-endpoints': 2.0.5 261 | '@smithy/util-middleware': 3.0.3 262 | '@smithy/util-retry': 3.0.3 263 | '@smithy/util-utf8': 3.0.0 264 | tslib: 2.6.2 265 | transitivePeerDependencies: 266 | - aws-crt 267 | dev: true 268 | 269 | /@aws-sdk/core@3.614.0: 270 | resolution: {integrity: sha512-BUuS5/1YkgmKc4J0bg83XEtMyDHVyqG2QDzfmhYe8gbOIZabUl1FlrFVwhCAthtrrI6MPGTQcERB4BtJKUSplw==} 271 | engines: {node: '>=16.0.0'} 272 | dependencies: 273 | '@smithy/core': 2.2.6 274 | '@smithy/protocol-http': 4.0.3 275 | '@smithy/signature-v4': 3.1.2 276 | '@smithy/smithy-client': 3.1.7 277 | '@smithy/types': 3.3.0 278 | fast-xml-parser: 4.2.5 279 | tslib: 2.6.2 280 | dev: true 281 | 282 | /@aws-sdk/credential-provider-env@3.609.0: 283 | resolution: {integrity: sha512-v69ZCWcec2iuV9vLVJMa6fAb5xwkzN4jYIT8yjo2c4Ia/j976Q+TPf35Pnz5My48Xr94EFcaBazrWedF+kwfuQ==} 284 | engines: {node: '>=16.0.0'} 285 | dependencies: 286 | '@aws-sdk/types': 3.609.0 287 | '@smithy/property-provider': 3.1.3 288 | '@smithy/types': 3.3.0 289 | tslib: 2.6.2 290 | dev: true 291 | 292 | /@aws-sdk/credential-provider-http@3.614.0: 293 | resolution: {integrity: sha512-YIEjlNUKb3Vo/iTnGAPdsiDC3FUUnNoex2OwU8LmR7AkYZiWdB8nx99DfgkkY+OFMUpw7nKD2PCOtuFONelfGA==} 294 | engines: {node: '>=16.0.0'} 295 | dependencies: 296 | '@aws-sdk/types': 3.609.0 297 | '@smithy/fetch-http-handler': 3.2.1 298 | '@smithy/node-http-handler': 3.1.2 299 | '@smithy/property-provider': 3.1.3 300 | '@smithy/protocol-http': 4.0.3 301 | '@smithy/smithy-client': 3.1.7 302 | '@smithy/types': 3.3.0 303 | '@smithy/util-stream': 3.0.6 304 | tslib: 2.6.2 305 | dev: true 306 | 307 | /@aws-sdk/credential-provider-ini@3.614.0(@aws-sdk/client-sso-oidc@3.614.0)(@aws-sdk/client-sts@3.614.0): 308 | resolution: {integrity: sha512-KfLuLFGwlvFSZ2MuzYwWGPb1y5TeiwX5okIDe0aQ1h10oD3924FXbN+mabOnUHQ8EFcGAtCaWbrC86mI7ktC6A==} 309 | engines: {node: '>=16.0.0'} 310 | peerDependencies: 311 | '@aws-sdk/client-sts': ^3.614.0 312 | dependencies: 313 | '@aws-sdk/client-sts': 3.614.0 314 | '@aws-sdk/credential-provider-env': 3.609.0 315 | '@aws-sdk/credential-provider-http': 3.614.0 316 | '@aws-sdk/credential-provider-process': 3.614.0 317 | '@aws-sdk/credential-provider-sso': 3.614.0(@aws-sdk/client-sso-oidc@3.614.0) 318 | '@aws-sdk/credential-provider-web-identity': 3.609.0(@aws-sdk/client-sts@3.614.0) 319 | '@aws-sdk/types': 3.609.0 320 | '@smithy/credential-provider-imds': 3.1.4 321 | '@smithy/property-provider': 3.1.3 322 | '@smithy/shared-ini-file-loader': 3.1.4 323 | '@smithy/types': 3.3.0 324 | tslib: 2.6.2 325 | transitivePeerDependencies: 326 | - '@aws-sdk/client-sso-oidc' 327 | - aws-crt 328 | dev: true 329 | 330 | /@aws-sdk/credential-provider-node@3.614.0(@aws-sdk/client-sso-oidc@3.614.0)(@aws-sdk/client-sts@3.614.0): 331 | resolution: {integrity: sha512-4J6gPEuFZP0mkWq5E//oMS1vrmMM88iNNcv7TEljYnsc6JTAlKejCyFwx6CN+nkIhmIZsl06SXIhBemzBdBPfg==} 332 | engines: {node: '>=16.0.0'} 333 | dependencies: 334 | '@aws-sdk/credential-provider-env': 3.609.0 335 | '@aws-sdk/credential-provider-http': 3.614.0 336 | '@aws-sdk/credential-provider-ini': 3.614.0(@aws-sdk/client-sso-oidc@3.614.0)(@aws-sdk/client-sts@3.614.0) 337 | '@aws-sdk/credential-provider-process': 3.614.0 338 | '@aws-sdk/credential-provider-sso': 3.614.0(@aws-sdk/client-sso-oidc@3.614.0) 339 | '@aws-sdk/credential-provider-web-identity': 3.609.0(@aws-sdk/client-sts@3.614.0) 340 | '@aws-sdk/types': 3.609.0 341 | '@smithy/credential-provider-imds': 3.1.4 342 | '@smithy/property-provider': 3.1.3 343 | '@smithy/shared-ini-file-loader': 3.1.4 344 | '@smithy/types': 3.3.0 345 | tslib: 2.6.2 346 | transitivePeerDependencies: 347 | - '@aws-sdk/client-sso-oidc' 348 | - '@aws-sdk/client-sts' 349 | - aws-crt 350 | dev: true 351 | 352 | /@aws-sdk/credential-provider-process@3.614.0: 353 | resolution: {integrity: sha512-Q0SI0sTRwi8iNODLs5+bbv8vgz8Qy2QdxbCHnPk/6Cx6LMf7i3dqmWquFbspqFRd8QiqxStrblwxrUYZi09tkA==} 354 | engines: {node: '>=16.0.0'} 355 | dependencies: 356 | '@aws-sdk/types': 3.609.0 357 | '@smithy/property-provider': 3.1.3 358 | '@smithy/shared-ini-file-loader': 3.1.4 359 | '@smithy/types': 3.3.0 360 | tslib: 2.6.2 361 | dev: true 362 | 363 | /@aws-sdk/credential-provider-sso@3.614.0(@aws-sdk/client-sso-oidc@3.614.0): 364 | resolution: {integrity: sha512-55+gp0JY4451cWI1qXmVMFM0GQaBKiQpXv2P0xmd9P3qLDyeFUSEW8XPh0d2lb1ICr6x4s47ynXVdGCIv2mXMg==} 365 | engines: {node: '>=16.0.0'} 366 | dependencies: 367 | '@aws-sdk/client-sso': 3.614.0 368 | '@aws-sdk/token-providers': 3.614.0(@aws-sdk/client-sso-oidc@3.614.0) 369 | '@aws-sdk/types': 3.609.0 370 | '@smithy/property-provider': 3.1.3 371 | '@smithy/shared-ini-file-loader': 3.1.4 372 | '@smithy/types': 3.3.0 373 | tslib: 2.6.2 374 | transitivePeerDependencies: 375 | - '@aws-sdk/client-sso-oidc' 376 | - aws-crt 377 | dev: true 378 | 379 | /@aws-sdk/credential-provider-web-identity@3.609.0(@aws-sdk/client-sts@3.614.0): 380 | resolution: {integrity: sha512-U+PG8NhlYYF45zbr1km3ROtBMYqyyj/oK8NRp++UHHeuavgrP+4wJ4wQnlEaKvJBjevfo3+dlIBcaeQ7NYejWg==} 381 | engines: {node: '>=16.0.0'} 382 | peerDependencies: 383 | '@aws-sdk/client-sts': ^3.609.0 384 | dependencies: 385 | '@aws-sdk/client-sts': 3.614.0 386 | '@aws-sdk/types': 3.609.0 387 | '@smithy/property-provider': 3.1.3 388 | '@smithy/types': 3.3.0 389 | tslib: 2.6.2 390 | dev: true 391 | 392 | /@aws-sdk/middleware-host-header@3.609.0: 393 | resolution: {integrity: sha512-iTKfo158lc4jLDfYeZmYMIBHsn8m6zX+XB6birCSNZ/rrlzAkPbGE43CNdKfvjyWdqgLMRXF+B+OcZRvqhMXPQ==} 394 | engines: {node: '>=16.0.0'} 395 | dependencies: 396 | '@aws-sdk/types': 3.609.0 397 | '@smithy/protocol-http': 4.0.3 398 | '@smithy/types': 3.3.0 399 | tslib: 2.6.2 400 | dev: true 401 | 402 | /@aws-sdk/middleware-logger@3.609.0: 403 | resolution: {integrity: sha512-S62U2dy4jMDhDFDK5gZ4VxFdWzCtLzwbYyFZx2uvPYTECkepLUfzLic2BHg2Qvtu4QjX+oGE3P/7fwaGIsGNuQ==} 404 | engines: {node: '>=16.0.0'} 405 | dependencies: 406 | '@aws-sdk/types': 3.609.0 407 | '@smithy/types': 3.3.0 408 | tslib: 2.6.2 409 | dev: true 410 | 411 | /@aws-sdk/middleware-recursion-detection@3.609.0: 412 | resolution: {integrity: sha512-6sewsYB7/o/nbUfA99Aa/LokM+a/u4Wpm/X2o0RxOsDtSB795ObebLJe2BxY5UssbGaWkn7LswyfvrdZNXNj1w==} 413 | engines: {node: '>=16.0.0'} 414 | dependencies: 415 | '@aws-sdk/types': 3.609.0 416 | '@smithy/protocol-http': 4.0.3 417 | '@smithy/types': 3.3.0 418 | tslib: 2.6.2 419 | dev: true 420 | 421 | /@aws-sdk/middleware-user-agent@3.614.0: 422 | resolution: {integrity: sha512-xUxh0UPQiMTG6E31Yvu6zVYlikrIcFDKljM11CaatInzvZubGTGiX0DjpqRlfGzUNsuPc/zNrKwRP2+wypgqIw==} 423 | engines: {node: '>=16.0.0'} 424 | dependencies: 425 | '@aws-sdk/types': 3.609.0 426 | '@aws-sdk/util-endpoints': 3.614.0 427 | '@smithy/protocol-http': 4.0.3 428 | '@smithy/types': 3.3.0 429 | tslib: 2.6.2 430 | dev: true 431 | 432 | /@aws-sdk/region-config-resolver@3.614.0: 433 | resolution: {integrity: sha512-vDCeMXvic/LU0KFIUjpC3RiSTIkkvESsEfbVHiHH0YINfl8HnEqR5rj+L8+phsCeVg2+LmYwYxd5NRz4PHxt5g==} 434 | engines: {node: '>=16.0.0'} 435 | dependencies: 436 | '@aws-sdk/types': 3.609.0 437 | '@smithy/node-config-provider': 3.1.4 438 | '@smithy/types': 3.3.0 439 | '@smithy/util-config-provider': 3.0.0 440 | '@smithy/util-middleware': 3.0.3 441 | tslib: 2.6.2 442 | dev: true 443 | 444 | /@aws-sdk/token-providers@3.614.0(@aws-sdk/client-sso-oidc@3.614.0): 445 | resolution: {integrity: sha512-okItqyY6L9IHdxqs+Z116y5/nda7rHxLvROxtAJdLavWTYDydxrZstImNgGWTeVdmc0xX2gJCI77UYUTQWnhRw==} 446 | engines: {node: '>=16.0.0'} 447 | peerDependencies: 448 | '@aws-sdk/client-sso-oidc': ^3.614.0 449 | dependencies: 450 | '@aws-sdk/client-sso-oidc': 3.614.0(@aws-sdk/client-sts@3.614.0) 451 | '@aws-sdk/types': 3.609.0 452 | '@smithy/property-provider': 3.1.3 453 | '@smithy/shared-ini-file-loader': 3.1.4 454 | '@smithy/types': 3.3.0 455 | tslib: 2.6.2 456 | dev: true 457 | 458 | /@aws-sdk/types@3.609.0: 459 | resolution: {integrity: sha512-+Tqnh9w0h2LcrUsdXyT1F8mNhXz+tVYBtP19LpeEGntmvHwa2XzvLUCWpoIAIVsHp5+HdB2X9Sn0KAtmbFXc2Q==} 460 | engines: {node: '>=16.0.0'} 461 | dependencies: 462 | '@smithy/types': 3.3.0 463 | tslib: 2.6.2 464 | dev: true 465 | 466 | /@aws-sdk/util-endpoints@3.614.0: 467 | resolution: {integrity: sha512-wK2cdrXHH4oz4IomV/yrGkftU9A+ITB6nFL+rxxyO78is2ifHJpFdV4aqk4LSkXYPi6CXWNru/Dqc7yiKXgJPw==} 468 | engines: {node: '>=16.0.0'} 469 | dependencies: 470 | '@aws-sdk/types': 3.609.0 471 | '@smithy/types': 3.3.0 472 | '@smithy/util-endpoints': 2.0.5 473 | tslib: 2.6.2 474 | dev: true 475 | 476 | /@aws-sdk/util-locate-window@3.208.0: 477 | resolution: {integrity: sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==} 478 | engines: {node: '>=14.0.0'} 479 | dependencies: 480 | tslib: 2.6.2 481 | dev: true 482 | 483 | /@aws-sdk/util-user-agent-browser@3.609.0: 484 | resolution: {integrity: sha512-fojPU+mNahzQ0YHYBsx0ZIhmMA96H+ZIZ665ObU9tl+SGdbLneVZVikGve+NmHTQwHzwkFsZYYnVKAkreJLAtA==} 485 | dependencies: 486 | '@aws-sdk/types': 3.609.0 487 | '@smithy/types': 3.3.0 488 | bowser: 2.11.0 489 | tslib: 2.6.2 490 | dev: true 491 | 492 | /@aws-sdk/util-user-agent-node@3.614.0: 493 | resolution: {integrity: sha512-15ElZT88peoHnq5TEoEtZwoXTXRxNrk60TZNdpl/TUBJ5oNJ9Dqb5Z4ryb8ofN6nm9aFf59GVAerFDz8iUoHBA==} 494 | engines: {node: '>=16.0.0'} 495 | peerDependencies: 496 | aws-crt: '>=1.0.0' 497 | peerDependenciesMeta: 498 | aws-crt: 499 | optional: true 500 | dependencies: 501 | '@aws-sdk/types': 3.609.0 502 | '@smithy/node-config-provider': 3.1.4 503 | '@smithy/types': 3.3.0 504 | tslib: 2.6.2 505 | dev: true 506 | 507 | /@babel/code-frame@7.18.6: 508 | resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} 509 | engines: {node: '>=6.9.0'} 510 | dependencies: 511 | '@babel/highlight': 7.18.6 512 | dev: true 513 | 514 | /@babel/helper-validator-identifier@7.19.1: 515 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 516 | engines: {node: '>=6.9.0'} 517 | dev: true 518 | 519 | /@babel/highlight@7.18.6: 520 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 521 | engines: {node: '>=6.9.0'} 522 | dependencies: 523 | '@babel/helper-validator-identifier': 7.19.1 524 | chalk: 2.4.2 525 | js-tokens: 4.0.0 526 | dev: true 527 | 528 | /@babel/runtime@7.21.0: 529 | resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} 530 | engines: {node: '>=6.9.0'} 531 | dependencies: 532 | regenerator-runtime: 0.13.11 533 | dev: true 534 | 535 | /@changesets/apply-release-plan@6.1.3: 536 | resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==} 537 | dependencies: 538 | '@babel/runtime': 7.21.0 539 | '@changesets/config': 2.3.0 540 | '@changesets/get-version-range-type': 0.3.2 541 | '@changesets/git': 2.0.0 542 | '@changesets/types': 5.2.1 543 | '@manypkg/get-packages': 1.1.3 544 | detect-indent: 6.1.0 545 | fs-extra: 7.0.1 546 | lodash.startcase: 4.4.0 547 | outdent: 0.5.0 548 | prettier: 2.8.4 549 | resolve-from: 5.0.0 550 | semver: 5.7.1 551 | dev: true 552 | 553 | /@changesets/assemble-release-plan@5.2.3: 554 | resolution: {integrity: sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g==} 555 | dependencies: 556 | '@babel/runtime': 7.21.0 557 | '@changesets/errors': 0.1.4 558 | '@changesets/get-dependents-graph': 1.3.5 559 | '@changesets/types': 5.2.1 560 | '@manypkg/get-packages': 1.1.3 561 | semver: 5.7.1 562 | dev: true 563 | 564 | /@changesets/changelog-git@0.1.14: 565 | resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} 566 | dependencies: 567 | '@changesets/types': 5.2.1 568 | dev: true 569 | 570 | /@changesets/changelog-github@0.4.8: 571 | resolution: {integrity: sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==} 572 | dependencies: 573 | '@changesets/get-github-info': 0.5.2 574 | '@changesets/types': 5.2.1 575 | dotenv: 8.6.0 576 | transitivePeerDependencies: 577 | - encoding 578 | dev: true 579 | 580 | /@changesets/cli@2.26.0: 581 | resolution: {integrity: sha512-0cbTiDms+ICTVtEwAFLNW0jBNex9f5+fFv3I771nBvdnV/mOjd1QJ4+f8KtVSOrwD9SJkk9xbDkWFb0oXd8d1Q==} 582 | hasBin: true 583 | dependencies: 584 | '@babel/runtime': 7.21.0 585 | '@changesets/apply-release-plan': 6.1.3 586 | '@changesets/assemble-release-plan': 5.2.3 587 | '@changesets/changelog-git': 0.1.14 588 | '@changesets/config': 2.3.0 589 | '@changesets/errors': 0.1.4 590 | '@changesets/get-dependents-graph': 1.3.5 591 | '@changesets/get-release-plan': 3.0.16 592 | '@changesets/git': 2.0.0 593 | '@changesets/logger': 0.0.5 594 | '@changesets/pre': 1.0.14 595 | '@changesets/read': 0.5.9 596 | '@changesets/types': 5.2.1 597 | '@changesets/write': 0.2.3 598 | '@manypkg/get-packages': 1.1.3 599 | '@types/is-ci': 3.0.0 600 | '@types/semver': 6.2.3 601 | ansi-colors: 4.1.3 602 | chalk: 2.4.2 603 | enquirer: 2.3.6 604 | external-editor: 3.1.0 605 | fs-extra: 7.0.1 606 | human-id: 1.0.2 607 | is-ci: 3.0.1 608 | meow: 6.1.1 609 | outdent: 0.5.0 610 | p-limit: 2.3.0 611 | preferred-pm: 3.0.3 612 | resolve-from: 5.0.0 613 | semver: 5.7.1 614 | spawndamnit: 2.0.0 615 | term-size: 2.2.1 616 | tty-table: 4.1.6 617 | dev: true 618 | 619 | /@changesets/config@2.3.0: 620 | resolution: {integrity: sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ==} 621 | dependencies: 622 | '@changesets/errors': 0.1.4 623 | '@changesets/get-dependents-graph': 1.3.5 624 | '@changesets/logger': 0.0.5 625 | '@changesets/types': 5.2.1 626 | '@manypkg/get-packages': 1.1.3 627 | fs-extra: 7.0.1 628 | micromatch: 4.0.5 629 | dev: true 630 | 631 | /@changesets/errors@0.1.4: 632 | resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} 633 | dependencies: 634 | extendable-error: 0.1.7 635 | dev: true 636 | 637 | /@changesets/get-dependents-graph@1.3.5: 638 | resolution: {integrity: sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA==} 639 | dependencies: 640 | '@changesets/types': 5.2.1 641 | '@manypkg/get-packages': 1.1.3 642 | chalk: 2.4.2 643 | fs-extra: 7.0.1 644 | semver: 5.7.1 645 | dev: true 646 | 647 | /@changesets/get-github-info@0.5.2: 648 | resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} 649 | dependencies: 650 | dataloader: 1.4.0 651 | node-fetch: 2.6.9 652 | transitivePeerDependencies: 653 | - encoding 654 | dev: true 655 | 656 | /@changesets/get-release-plan@3.0.16: 657 | resolution: {integrity: sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg==} 658 | dependencies: 659 | '@babel/runtime': 7.21.0 660 | '@changesets/assemble-release-plan': 5.2.3 661 | '@changesets/config': 2.3.0 662 | '@changesets/pre': 1.0.14 663 | '@changesets/read': 0.5.9 664 | '@changesets/types': 5.2.1 665 | '@manypkg/get-packages': 1.1.3 666 | dev: true 667 | 668 | /@changesets/get-version-range-type@0.3.2: 669 | resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} 670 | dev: true 671 | 672 | /@changesets/git@2.0.0: 673 | resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} 674 | dependencies: 675 | '@babel/runtime': 7.21.0 676 | '@changesets/errors': 0.1.4 677 | '@changesets/types': 5.2.1 678 | '@manypkg/get-packages': 1.1.3 679 | is-subdir: 1.2.0 680 | micromatch: 4.0.5 681 | spawndamnit: 2.0.0 682 | dev: true 683 | 684 | /@changesets/logger@0.0.5: 685 | resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} 686 | dependencies: 687 | chalk: 2.4.2 688 | dev: true 689 | 690 | /@changesets/parse@0.3.16: 691 | resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} 692 | dependencies: 693 | '@changesets/types': 5.2.1 694 | js-yaml: 3.14.1 695 | dev: true 696 | 697 | /@changesets/pre@1.0.14: 698 | resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} 699 | dependencies: 700 | '@babel/runtime': 7.21.0 701 | '@changesets/errors': 0.1.4 702 | '@changesets/types': 5.2.1 703 | '@manypkg/get-packages': 1.1.3 704 | fs-extra: 7.0.1 705 | dev: true 706 | 707 | /@changesets/read@0.5.9: 708 | resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} 709 | dependencies: 710 | '@babel/runtime': 7.21.0 711 | '@changesets/git': 2.0.0 712 | '@changesets/logger': 0.0.5 713 | '@changesets/parse': 0.3.16 714 | '@changesets/types': 5.2.1 715 | chalk: 2.4.2 716 | fs-extra: 7.0.1 717 | p-filter: 2.1.0 718 | dev: true 719 | 720 | /@changesets/types@4.1.0: 721 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 722 | dev: true 723 | 724 | /@changesets/types@5.2.1: 725 | resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} 726 | dev: true 727 | 728 | /@changesets/write@0.2.3: 729 | resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} 730 | dependencies: 731 | '@babel/runtime': 7.21.0 732 | '@changesets/types': 5.2.1 733 | fs-extra: 7.0.1 734 | human-id: 1.0.2 735 | prettier: 2.8.4 736 | dev: true 737 | 738 | /@esbuild/android-arm@0.15.18: 739 | resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} 740 | engines: {node: '>=12'} 741 | cpu: [arm] 742 | os: [android] 743 | requiresBuild: true 744 | dev: true 745 | optional: true 746 | 747 | /@esbuild/linux-loong64@0.15.18: 748 | resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} 749 | engines: {node: '>=12'} 750 | cpu: [loong64] 751 | os: [linux] 752 | requiresBuild: true 753 | dev: true 754 | optional: true 755 | 756 | /@manypkg/find-root@1.1.0: 757 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 758 | dependencies: 759 | '@babel/runtime': 7.21.0 760 | '@types/node': 12.20.55 761 | find-up: 4.1.0 762 | fs-extra: 8.1.0 763 | dev: true 764 | 765 | /@manypkg/get-packages@1.1.3: 766 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 767 | dependencies: 768 | '@babel/runtime': 7.21.0 769 | '@changesets/types': 4.1.0 770 | '@manypkg/find-root': 1.1.0 771 | fs-extra: 8.1.0 772 | globby: 11.1.0 773 | read-yaml-file: 1.1.0 774 | dev: true 775 | 776 | /@nodelib/fs.scandir@2.1.5: 777 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 778 | engines: {node: '>= 8'} 779 | dependencies: 780 | '@nodelib/fs.stat': 2.0.5 781 | run-parallel: 1.2.0 782 | dev: true 783 | 784 | /@nodelib/fs.stat@2.0.5: 785 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 786 | engines: {node: '>= 8'} 787 | dev: true 788 | 789 | /@nodelib/fs.walk@1.2.8: 790 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 791 | engines: {node: '>= 8'} 792 | dependencies: 793 | '@nodelib/fs.scandir': 2.1.5 794 | fastq: 1.15.0 795 | dev: true 796 | 797 | /@smithy/abort-controller@3.1.1: 798 | resolution: {integrity: sha512-MBJBiidoe+0cTFhyxT8g+9g7CeVccLM0IOKKUMCNQ1CNMJ/eIfoo0RTfVrXOONEI1UCN1W+zkiHSbzUNE9dZtQ==} 799 | engines: {node: '>=16.0.0'} 800 | dependencies: 801 | '@smithy/types': 3.3.0 802 | tslib: 2.6.2 803 | dev: true 804 | 805 | /@smithy/config-resolver@3.0.5: 806 | resolution: {integrity: sha512-SkW5LxfkSI1bUC74OtfBbdz+grQXYiPYolyu8VfpLIjEoN/sHVBlLeGXMQ1vX4ejkgfv6sxVbQJ32yF2cl1veA==} 807 | engines: {node: '>=16.0.0'} 808 | dependencies: 809 | '@smithy/node-config-provider': 3.1.4 810 | '@smithy/types': 3.3.0 811 | '@smithy/util-config-provider': 3.0.0 812 | '@smithy/util-middleware': 3.0.3 813 | tslib: 2.6.2 814 | dev: true 815 | 816 | /@smithy/core@2.2.6: 817 | resolution: {integrity: sha512-tBbVIv/ui7/lLTKayYJJvi8JLVL2SwOQTbNFEOrvzSE3ktByvsa1erwBOnAMo8N5Vu30g7lN4lLStrU75oDGuw==} 818 | engines: {node: '>=16.0.0'} 819 | dependencies: 820 | '@smithy/middleware-endpoint': 3.0.5 821 | '@smithy/middleware-retry': 3.0.9 822 | '@smithy/middleware-serde': 3.0.3 823 | '@smithy/protocol-http': 4.0.3 824 | '@smithy/smithy-client': 3.1.7 825 | '@smithy/types': 3.3.0 826 | '@smithy/util-middleware': 3.0.3 827 | tslib: 2.6.2 828 | dev: true 829 | 830 | /@smithy/credential-provider-imds@3.1.4: 831 | resolution: {integrity: sha512-NKyH01m97Xa5xf3pB2QOF3lnuE8RIK0hTVNU5zvZAwZU8uspYO4DHQVlK+Y5gwSrujTfHvbfd1D9UFJAc0iYKQ==} 832 | engines: {node: '>=16.0.0'} 833 | dependencies: 834 | '@smithy/node-config-provider': 3.1.4 835 | '@smithy/property-provider': 3.1.3 836 | '@smithy/types': 3.3.0 837 | '@smithy/url-parser': 3.0.3 838 | tslib: 2.6.2 839 | dev: true 840 | 841 | /@smithy/fetch-http-handler@3.2.1: 842 | resolution: {integrity: sha512-0w0bgUvZmfa0vHN8a+moByhCJT07WN6AHKEhFSOLsDpnszm+5dLVv5utGaqbhOrZ/aF5x3xuPMs/oMCd+4O5xg==} 843 | dependencies: 844 | '@smithy/protocol-http': 4.0.3 845 | '@smithy/querystring-builder': 3.0.3 846 | '@smithy/types': 3.3.0 847 | '@smithy/util-base64': 3.0.0 848 | tslib: 2.6.2 849 | dev: true 850 | 851 | /@smithy/hash-node@3.0.3: 852 | resolution: {integrity: sha512-2ctBXpPMG+B3BtWSGNnKELJ7SH9e4TNefJS0cd2eSkOOROeBnnVBnAy9LtJ8tY4vUEoe55N4CNPxzbWvR39iBw==} 853 | engines: {node: '>=16.0.0'} 854 | dependencies: 855 | '@smithy/types': 3.3.0 856 | '@smithy/util-buffer-from': 3.0.0 857 | '@smithy/util-utf8': 3.0.0 858 | tslib: 2.6.2 859 | dev: true 860 | 861 | /@smithy/invalid-dependency@3.0.3: 862 | resolution: {integrity: sha512-ID1eL/zpDULmHJbflb864k72/SNOZCADRc9i7Exq3RUNJw6raWUSlFEQ+3PX3EYs++bTxZB2dE9mEHTQLv61tw==} 863 | dependencies: 864 | '@smithy/types': 3.3.0 865 | tslib: 2.6.2 866 | dev: true 867 | 868 | /@smithy/is-array-buffer@2.2.0: 869 | resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} 870 | engines: {node: '>=14.0.0'} 871 | dependencies: 872 | tslib: 2.6.2 873 | dev: true 874 | 875 | /@smithy/is-array-buffer@3.0.0: 876 | resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} 877 | engines: {node: '>=16.0.0'} 878 | dependencies: 879 | tslib: 2.6.2 880 | dev: true 881 | 882 | /@smithy/middleware-content-length@3.0.3: 883 | resolution: {integrity: sha512-Dbz2bzexReYIQDWMr+gZhpwBetNXzbhnEMhYKA6urqmojO14CsXjnsoPYO8UL/xxcawn8ZsuVU61ElkLSltIUQ==} 884 | engines: {node: '>=16.0.0'} 885 | dependencies: 886 | '@smithy/protocol-http': 4.0.3 887 | '@smithy/types': 3.3.0 888 | tslib: 2.6.2 889 | dev: true 890 | 891 | /@smithy/middleware-endpoint@3.0.5: 892 | resolution: {integrity: sha512-V4acqqrh5tDxUEGVTOgf2lYMZqPQsoGntCrjrJZEeBzEzDry2d2vcI1QCXhGltXPPY+BMc6eksZMguA9fIY8vA==} 893 | engines: {node: '>=16.0.0'} 894 | dependencies: 895 | '@smithy/middleware-serde': 3.0.3 896 | '@smithy/node-config-provider': 3.1.4 897 | '@smithy/shared-ini-file-loader': 3.1.4 898 | '@smithy/types': 3.3.0 899 | '@smithy/url-parser': 3.0.3 900 | '@smithy/util-middleware': 3.0.3 901 | tslib: 2.6.2 902 | dev: true 903 | 904 | /@smithy/middleware-retry@3.0.9: 905 | resolution: {integrity: sha512-Mrv9omExU1gA7Y0VEJG2LieGfPYtwwcEiOnVGZ54a37NEMr66TJ0glFslOJFuKWG6izg5DpKIUmDV9rRxjm47Q==} 906 | engines: {node: '>=16.0.0'} 907 | dependencies: 908 | '@smithy/node-config-provider': 3.1.4 909 | '@smithy/protocol-http': 4.0.3 910 | '@smithy/service-error-classification': 3.0.3 911 | '@smithy/smithy-client': 3.1.7 912 | '@smithy/types': 3.3.0 913 | '@smithy/util-middleware': 3.0.3 914 | '@smithy/util-retry': 3.0.3 915 | tslib: 2.6.2 916 | uuid: 9.0.1 917 | dev: true 918 | 919 | /@smithy/middleware-serde@3.0.3: 920 | resolution: {integrity: sha512-puUbyJQBcg9eSErFXjKNiGILJGtiqmuuNKEYNYfUD57fUl4i9+mfmThtQhvFXU0hCVG0iEJhvQUipUf+/SsFdA==} 921 | engines: {node: '>=16.0.0'} 922 | dependencies: 923 | '@smithy/types': 3.3.0 924 | tslib: 2.6.2 925 | dev: true 926 | 927 | /@smithy/middleware-stack@3.0.3: 928 | resolution: {integrity: sha512-r4klY9nFudB0r9UdSMaGSyjyQK5adUyPnQN/ZM6M75phTxOdnc/AhpvGD1fQUvgmqjQEBGCwpnPbDm8pH5PapA==} 929 | engines: {node: '>=16.0.0'} 930 | dependencies: 931 | '@smithy/types': 3.3.0 932 | tslib: 2.6.2 933 | dev: true 934 | 935 | /@smithy/node-config-provider@3.1.4: 936 | resolution: {integrity: sha512-YvnElQy8HR4vDcAjoy7Xkx9YT8xZP4cBXcbJSgm/kxmiQu08DwUwj8rkGnyoJTpfl/3xYHH+d8zE+eHqoDCSdQ==} 937 | engines: {node: '>=16.0.0'} 938 | dependencies: 939 | '@smithy/property-provider': 3.1.3 940 | '@smithy/shared-ini-file-loader': 3.1.4 941 | '@smithy/types': 3.3.0 942 | tslib: 2.6.2 943 | dev: true 944 | 945 | /@smithy/node-http-handler@3.1.2: 946 | resolution: {integrity: sha512-Td3rUNI7qqtoSLTsJBtsyfoG4cF/XMFmJr6Z2dX8QNzIi6tIW6YmuyFml8mJ2cNpyWNqITKbROMOFrvQjmsOvw==} 947 | engines: {node: '>=16.0.0'} 948 | dependencies: 949 | '@smithy/abort-controller': 3.1.1 950 | '@smithy/protocol-http': 4.0.3 951 | '@smithy/querystring-builder': 3.0.3 952 | '@smithy/types': 3.3.0 953 | tslib: 2.6.2 954 | dev: true 955 | 956 | /@smithy/property-provider@3.1.3: 957 | resolution: {integrity: sha512-zahyOVR9Q4PEoguJ/NrFP4O7SMAfYO1HLhB18M+q+Z4KFd4V2obiMnlVoUFzFLSPeVt1POyNWneHHrZaTMoc/g==} 958 | engines: {node: '>=16.0.0'} 959 | dependencies: 960 | '@smithy/types': 3.3.0 961 | tslib: 2.6.2 962 | dev: true 963 | 964 | /@smithy/protocol-http@4.0.3: 965 | resolution: {integrity: sha512-x5jmrCWwQlx+Zv4jAtc33ijJ+vqqYN+c/ZkrnpvEe/uDas7AT7A/4Rc2CdfxgWv4WFGmEqODIrrUToPN6DDkGw==} 966 | engines: {node: '>=16.0.0'} 967 | dependencies: 968 | '@smithy/types': 3.3.0 969 | tslib: 2.6.2 970 | dev: true 971 | 972 | /@smithy/querystring-builder@3.0.3: 973 | resolution: {integrity: sha512-vyWckeUeesFKzCDaRwWLUA1Xym9McaA6XpFfAK5qI9DKJ4M33ooQGqvM4J+LalH4u/Dq9nFiC8U6Qn1qi0+9zw==} 974 | engines: {node: '>=16.0.0'} 975 | dependencies: 976 | '@smithy/types': 3.3.0 977 | '@smithy/util-uri-escape': 3.0.0 978 | tslib: 2.6.2 979 | dev: true 980 | 981 | /@smithy/querystring-parser@3.0.3: 982 | resolution: {integrity: sha512-zahM1lQv2YjmznnfQsWbYojFe55l0SLG/988brlLv1i8z3dubloLF+75ATRsqPBboUXsW6I9CPGE5rQgLfY0vQ==} 983 | engines: {node: '>=16.0.0'} 984 | dependencies: 985 | '@smithy/types': 3.3.0 986 | tslib: 2.6.2 987 | dev: true 988 | 989 | /@smithy/service-error-classification@3.0.3: 990 | resolution: {integrity: sha512-Jn39sSl8cim/VlkLsUhRFq/dKDnRUFlfRkvhOJaUbLBXUsLRLNf9WaxDv/z9BjuQ3A6k/qE8af1lsqcwm7+DaQ==} 991 | engines: {node: '>=16.0.0'} 992 | dependencies: 993 | '@smithy/types': 3.3.0 994 | dev: true 995 | 996 | /@smithy/shared-ini-file-loader@3.1.4: 997 | resolution: {integrity: sha512-qMxS4hBGB8FY2GQqshcRUy1K6k8aBWP5vwm8qKkCT3A9K2dawUwOIJfqh9Yste/Bl0J2lzosVyrXDj68kLcHXQ==} 998 | engines: {node: '>=16.0.0'} 999 | dependencies: 1000 | '@smithy/types': 3.3.0 1001 | tslib: 2.6.2 1002 | dev: true 1003 | 1004 | /@smithy/signature-v4@3.1.2: 1005 | resolution: {integrity: sha512-3BcPylEsYtD0esM4Hoyml/+s7WP2LFhcM3J2AGdcL2vx9O60TtfpDOL72gjb4lU8NeRPeKAwR77YNyyGvMbuEA==} 1006 | engines: {node: '>=16.0.0'} 1007 | dependencies: 1008 | '@smithy/is-array-buffer': 3.0.0 1009 | '@smithy/types': 3.3.0 1010 | '@smithy/util-hex-encoding': 3.0.0 1011 | '@smithy/util-middleware': 3.0.3 1012 | '@smithy/util-uri-escape': 3.0.0 1013 | '@smithy/util-utf8': 3.0.0 1014 | tslib: 2.6.2 1015 | dev: true 1016 | 1017 | /@smithy/smithy-client@3.1.7: 1018 | resolution: {integrity: sha512-nZbJZB0XI3YnaFBWGDBr7kjaew6O0oNYNmopyIz6gKZEbxzrtH7rwvU1GcVxcSFoOwWecLJEe79fxEMljHopFQ==} 1019 | engines: {node: '>=16.0.0'} 1020 | dependencies: 1021 | '@smithy/middleware-endpoint': 3.0.5 1022 | '@smithy/middleware-stack': 3.0.3 1023 | '@smithy/protocol-http': 4.0.3 1024 | '@smithy/types': 3.3.0 1025 | '@smithy/util-stream': 3.0.6 1026 | tslib: 2.6.2 1027 | dev: true 1028 | 1029 | /@smithy/types@3.3.0: 1030 | resolution: {integrity: sha512-IxvBBCTFDHbVoK7zIxqA1ZOdc4QfM5HM7rGleCuHi7L1wnKv5Pn69xXJQ9hgxH60ZVygH9/JG0jRgtUncE3QUA==} 1031 | engines: {node: '>=16.0.0'} 1032 | dependencies: 1033 | tslib: 2.6.2 1034 | dev: true 1035 | 1036 | /@smithy/url-parser@3.0.3: 1037 | resolution: {integrity: sha512-pw3VtZtX2rg+s6HMs6/+u9+hu6oY6U7IohGhVNnjbgKy86wcIsSZwgHrFR+t67Uyxvp4Xz3p3kGXXIpTNisq8A==} 1038 | dependencies: 1039 | '@smithy/querystring-parser': 3.0.3 1040 | '@smithy/types': 3.3.0 1041 | tslib: 2.6.2 1042 | dev: true 1043 | 1044 | /@smithy/util-base64@3.0.0: 1045 | resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} 1046 | engines: {node: '>=16.0.0'} 1047 | dependencies: 1048 | '@smithy/util-buffer-from': 3.0.0 1049 | '@smithy/util-utf8': 3.0.0 1050 | tslib: 2.6.2 1051 | dev: true 1052 | 1053 | /@smithy/util-body-length-browser@3.0.0: 1054 | resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} 1055 | dependencies: 1056 | tslib: 2.6.2 1057 | dev: true 1058 | 1059 | /@smithy/util-body-length-node@3.0.0: 1060 | resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} 1061 | engines: {node: '>=16.0.0'} 1062 | dependencies: 1063 | tslib: 2.6.2 1064 | dev: true 1065 | 1066 | /@smithy/util-buffer-from@2.2.0: 1067 | resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} 1068 | engines: {node: '>=14.0.0'} 1069 | dependencies: 1070 | '@smithy/is-array-buffer': 2.2.0 1071 | tslib: 2.6.2 1072 | dev: true 1073 | 1074 | /@smithy/util-buffer-from@3.0.0: 1075 | resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} 1076 | engines: {node: '>=16.0.0'} 1077 | dependencies: 1078 | '@smithy/is-array-buffer': 3.0.0 1079 | tslib: 2.6.2 1080 | dev: true 1081 | 1082 | /@smithy/util-config-provider@3.0.0: 1083 | resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} 1084 | engines: {node: '>=16.0.0'} 1085 | dependencies: 1086 | tslib: 2.6.2 1087 | dev: true 1088 | 1089 | /@smithy/util-defaults-mode-browser@3.0.9: 1090 | resolution: {integrity: sha512-WKPcElz92MAQG09miBdb0GxEH/MwD5GfE8g07WokITq5g6J1ROQfYCKC1wNnkqAGfrSywT7L0rdvvqlBplqiyA==} 1091 | engines: {node: '>= 10.0.0'} 1092 | dependencies: 1093 | '@smithy/property-provider': 3.1.3 1094 | '@smithy/smithy-client': 3.1.7 1095 | '@smithy/types': 3.3.0 1096 | bowser: 2.11.0 1097 | tslib: 2.6.2 1098 | dev: true 1099 | 1100 | /@smithy/util-defaults-mode-node@3.0.9: 1101 | resolution: {integrity: sha512-dQLrUqFxqpf0GvEKEuFdgXcdZwz6oFm752h4d6C7lQz+RLddf761L2r7dSwGWzESMMB3wKj0jL+skRhEGlecjw==} 1102 | engines: {node: '>= 10.0.0'} 1103 | dependencies: 1104 | '@smithy/config-resolver': 3.0.5 1105 | '@smithy/credential-provider-imds': 3.1.4 1106 | '@smithy/node-config-provider': 3.1.4 1107 | '@smithy/property-provider': 3.1.3 1108 | '@smithy/smithy-client': 3.1.7 1109 | '@smithy/types': 3.3.0 1110 | tslib: 2.6.2 1111 | dev: true 1112 | 1113 | /@smithy/util-endpoints@2.0.5: 1114 | resolution: {integrity: sha512-ReQP0BWihIE68OAblC/WQmDD40Gx+QY1Ez8mTdFMXpmjfxSyz2fVQu3A4zXRfQU9sZXtewk3GmhfOHswvX+eNg==} 1115 | engines: {node: '>=16.0.0'} 1116 | dependencies: 1117 | '@smithy/node-config-provider': 3.1.4 1118 | '@smithy/types': 3.3.0 1119 | tslib: 2.6.2 1120 | dev: true 1121 | 1122 | /@smithy/util-hex-encoding@3.0.0: 1123 | resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} 1124 | engines: {node: '>=16.0.0'} 1125 | dependencies: 1126 | tslib: 2.6.2 1127 | dev: true 1128 | 1129 | /@smithy/util-middleware@3.0.3: 1130 | resolution: {integrity: sha512-l+StyYYK/eO3DlVPbU+4Bi06Jjal+PFLSMmlWM1BEwyLxZ3aKkf1ROnoIakfaA7mC6uw3ny7JBkau4Yc+5zfWw==} 1131 | engines: {node: '>=16.0.0'} 1132 | dependencies: 1133 | '@smithy/types': 3.3.0 1134 | tslib: 2.6.2 1135 | dev: true 1136 | 1137 | /@smithy/util-retry@3.0.3: 1138 | resolution: {integrity: sha512-AFw+hjpbtVApzpNDhbjNG5NA3kyoMs7vx0gsgmlJF4s+yz1Zlepde7J58zpIRIsdjc+emhpAITxA88qLkPF26w==} 1139 | engines: {node: '>=16.0.0'} 1140 | dependencies: 1141 | '@smithy/service-error-classification': 3.0.3 1142 | '@smithy/types': 3.3.0 1143 | tslib: 2.6.2 1144 | dev: true 1145 | 1146 | /@smithy/util-stream@3.0.6: 1147 | resolution: {integrity: sha512-w9i//7egejAIvplX821rPWWgaiY1dxsQUw0hXX7qwa/uZ9U3zplqTQ871jWadkcVB9gFDhkPWYVZf4yfFbZ0xA==} 1148 | engines: {node: '>=16.0.0'} 1149 | dependencies: 1150 | '@smithy/fetch-http-handler': 3.2.1 1151 | '@smithy/node-http-handler': 3.1.2 1152 | '@smithy/types': 3.3.0 1153 | '@smithy/util-base64': 3.0.0 1154 | '@smithy/util-buffer-from': 3.0.0 1155 | '@smithy/util-hex-encoding': 3.0.0 1156 | '@smithy/util-utf8': 3.0.0 1157 | tslib: 2.6.2 1158 | dev: true 1159 | 1160 | /@smithy/util-uri-escape@3.0.0: 1161 | resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} 1162 | engines: {node: '>=16.0.0'} 1163 | dependencies: 1164 | tslib: 2.6.2 1165 | dev: true 1166 | 1167 | /@smithy/util-utf8@2.3.0: 1168 | resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} 1169 | engines: {node: '>=14.0.0'} 1170 | dependencies: 1171 | '@smithy/util-buffer-from': 2.2.0 1172 | tslib: 2.6.2 1173 | dev: true 1174 | 1175 | /@smithy/util-utf8@3.0.0: 1176 | resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} 1177 | engines: {node: '>=16.0.0'} 1178 | dependencies: 1179 | '@smithy/util-buffer-from': 3.0.0 1180 | tslib: 2.6.2 1181 | dev: true 1182 | 1183 | /@tsconfig/node14@1.0.3: 1184 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 1185 | dev: true 1186 | 1187 | /@types/chai-subset@1.3.3: 1188 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 1189 | dependencies: 1190 | '@types/chai': 4.3.4 1191 | dev: true 1192 | 1193 | /@types/chai@4.3.4: 1194 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 1195 | dev: true 1196 | 1197 | /@types/is-ci@3.0.0: 1198 | resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} 1199 | dependencies: 1200 | ci-info: 3.8.0 1201 | dev: true 1202 | 1203 | /@types/minimist@1.2.2: 1204 | resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} 1205 | dev: true 1206 | 1207 | /@types/node@12.20.55: 1208 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 1209 | dev: true 1210 | 1211 | /@types/node@18.14.2: 1212 | resolution: {integrity: sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==} 1213 | dev: true 1214 | 1215 | /@types/normalize-package-data@2.4.1: 1216 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 1217 | dev: true 1218 | 1219 | /@types/semver@6.2.3: 1220 | resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} 1221 | dev: true 1222 | 1223 | /ansi-colors@4.1.3: 1224 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 1225 | engines: {node: '>=6'} 1226 | dev: true 1227 | 1228 | /ansi-regex@5.0.1: 1229 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1230 | engines: {node: '>=8'} 1231 | dev: true 1232 | 1233 | /ansi-styles@3.2.1: 1234 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1235 | engines: {node: '>=4'} 1236 | dependencies: 1237 | color-convert: 1.9.3 1238 | dev: true 1239 | 1240 | /ansi-styles@4.3.0: 1241 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1242 | engines: {node: '>=8'} 1243 | dependencies: 1244 | color-convert: 2.0.1 1245 | dev: true 1246 | 1247 | /argparse@1.0.10: 1248 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 1249 | dependencies: 1250 | sprintf-js: 1.0.3 1251 | dev: true 1252 | 1253 | /array-union@2.1.0: 1254 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1255 | engines: {node: '>=8'} 1256 | dev: true 1257 | 1258 | /array.prototype.flat@1.3.1: 1259 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} 1260 | engines: {node: '>= 0.4'} 1261 | dependencies: 1262 | call-bind: 1.0.2 1263 | define-properties: 1.2.0 1264 | es-abstract: 1.21.1 1265 | es-shim-unscopables: 1.0.0 1266 | dev: true 1267 | 1268 | /arrify@1.0.1: 1269 | resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} 1270 | engines: {node: '>=0.10.0'} 1271 | dev: true 1272 | 1273 | /assertion-error@1.1.0: 1274 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 1275 | dev: true 1276 | 1277 | /available-typed-arrays@1.0.5: 1278 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 1279 | engines: {node: '>= 0.4'} 1280 | dev: true 1281 | 1282 | /better-path-resolve@1.0.0: 1283 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 1284 | engines: {node: '>=4'} 1285 | dependencies: 1286 | is-windows: 1.0.2 1287 | dev: true 1288 | 1289 | /bowser@2.11.0: 1290 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 1291 | dev: true 1292 | 1293 | /braces@3.0.2: 1294 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1295 | engines: {node: '>=8'} 1296 | dependencies: 1297 | fill-range: 7.0.1 1298 | dev: true 1299 | 1300 | /breakword@1.0.5: 1301 | resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} 1302 | dependencies: 1303 | wcwidth: 1.0.1 1304 | dev: true 1305 | 1306 | /call-bind@1.0.2: 1307 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 1308 | dependencies: 1309 | function-bind: 1.1.1 1310 | get-intrinsic: 1.2.0 1311 | dev: true 1312 | 1313 | /camelcase-keys@6.2.2: 1314 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 1315 | engines: {node: '>=8'} 1316 | dependencies: 1317 | camelcase: 5.3.1 1318 | map-obj: 4.3.0 1319 | quick-lru: 4.0.1 1320 | dev: true 1321 | 1322 | /camelcase@5.3.1: 1323 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 1324 | engines: {node: '>=6'} 1325 | dev: true 1326 | 1327 | /chai@4.3.7: 1328 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 1329 | engines: {node: '>=4'} 1330 | dependencies: 1331 | assertion-error: 1.1.0 1332 | check-error: 1.0.2 1333 | deep-eql: 4.1.3 1334 | get-func-name: 2.0.0 1335 | loupe: 2.3.6 1336 | pathval: 1.1.1 1337 | type-detect: 4.0.8 1338 | dev: true 1339 | 1340 | /chalk@2.4.2: 1341 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1342 | engines: {node: '>=4'} 1343 | dependencies: 1344 | ansi-styles: 3.2.1 1345 | escape-string-regexp: 1.0.5 1346 | supports-color: 5.5.0 1347 | dev: true 1348 | 1349 | /chalk@4.1.2: 1350 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1351 | engines: {node: '>=10'} 1352 | dependencies: 1353 | ansi-styles: 4.3.0 1354 | supports-color: 7.2.0 1355 | dev: true 1356 | 1357 | /chardet@0.7.0: 1358 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 1359 | dev: true 1360 | 1361 | /check-error@1.0.2: 1362 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 1363 | dev: true 1364 | 1365 | /ci-info@3.8.0: 1366 | resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} 1367 | engines: {node: '>=8'} 1368 | dev: true 1369 | 1370 | /cliui@6.0.0: 1371 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 1372 | dependencies: 1373 | string-width: 4.2.3 1374 | strip-ansi: 6.0.1 1375 | wrap-ansi: 6.2.0 1376 | dev: true 1377 | 1378 | /cliui@8.0.1: 1379 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 1380 | engines: {node: '>=12'} 1381 | dependencies: 1382 | string-width: 4.2.3 1383 | strip-ansi: 6.0.1 1384 | wrap-ansi: 7.0.0 1385 | dev: true 1386 | 1387 | /clone@1.0.4: 1388 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} 1389 | engines: {node: '>=0.8'} 1390 | dev: true 1391 | 1392 | /color-convert@1.9.3: 1393 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1394 | dependencies: 1395 | color-name: 1.1.3 1396 | dev: true 1397 | 1398 | /color-convert@2.0.1: 1399 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1400 | engines: {node: '>=7.0.0'} 1401 | dependencies: 1402 | color-name: 1.1.4 1403 | dev: true 1404 | 1405 | /color-name@1.1.3: 1406 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1407 | dev: true 1408 | 1409 | /color-name@1.1.4: 1410 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1411 | dev: true 1412 | 1413 | /cross-spawn@5.1.0: 1414 | resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} 1415 | dependencies: 1416 | lru-cache: 4.1.5 1417 | shebang-command: 1.2.0 1418 | which: 1.3.1 1419 | dev: true 1420 | 1421 | /csv-generate@3.4.3: 1422 | resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} 1423 | dev: true 1424 | 1425 | /csv-parse@4.16.3: 1426 | resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} 1427 | dev: true 1428 | 1429 | /csv-stringify@5.6.5: 1430 | resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} 1431 | dev: true 1432 | 1433 | /csv@5.5.3: 1434 | resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} 1435 | engines: {node: '>= 0.1.90'} 1436 | dependencies: 1437 | csv-generate: 3.4.3 1438 | csv-parse: 4.16.3 1439 | csv-stringify: 5.6.5 1440 | stream-transform: 2.1.3 1441 | dev: true 1442 | 1443 | /dataloader@1.4.0: 1444 | resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} 1445 | dev: true 1446 | 1447 | /debug@4.3.4: 1448 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1449 | engines: {node: '>=6.0'} 1450 | peerDependencies: 1451 | supports-color: '*' 1452 | peerDependenciesMeta: 1453 | supports-color: 1454 | optional: true 1455 | dependencies: 1456 | ms: 2.1.2 1457 | dev: true 1458 | 1459 | /decamelize-keys@1.1.1: 1460 | resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} 1461 | engines: {node: '>=0.10.0'} 1462 | dependencies: 1463 | decamelize: 1.2.0 1464 | map-obj: 1.0.1 1465 | dev: true 1466 | 1467 | /decamelize@1.2.0: 1468 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 1469 | engines: {node: '>=0.10.0'} 1470 | dev: true 1471 | 1472 | /deep-eql@4.1.3: 1473 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1474 | engines: {node: '>=6'} 1475 | dependencies: 1476 | type-detect: 4.0.8 1477 | dev: true 1478 | 1479 | /defaults@1.0.4: 1480 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} 1481 | dependencies: 1482 | clone: 1.0.4 1483 | dev: true 1484 | 1485 | /define-properties@1.2.0: 1486 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 1487 | engines: {node: '>= 0.4'} 1488 | dependencies: 1489 | has-property-descriptors: 1.0.0 1490 | object-keys: 1.1.1 1491 | dev: true 1492 | 1493 | /detect-indent@6.1.0: 1494 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 1495 | engines: {node: '>=8'} 1496 | dev: true 1497 | 1498 | /dir-glob@3.0.1: 1499 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1500 | engines: {node: '>=8'} 1501 | dependencies: 1502 | path-type: 4.0.0 1503 | dev: true 1504 | 1505 | /dotenv@8.6.0: 1506 | resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} 1507 | engines: {node: '>=10'} 1508 | dev: true 1509 | 1510 | /emoji-regex@8.0.0: 1511 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1512 | dev: true 1513 | 1514 | /enquirer@2.3.6: 1515 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} 1516 | engines: {node: '>=8.6'} 1517 | dependencies: 1518 | ansi-colors: 4.1.3 1519 | dev: true 1520 | 1521 | /error-ex@1.3.2: 1522 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1523 | dependencies: 1524 | is-arrayish: 0.2.1 1525 | dev: true 1526 | 1527 | /es-abstract@1.21.1: 1528 | resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} 1529 | engines: {node: '>= 0.4'} 1530 | dependencies: 1531 | available-typed-arrays: 1.0.5 1532 | call-bind: 1.0.2 1533 | es-set-tostringtag: 2.0.1 1534 | es-to-primitive: 1.2.1 1535 | function-bind: 1.1.1 1536 | function.prototype.name: 1.1.5 1537 | get-intrinsic: 1.2.0 1538 | get-symbol-description: 1.0.0 1539 | globalthis: 1.0.3 1540 | gopd: 1.0.1 1541 | has: 1.0.3 1542 | has-property-descriptors: 1.0.0 1543 | has-proto: 1.0.1 1544 | has-symbols: 1.0.3 1545 | internal-slot: 1.0.5 1546 | is-array-buffer: 3.0.1 1547 | is-callable: 1.2.7 1548 | is-negative-zero: 2.0.2 1549 | is-regex: 1.1.4 1550 | is-shared-array-buffer: 1.0.2 1551 | is-string: 1.0.7 1552 | is-typed-array: 1.1.10 1553 | is-weakref: 1.0.2 1554 | object-inspect: 1.12.3 1555 | object-keys: 1.1.1 1556 | object.assign: 4.1.4 1557 | regexp.prototype.flags: 1.4.3 1558 | safe-regex-test: 1.0.0 1559 | string.prototype.trimend: 1.0.6 1560 | string.prototype.trimstart: 1.0.6 1561 | typed-array-length: 1.0.4 1562 | unbox-primitive: 1.0.2 1563 | which-typed-array: 1.1.9 1564 | dev: true 1565 | 1566 | /es-set-tostringtag@2.0.1: 1567 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 1568 | engines: {node: '>= 0.4'} 1569 | dependencies: 1570 | get-intrinsic: 1.2.0 1571 | has: 1.0.3 1572 | has-tostringtag: 1.0.0 1573 | dev: true 1574 | 1575 | /es-shim-unscopables@1.0.0: 1576 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 1577 | dependencies: 1578 | has: 1.0.3 1579 | dev: true 1580 | 1581 | /es-to-primitive@1.2.1: 1582 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1583 | engines: {node: '>= 0.4'} 1584 | dependencies: 1585 | is-callable: 1.2.7 1586 | is-date-object: 1.0.5 1587 | is-symbol: 1.0.4 1588 | dev: true 1589 | 1590 | /esbuild-android-64@0.15.18: 1591 | resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} 1592 | engines: {node: '>=12'} 1593 | cpu: [x64] 1594 | os: [android] 1595 | requiresBuild: true 1596 | dev: true 1597 | optional: true 1598 | 1599 | /esbuild-android-arm64@0.15.18: 1600 | resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} 1601 | engines: {node: '>=12'} 1602 | cpu: [arm64] 1603 | os: [android] 1604 | requiresBuild: true 1605 | dev: true 1606 | optional: true 1607 | 1608 | /esbuild-darwin-64@0.15.18: 1609 | resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} 1610 | engines: {node: '>=12'} 1611 | cpu: [x64] 1612 | os: [darwin] 1613 | requiresBuild: true 1614 | dev: true 1615 | optional: true 1616 | 1617 | /esbuild-darwin-arm64@0.15.18: 1618 | resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} 1619 | engines: {node: '>=12'} 1620 | cpu: [arm64] 1621 | os: [darwin] 1622 | requiresBuild: true 1623 | dev: true 1624 | optional: true 1625 | 1626 | /esbuild-freebsd-64@0.15.18: 1627 | resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} 1628 | engines: {node: '>=12'} 1629 | cpu: [x64] 1630 | os: [freebsd] 1631 | requiresBuild: true 1632 | dev: true 1633 | optional: true 1634 | 1635 | /esbuild-freebsd-arm64@0.15.18: 1636 | resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} 1637 | engines: {node: '>=12'} 1638 | cpu: [arm64] 1639 | os: [freebsd] 1640 | requiresBuild: true 1641 | dev: true 1642 | optional: true 1643 | 1644 | /esbuild-linux-32@0.15.18: 1645 | resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} 1646 | engines: {node: '>=12'} 1647 | cpu: [ia32] 1648 | os: [linux] 1649 | requiresBuild: true 1650 | dev: true 1651 | optional: true 1652 | 1653 | /esbuild-linux-64@0.15.18: 1654 | resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} 1655 | engines: {node: '>=12'} 1656 | cpu: [x64] 1657 | os: [linux] 1658 | requiresBuild: true 1659 | dev: true 1660 | optional: true 1661 | 1662 | /esbuild-linux-arm64@0.15.18: 1663 | resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} 1664 | engines: {node: '>=12'} 1665 | cpu: [arm64] 1666 | os: [linux] 1667 | requiresBuild: true 1668 | dev: true 1669 | optional: true 1670 | 1671 | /esbuild-linux-arm@0.15.18: 1672 | resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} 1673 | engines: {node: '>=12'} 1674 | cpu: [arm] 1675 | os: [linux] 1676 | requiresBuild: true 1677 | dev: true 1678 | optional: true 1679 | 1680 | /esbuild-linux-mips64le@0.15.18: 1681 | resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} 1682 | engines: {node: '>=12'} 1683 | cpu: [mips64el] 1684 | os: [linux] 1685 | requiresBuild: true 1686 | dev: true 1687 | optional: true 1688 | 1689 | /esbuild-linux-ppc64le@0.15.18: 1690 | resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} 1691 | engines: {node: '>=12'} 1692 | cpu: [ppc64] 1693 | os: [linux] 1694 | requiresBuild: true 1695 | dev: true 1696 | optional: true 1697 | 1698 | /esbuild-linux-riscv64@0.15.18: 1699 | resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} 1700 | engines: {node: '>=12'} 1701 | cpu: [riscv64] 1702 | os: [linux] 1703 | requiresBuild: true 1704 | dev: true 1705 | optional: true 1706 | 1707 | /esbuild-linux-s390x@0.15.18: 1708 | resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} 1709 | engines: {node: '>=12'} 1710 | cpu: [s390x] 1711 | os: [linux] 1712 | requiresBuild: true 1713 | dev: true 1714 | optional: true 1715 | 1716 | /esbuild-netbsd-64@0.15.18: 1717 | resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} 1718 | engines: {node: '>=12'} 1719 | cpu: [x64] 1720 | os: [netbsd] 1721 | requiresBuild: true 1722 | dev: true 1723 | optional: true 1724 | 1725 | /esbuild-openbsd-64@0.15.18: 1726 | resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} 1727 | engines: {node: '>=12'} 1728 | cpu: [x64] 1729 | os: [openbsd] 1730 | requiresBuild: true 1731 | dev: true 1732 | optional: true 1733 | 1734 | /esbuild-sunos-64@0.15.18: 1735 | resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} 1736 | engines: {node: '>=12'} 1737 | cpu: [x64] 1738 | os: [sunos] 1739 | requiresBuild: true 1740 | dev: true 1741 | optional: true 1742 | 1743 | /esbuild-windows-32@0.15.18: 1744 | resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} 1745 | engines: {node: '>=12'} 1746 | cpu: [ia32] 1747 | os: [win32] 1748 | requiresBuild: true 1749 | dev: true 1750 | optional: true 1751 | 1752 | /esbuild-windows-64@0.15.18: 1753 | resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} 1754 | engines: {node: '>=12'} 1755 | cpu: [x64] 1756 | os: [win32] 1757 | requiresBuild: true 1758 | dev: true 1759 | optional: true 1760 | 1761 | /esbuild-windows-arm64@0.15.18: 1762 | resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} 1763 | engines: {node: '>=12'} 1764 | cpu: [arm64] 1765 | os: [win32] 1766 | requiresBuild: true 1767 | dev: true 1768 | optional: true 1769 | 1770 | /esbuild@0.15.18: 1771 | resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} 1772 | engines: {node: '>=12'} 1773 | hasBin: true 1774 | requiresBuild: true 1775 | optionalDependencies: 1776 | '@esbuild/android-arm': 0.15.18 1777 | '@esbuild/linux-loong64': 0.15.18 1778 | esbuild-android-64: 0.15.18 1779 | esbuild-android-arm64: 0.15.18 1780 | esbuild-darwin-64: 0.15.18 1781 | esbuild-darwin-arm64: 0.15.18 1782 | esbuild-freebsd-64: 0.15.18 1783 | esbuild-freebsd-arm64: 0.15.18 1784 | esbuild-linux-32: 0.15.18 1785 | esbuild-linux-64: 0.15.18 1786 | esbuild-linux-arm: 0.15.18 1787 | esbuild-linux-arm64: 0.15.18 1788 | esbuild-linux-mips64le: 0.15.18 1789 | esbuild-linux-ppc64le: 0.15.18 1790 | esbuild-linux-riscv64: 0.15.18 1791 | esbuild-linux-s390x: 0.15.18 1792 | esbuild-netbsd-64: 0.15.18 1793 | esbuild-openbsd-64: 0.15.18 1794 | esbuild-sunos-64: 0.15.18 1795 | esbuild-windows-32: 0.15.18 1796 | esbuild-windows-64: 0.15.18 1797 | esbuild-windows-arm64: 0.15.18 1798 | dev: true 1799 | 1800 | /escalade@3.1.1: 1801 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1802 | engines: {node: '>=6'} 1803 | dev: true 1804 | 1805 | /escape-string-regexp@1.0.5: 1806 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1807 | engines: {node: '>=0.8.0'} 1808 | dev: true 1809 | 1810 | /esprima@4.0.1: 1811 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1812 | engines: {node: '>=4'} 1813 | hasBin: true 1814 | dev: true 1815 | 1816 | /extendable-error@0.1.7: 1817 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 1818 | dev: true 1819 | 1820 | /external-editor@3.1.0: 1821 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 1822 | engines: {node: '>=4'} 1823 | dependencies: 1824 | chardet: 0.7.0 1825 | iconv-lite: 0.4.24 1826 | tmp: 0.0.33 1827 | dev: true 1828 | 1829 | /fast-glob@3.2.12: 1830 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1831 | engines: {node: '>=8.6.0'} 1832 | dependencies: 1833 | '@nodelib/fs.stat': 2.0.5 1834 | '@nodelib/fs.walk': 1.2.8 1835 | glob-parent: 5.1.2 1836 | merge2: 1.4.1 1837 | micromatch: 4.0.5 1838 | dev: true 1839 | 1840 | /fast-xml-parser@4.2.5: 1841 | resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} 1842 | hasBin: true 1843 | dependencies: 1844 | strnum: 1.0.5 1845 | dev: true 1846 | 1847 | /fastq@1.15.0: 1848 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1849 | dependencies: 1850 | reusify: 1.0.4 1851 | dev: true 1852 | 1853 | /fill-range@7.0.1: 1854 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1855 | engines: {node: '>=8'} 1856 | dependencies: 1857 | to-regex-range: 5.0.1 1858 | dev: true 1859 | 1860 | /find-up@4.1.0: 1861 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1862 | engines: {node: '>=8'} 1863 | dependencies: 1864 | locate-path: 5.0.0 1865 | path-exists: 4.0.0 1866 | dev: true 1867 | 1868 | /find-up@5.0.0: 1869 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1870 | engines: {node: '>=10'} 1871 | dependencies: 1872 | locate-path: 6.0.0 1873 | path-exists: 4.0.0 1874 | dev: true 1875 | 1876 | /find-yarn-workspace-root2@1.2.16: 1877 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} 1878 | dependencies: 1879 | micromatch: 4.0.5 1880 | pkg-dir: 4.2.0 1881 | dev: true 1882 | 1883 | /for-each@0.3.3: 1884 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1885 | dependencies: 1886 | is-callable: 1.2.7 1887 | dev: true 1888 | 1889 | /fs-extra@7.0.1: 1890 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 1891 | engines: {node: '>=6 <7 || >=8'} 1892 | dependencies: 1893 | graceful-fs: 4.2.10 1894 | jsonfile: 4.0.0 1895 | universalify: 0.1.2 1896 | dev: true 1897 | 1898 | /fs-extra@8.1.0: 1899 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 1900 | engines: {node: '>=6 <7 || >=8'} 1901 | dependencies: 1902 | graceful-fs: 4.2.10 1903 | jsonfile: 4.0.0 1904 | universalify: 0.1.2 1905 | dev: true 1906 | 1907 | /fsevents@2.3.2: 1908 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1909 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1910 | os: [darwin] 1911 | requiresBuild: true 1912 | dev: true 1913 | optional: true 1914 | 1915 | /function-bind@1.1.1: 1916 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1917 | dev: true 1918 | 1919 | /function.prototype.name@1.1.5: 1920 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1921 | engines: {node: '>= 0.4'} 1922 | dependencies: 1923 | call-bind: 1.0.2 1924 | define-properties: 1.2.0 1925 | es-abstract: 1.21.1 1926 | functions-have-names: 1.2.3 1927 | dev: true 1928 | 1929 | /functions-have-names@1.2.3: 1930 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1931 | dev: true 1932 | 1933 | /get-caller-file@2.0.5: 1934 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1935 | engines: {node: 6.* || 8.* || >= 10.*} 1936 | dev: true 1937 | 1938 | /get-func-name@2.0.0: 1939 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 1940 | dev: true 1941 | 1942 | /get-intrinsic@1.2.0: 1943 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 1944 | dependencies: 1945 | function-bind: 1.1.1 1946 | has: 1.0.3 1947 | has-symbols: 1.0.3 1948 | dev: true 1949 | 1950 | /get-symbol-description@1.0.0: 1951 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1952 | engines: {node: '>= 0.4'} 1953 | dependencies: 1954 | call-bind: 1.0.2 1955 | get-intrinsic: 1.2.0 1956 | dev: true 1957 | 1958 | /glob-parent@5.1.2: 1959 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1960 | engines: {node: '>= 6'} 1961 | dependencies: 1962 | is-glob: 4.0.3 1963 | dev: true 1964 | 1965 | /globalthis@1.0.3: 1966 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1967 | engines: {node: '>= 0.4'} 1968 | dependencies: 1969 | define-properties: 1.2.0 1970 | dev: true 1971 | 1972 | /globby@11.1.0: 1973 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1974 | engines: {node: '>=10'} 1975 | dependencies: 1976 | array-union: 2.1.0 1977 | dir-glob: 3.0.1 1978 | fast-glob: 3.2.12 1979 | ignore: 5.2.4 1980 | merge2: 1.4.1 1981 | slash: 3.0.0 1982 | dev: true 1983 | 1984 | /gopd@1.0.1: 1985 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1986 | dependencies: 1987 | get-intrinsic: 1.2.0 1988 | dev: true 1989 | 1990 | /graceful-fs@4.2.10: 1991 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1992 | dev: true 1993 | 1994 | /grapheme-splitter@1.0.4: 1995 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1996 | dev: true 1997 | 1998 | /hard-rejection@2.1.0: 1999 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} 2000 | engines: {node: '>=6'} 2001 | dev: true 2002 | 2003 | /has-bigints@1.0.2: 2004 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 2005 | dev: true 2006 | 2007 | /has-flag@3.0.0: 2008 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2009 | engines: {node: '>=4'} 2010 | dev: true 2011 | 2012 | /has-flag@4.0.0: 2013 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2014 | engines: {node: '>=8'} 2015 | dev: true 2016 | 2017 | /has-property-descriptors@1.0.0: 2018 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 2019 | dependencies: 2020 | get-intrinsic: 1.2.0 2021 | dev: true 2022 | 2023 | /has-proto@1.0.1: 2024 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 2025 | engines: {node: '>= 0.4'} 2026 | dev: true 2027 | 2028 | /has-symbols@1.0.3: 2029 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2030 | engines: {node: '>= 0.4'} 2031 | dev: true 2032 | 2033 | /has-tostringtag@1.0.0: 2034 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 2035 | engines: {node: '>= 0.4'} 2036 | dependencies: 2037 | has-symbols: 1.0.3 2038 | dev: true 2039 | 2040 | /has@1.0.3: 2041 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 2042 | engines: {node: '>= 0.4.0'} 2043 | dependencies: 2044 | function-bind: 1.1.1 2045 | dev: true 2046 | 2047 | /hosted-git-info@2.8.9: 2048 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 2049 | dev: true 2050 | 2051 | /human-id@1.0.2: 2052 | resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 2053 | dev: true 2054 | 2055 | /iconv-lite@0.4.24: 2056 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 2057 | engines: {node: '>=0.10.0'} 2058 | dependencies: 2059 | safer-buffer: 2.1.2 2060 | dev: true 2061 | 2062 | /ignore@5.2.4: 2063 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 2064 | engines: {node: '>= 4'} 2065 | dev: true 2066 | 2067 | /indent-string@4.0.0: 2068 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 2069 | engines: {node: '>=8'} 2070 | dev: true 2071 | 2072 | /internal-slot@1.0.5: 2073 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 2074 | engines: {node: '>= 0.4'} 2075 | dependencies: 2076 | get-intrinsic: 1.2.0 2077 | has: 1.0.3 2078 | side-channel: 1.0.4 2079 | dev: true 2080 | 2081 | /is-array-buffer@3.0.1: 2082 | resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} 2083 | dependencies: 2084 | call-bind: 1.0.2 2085 | get-intrinsic: 1.2.0 2086 | is-typed-array: 1.1.10 2087 | dev: true 2088 | 2089 | /is-arrayish@0.2.1: 2090 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 2091 | dev: true 2092 | 2093 | /is-bigint@1.0.4: 2094 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2095 | dependencies: 2096 | has-bigints: 1.0.2 2097 | dev: true 2098 | 2099 | /is-boolean-object@1.1.2: 2100 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2101 | engines: {node: '>= 0.4'} 2102 | dependencies: 2103 | call-bind: 1.0.2 2104 | has-tostringtag: 1.0.0 2105 | dev: true 2106 | 2107 | /is-callable@1.2.7: 2108 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 2109 | engines: {node: '>= 0.4'} 2110 | dev: true 2111 | 2112 | /is-ci@3.0.1: 2113 | resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} 2114 | hasBin: true 2115 | dependencies: 2116 | ci-info: 3.8.0 2117 | dev: true 2118 | 2119 | /is-core-module@2.11.0: 2120 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 2121 | dependencies: 2122 | has: 1.0.3 2123 | dev: true 2124 | 2125 | /is-date-object@1.0.5: 2126 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2127 | engines: {node: '>= 0.4'} 2128 | dependencies: 2129 | has-tostringtag: 1.0.0 2130 | dev: true 2131 | 2132 | /is-extglob@2.1.1: 2133 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2134 | engines: {node: '>=0.10.0'} 2135 | dev: true 2136 | 2137 | /is-fullwidth-code-point@3.0.0: 2138 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2139 | engines: {node: '>=8'} 2140 | dev: true 2141 | 2142 | /is-glob@4.0.3: 2143 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2144 | engines: {node: '>=0.10.0'} 2145 | dependencies: 2146 | is-extglob: 2.1.1 2147 | dev: true 2148 | 2149 | /is-negative-zero@2.0.2: 2150 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 2151 | engines: {node: '>= 0.4'} 2152 | dev: true 2153 | 2154 | /is-number-object@1.0.7: 2155 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2156 | engines: {node: '>= 0.4'} 2157 | dependencies: 2158 | has-tostringtag: 1.0.0 2159 | dev: true 2160 | 2161 | /is-number@7.0.0: 2162 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2163 | engines: {node: '>=0.12.0'} 2164 | dev: true 2165 | 2166 | /is-plain-obj@1.1.0: 2167 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 2168 | engines: {node: '>=0.10.0'} 2169 | dev: true 2170 | 2171 | /is-regex@1.1.4: 2172 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2173 | engines: {node: '>= 0.4'} 2174 | dependencies: 2175 | call-bind: 1.0.2 2176 | has-tostringtag: 1.0.0 2177 | dev: true 2178 | 2179 | /is-shared-array-buffer@1.0.2: 2180 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 2181 | dependencies: 2182 | call-bind: 1.0.2 2183 | dev: true 2184 | 2185 | /is-string@1.0.7: 2186 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2187 | engines: {node: '>= 0.4'} 2188 | dependencies: 2189 | has-tostringtag: 1.0.0 2190 | dev: true 2191 | 2192 | /is-subdir@1.2.0: 2193 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 2194 | engines: {node: '>=4'} 2195 | dependencies: 2196 | better-path-resolve: 1.0.0 2197 | dev: true 2198 | 2199 | /is-symbol@1.0.4: 2200 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2201 | engines: {node: '>= 0.4'} 2202 | dependencies: 2203 | has-symbols: 1.0.3 2204 | dev: true 2205 | 2206 | /is-typed-array@1.1.10: 2207 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 2208 | engines: {node: '>= 0.4'} 2209 | dependencies: 2210 | available-typed-arrays: 1.0.5 2211 | call-bind: 1.0.2 2212 | for-each: 0.3.3 2213 | gopd: 1.0.1 2214 | has-tostringtag: 1.0.0 2215 | dev: true 2216 | 2217 | /is-weakref@1.0.2: 2218 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2219 | dependencies: 2220 | call-bind: 1.0.2 2221 | dev: true 2222 | 2223 | /is-windows@1.0.2: 2224 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 2225 | engines: {node: '>=0.10.0'} 2226 | dev: true 2227 | 2228 | /isexe@2.0.0: 2229 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2230 | dev: true 2231 | 2232 | /js-tokens@4.0.0: 2233 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2234 | dev: true 2235 | 2236 | /js-yaml@3.14.1: 2237 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 2238 | hasBin: true 2239 | dependencies: 2240 | argparse: 1.0.10 2241 | esprima: 4.0.1 2242 | dev: true 2243 | 2244 | /json-parse-even-better-errors@2.3.1: 2245 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 2246 | dev: true 2247 | 2248 | /jsonfile@4.0.0: 2249 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 2250 | optionalDependencies: 2251 | graceful-fs: 4.2.10 2252 | dev: true 2253 | 2254 | /kind-of@6.0.3: 2255 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 2256 | engines: {node: '>=0.10.0'} 2257 | dev: true 2258 | 2259 | /kleur@4.1.5: 2260 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 2261 | engines: {node: '>=6'} 2262 | dev: true 2263 | 2264 | /kysely@0.27.4: 2265 | resolution: {integrity: sha512-dyNKv2KRvYOQPLCAOCjjQuCk4YFd33BvGdf/o5bC7FiW+BB6snA81Zt+2wT9QDFzKqxKa5rrOmvlK/anehCcgA==} 2266 | engines: {node: '>=14.0.0'} 2267 | dev: true 2268 | 2269 | /lines-and-columns@1.2.4: 2270 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2271 | dev: true 2272 | 2273 | /load-yaml-file@0.2.0: 2274 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} 2275 | engines: {node: '>=6'} 2276 | dependencies: 2277 | graceful-fs: 4.2.10 2278 | js-yaml: 3.14.1 2279 | pify: 4.0.1 2280 | strip-bom: 3.0.0 2281 | dev: true 2282 | 2283 | /local-pkg@0.4.3: 2284 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 2285 | engines: {node: '>=14'} 2286 | dev: true 2287 | 2288 | /locate-path@5.0.0: 2289 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2290 | engines: {node: '>=8'} 2291 | dependencies: 2292 | p-locate: 4.1.0 2293 | dev: true 2294 | 2295 | /locate-path@6.0.0: 2296 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2297 | engines: {node: '>=10'} 2298 | dependencies: 2299 | p-locate: 5.0.0 2300 | dev: true 2301 | 2302 | /lodash.startcase@4.4.0: 2303 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 2304 | dev: true 2305 | 2306 | /loupe@2.3.6: 2307 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 2308 | dependencies: 2309 | get-func-name: 2.0.0 2310 | dev: true 2311 | 2312 | /lru-cache@4.1.5: 2313 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} 2314 | dependencies: 2315 | pseudomap: 1.0.2 2316 | yallist: 2.1.2 2317 | dev: true 2318 | 2319 | /map-obj@1.0.1: 2320 | resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} 2321 | engines: {node: '>=0.10.0'} 2322 | dev: true 2323 | 2324 | /map-obj@4.3.0: 2325 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 2326 | engines: {node: '>=8'} 2327 | dev: true 2328 | 2329 | /meow@6.1.1: 2330 | resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} 2331 | engines: {node: '>=8'} 2332 | dependencies: 2333 | '@types/minimist': 1.2.2 2334 | camelcase-keys: 6.2.2 2335 | decamelize-keys: 1.1.1 2336 | hard-rejection: 2.1.0 2337 | minimist-options: 4.1.0 2338 | normalize-package-data: 2.5.0 2339 | read-pkg-up: 7.0.1 2340 | redent: 3.0.0 2341 | trim-newlines: 3.0.1 2342 | type-fest: 0.13.1 2343 | yargs-parser: 18.1.3 2344 | dev: true 2345 | 2346 | /merge2@1.4.1: 2347 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2348 | engines: {node: '>= 8'} 2349 | dev: true 2350 | 2351 | /micromatch@4.0.5: 2352 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2353 | engines: {node: '>=8.6'} 2354 | dependencies: 2355 | braces: 3.0.2 2356 | picomatch: 2.3.1 2357 | dev: true 2358 | 2359 | /min-indent@1.0.1: 2360 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 2361 | engines: {node: '>=4'} 2362 | dev: true 2363 | 2364 | /minimist-options@4.1.0: 2365 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} 2366 | engines: {node: '>= 6'} 2367 | dependencies: 2368 | arrify: 1.0.1 2369 | is-plain-obj: 1.1.0 2370 | kind-of: 6.0.3 2371 | dev: true 2372 | 2373 | /mixme@0.5.5: 2374 | resolution: {integrity: sha512-/6IupbRx32s7jjEwHcycXikJwFD5UujbVNuJFkeKLYje+92OvtuPniF6JhnFm5JCTDUhS+kYK3W/4BWYQYXz7w==} 2375 | engines: {node: '>= 8.0.0'} 2376 | dev: true 2377 | 2378 | /ms@2.1.2: 2379 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2380 | dev: true 2381 | 2382 | /nanoid@3.3.4: 2383 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 2384 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2385 | hasBin: true 2386 | dev: true 2387 | 2388 | /node-fetch@2.6.9: 2389 | resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} 2390 | engines: {node: 4.x || >=6.0.0} 2391 | peerDependencies: 2392 | encoding: ^0.1.0 2393 | peerDependenciesMeta: 2394 | encoding: 2395 | optional: true 2396 | dependencies: 2397 | whatwg-url: 5.0.0 2398 | dev: true 2399 | 2400 | /normalize-package-data@2.5.0: 2401 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 2402 | dependencies: 2403 | hosted-git-info: 2.8.9 2404 | resolve: 1.22.1 2405 | semver: 5.7.1 2406 | validate-npm-package-license: 3.0.4 2407 | dev: true 2408 | 2409 | /object-inspect@1.12.3: 2410 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 2411 | dev: true 2412 | 2413 | /object-keys@1.1.1: 2414 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2415 | engines: {node: '>= 0.4'} 2416 | dev: true 2417 | 2418 | /object.assign@4.1.4: 2419 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2420 | engines: {node: '>= 0.4'} 2421 | dependencies: 2422 | call-bind: 1.0.2 2423 | define-properties: 1.2.0 2424 | has-symbols: 1.0.3 2425 | object-keys: 1.1.1 2426 | dev: true 2427 | 2428 | /os-tmpdir@1.0.2: 2429 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 2430 | engines: {node: '>=0.10.0'} 2431 | dev: true 2432 | 2433 | /outdent@0.5.0: 2434 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 2435 | dev: true 2436 | 2437 | /p-filter@2.1.0: 2438 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 2439 | engines: {node: '>=8'} 2440 | dependencies: 2441 | p-map: 2.1.0 2442 | dev: true 2443 | 2444 | /p-limit@2.3.0: 2445 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2446 | engines: {node: '>=6'} 2447 | dependencies: 2448 | p-try: 2.2.0 2449 | dev: true 2450 | 2451 | /p-limit@3.1.0: 2452 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2453 | engines: {node: '>=10'} 2454 | dependencies: 2455 | yocto-queue: 0.1.0 2456 | dev: true 2457 | 2458 | /p-locate@4.1.0: 2459 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2460 | engines: {node: '>=8'} 2461 | dependencies: 2462 | p-limit: 2.3.0 2463 | dev: true 2464 | 2465 | /p-locate@5.0.0: 2466 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2467 | engines: {node: '>=10'} 2468 | dependencies: 2469 | p-limit: 3.1.0 2470 | dev: true 2471 | 2472 | /p-map@2.1.0: 2473 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 2474 | engines: {node: '>=6'} 2475 | dev: true 2476 | 2477 | /p-try@2.2.0: 2478 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2479 | engines: {node: '>=6'} 2480 | dev: true 2481 | 2482 | /parse-json@5.2.0: 2483 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 2484 | engines: {node: '>=8'} 2485 | dependencies: 2486 | '@babel/code-frame': 7.18.6 2487 | error-ex: 1.3.2 2488 | json-parse-even-better-errors: 2.3.1 2489 | lines-and-columns: 1.2.4 2490 | dev: true 2491 | 2492 | /path-exists@4.0.0: 2493 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2494 | engines: {node: '>=8'} 2495 | dev: true 2496 | 2497 | /path-parse@1.0.7: 2498 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2499 | dev: true 2500 | 2501 | /path-type@4.0.0: 2502 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2503 | engines: {node: '>=8'} 2504 | dev: true 2505 | 2506 | /pathval@1.1.1: 2507 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2508 | dev: true 2509 | 2510 | /perf_hooks@0.0.1: 2511 | resolution: {integrity: sha512-qG/D9iA4KDme+KF4vCObJy6Bouu3BlQnmJ8jPydVPm32NJBD9ZK1ZNgXSYaZKHkVC1sKSqUiLgFvAZPUiIEnBw==} 2512 | dev: true 2513 | 2514 | /picocolors@1.0.0: 2515 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2516 | dev: true 2517 | 2518 | /picomatch@2.3.1: 2519 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2520 | engines: {node: '>=8.6'} 2521 | dev: true 2522 | 2523 | /pify@4.0.1: 2524 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 2525 | engines: {node: '>=6'} 2526 | dev: true 2527 | 2528 | /pkg-dir@4.2.0: 2529 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 2530 | engines: {node: '>=8'} 2531 | dependencies: 2532 | find-up: 4.1.0 2533 | dev: true 2534 | 2535 | /postcss@8.4.21: 2536 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 2537 | engines: {node: ^10 || ^12 || >=14} 2538 | dependencies: 2539 | nanoid: 3.3.4 2540 | picocolors: 1.0.0 2541 | source-map-js: 1.0.2 2542 | dev: true 2543 | 2544 | /preferred-pm@3.0.3: 2545 | resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} 2546 | engines: {node: '>=10'} 2547 | dependencies: 2548 | find-up: 5.0.0 2549 | find-yarn-workspace-root2: 1.2.16 2550 | path-exists: 4.0.0 2551 | which-pm: 2.0.0 2552 | dev: true 2553 | 2554 | /prettier@2.8.4: 2555 | resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} 2556 | engines: {node: '>=10.13.0'} 2557 | hasBin: true 2558 | dev: true 2559 | 2560 | /pseudomap@1.0.2: 2561 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} 2562 | dev: true 2563 | 2564 | /queue-microtask@1.2.3: 2565 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2566 | dev: true 2567 | 2568 | /quick-lru@4.0.1: 2569 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 2570 | engines: {node: '>=8'} 2571 | dev: true 2572 | 2573 | /read-pkg-up@7.0.1: 2574 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 2575 | engines: {node: '>=8'} 2576 | dependencies: 2577 | find-up: 4.1.0 2578 | read-pkg: 5.2.0 2579 | type-fest: 0.8.1 2580 | dev: true 2581 | 2582 | /read-pkg@5.2.0: 2583 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 2584 | engines: {node: '>=8'} 2585 | dependencies: 2586 | '@types/normalize-package-data': 2.4.1 2587 | normalize-package-data: 2.5.0 2588 | parse-json: 5.2.0 2589 | type-fest: 0.6.0 2590 | dev: true 2591 | 2592 | /read-yaml-file@1.1.0: 2593 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 2594 | engines: {node: '>=6'} 2595 | dependencies: 2596 | graceful-fs: 4.2.10 2597 | js-yaml: 3.14.1 2598 | pify: 4.0.1 2599 | strip-bom: 3.0.0 2600 | dev: true 2601 | 2602 | /redent@3.0.0: 2603 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 2604 | engines: {node: '>=8'} 2605 | dependencies: 2606 | indent-string: 4.0.0 2607 | strip-indent: 3.0.0 2608 | dev: true 2609 | 2610 | /regenerator-runtime@0.13.11: 2611 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 2612 | dev: true 2613 | 2614 | /regexp.prototype.flags@1.4.3: 2615 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 2616 | engines: {node: '>= 0.4'} 2617 | dependencies: 2618 | call-bind: 1.0.2 2619 | define-properties: 1.2.0 2620 | functions-have-names: 1.2.3 2621 | dev: true 2622 | 2623 | /require-directory@2.1.1: 2624 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 2625 | engines: {node: '>=0.10.0'} 2626 | dev: true 2627 | 2628 | /require-main-filename@2.0.0: 2629 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 2630 | dev: true 2631 | 2632 | /resolve-from@5.0.0: 2633 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2634 | engines: {node: '>=8'} 2635 | dev: true 2636 | 2637 | /resolve@1.22.1: 2638 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2639 | hasBin: true 2640 | dependencies: 2641 | is-core-module: 2.11.0 2642 | path-parse: 1.0.7 2643 | supports-preserve-symlinks-flag: 1.0.0 2644 | dev: true 2645 | 2646 | /reusify@1.0.4: 2647 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2648 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2649 | dev: true 2650 | 2651 | /rollup@2.79.1: 2652 | resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} 2653 | engines: {node: '>=10.0.0'} 2654 | hasBin: true 2655 | optionalDependencies: 2656 | fsevents: 2.3.2 2657 | dev: true 2658 | 2659 | /run-parallel@1.2.0: 2660 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2661 | dependencies: 2662 | queue-microtask: 1.2.3 2663 | dev: true 2664 | 2665 | /safe-regex-test@1.0.0: 2666 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2667 | dependencies: 2668 | call-bind: 1.0.2 2669 | get-intrinsic: 1.2.0 2670 | is-regex: 1.1.4 2671 | dev: true 2672 | 2673 | /safer-buffer@2.1.2: 2674 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 2675 | dev: true 2676 | 2677 | /semver@5.7.1: 2678 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 2679 | hasBin: true 2680 | dev: true 2681 | 2682 | /set-blocking@2.0.0: 2683 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 2684 | dev: true 2685 | 2686 | /shebang-command@1.2.0: 2687 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 2688 | engines: {node: '>=0.10.0'} 2689 | dependencies: 2690 | shebang-regex: 1.0.0 2691 | dev: true 2692 | 2693 | /shebang-regex@1.0.0: 2694 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 2695 | engines: {node: '>=0.10.0'} 2696 | dev: true 2697 | 2698 | /side-channel@1.0.4: 2699 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2700 | dependencies: 2701 | call-bind: 1.0.2 2702 | get-intrinsic: 1.2.0 2703 | object-inspect: 1.12.3 2704 | dev: true 2705 | 2706 | /signal-exit@3.0.7: 2707 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2708 | dev: true 2709 | 2710 | /slash@3.0.0: 2711 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2712 | engines: {node: '>=8'} 2713 | dev: true 2714 | 2715 | /smartwrap@2.0.2: 2716 | resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} 2717 | engines: {node: '>=6'} 2718 | hasBin: true 2719 | dependencies: 2720 | array.prototype.flat: 1.3.1 2721 | breakword: 1.0.5 2722 | grapheme-splitter: 1.0.4 2723 | strip-ansi: 6.0.1 2724 | wcwidth: 1.0.1 2725 | yargs: 15.4.1 2726 | dev: true 2727 | 2728 | /source-map-js@1.0.2: 2729 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2730 | engines: {node: '>=0.10.0'} 2731 | dev: true 2732 | 2733 | /spawndamnit@2.0.0: 2734 | resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} 2735 | dependencies: 2736 | cross-spawn: 5.1.0 2737 | signal-exit: 3.0.7 2738 | dev: true 2739 | 2740 | /spdx-correct@3.1.1: 2741 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 2742 | dependencies: 2743 | spdx-expression-parse: 3.0.1 2744 | spdx-license-ids: 3.0.12 2745 | dev: true 2746 | 2747 | /spdx-exceptions@2.3.0: 2748 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 2749 | dev: true 2750 | 2751 | /spdx-expression-parse@3.0.1: 2752 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2753 | dependencies: 2754 | spdx-exceptions: 2.3.0 2755 | spdx-license-ids: 3.0.12 2756 | dev: true 2757 | 2758 | /spdx-license-ids@3.0.12: 2759 | resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} 2760 | dev: true 2761 | 2762 | /sprintf-js@1.0.3: 2763 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 2764 | dev: true 2765 | 2766 | /stream-transform@2.1.3: 2767 | resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} 2768 | dependencies: 2769 | mixme: 0.5.5 2770 | dev: true 2771 | 2772 | /string-width@4.2.3: 2773 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2774 | engines: {node: '>=8'} 2775 | dependencies: 2776 | emoji-regex: 8.0.0 2777 | is-fullwidth-code-point: 3.0.0 2778 | strip-ansi: 6.0.1 2779 | dev: true 2780 | 2781 | /string.prototype.trimend@1.0.6: 2782 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 2783 | dependencies: 2784 | call-bind: 1.0.2 2785 | define-properties: 1.2.0 2786 | es-abstract: 1.21.1 2787 | dev: true 2788 | 2789 | /string.prototype.trimstart@1.0.6: 2790 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 2791 | dependencies: 2792 | call-bind: 1.0.2 2793 | define-properties: 1.2.0 2794 | es-abstract: 1.21.1 2795 | dev: true 2796 | 2797 | /strip-ansi@6.0.1: 2798 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2799 | engines: {node: '>=8'} 2800 | dependencies: 2801 | ansi-regex: 5.0.1 2802 | dev: true 2803 | 2804 | /strip-bom@3.0.0: 2805 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2806 | engines: {node: '>=4'} 2807 | dev: true 2808 | 2809 | /strip-indent@3.0.0: 2810 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 2811 | engines: {node: '>=8'} 2812 | dependencies: 2813 | min-indent: 1.0.1 2814 | dev: true 2815 | 2816 | /strnum@1.0.5: 2817 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 2818 | dev: true 2819 | 2820 | /supports-color@5.5.0: 2821 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2822 | engines: {node: '>=4'} 2823 | dependencies: 2824 | has-flag: 3.0.0 2825 | dev: true 2826 | 2827 | /supports-color@7.2.0: 2828 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2829 | engines: {node: '>=8'} 2830 | dependencies: 2831 | has-flag: 4.0.0 2832 | dev: true 2833 | 2834 | /supports-preserve-symlinks-flag@1.0.0: 2835 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2836 | engines: {node: '>= 0.4'} 2837 | dev: true 2838 | 2839 | /term-size@2.2.1: 2840 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 2841 | engines: {node: '>=8'} 2842 | dev: true 2843 | 2844 | /tinypool@0.2.4: 2845 | resolution: {integrity: sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==} 2846 | engines: {node: '>=14.0.0'} 2847 | dev: true 2848 | 2849 | /tinyspy@1.1.1: 2850 | resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} 2851 | engines: {node: '>=14.0.0'} 2852 | dev: true 2853 | 2854 | /tmp@0.0.33: 2855 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 2856 | engines: {node: '>=0.6.0'} 2857 | dependencies: 2858 | os-tmpdir: 1.0.2 2859 | dev: true 2860 | 2861 | /to-regex-range@5.0.1: 2862 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2863 | engines: {node: '>=8.0'} 2864 | dependencies: 2865 | is-number: 7.0.0 2866 | dev: true 2867 | 2868 | /tr46@0.0.3: 2869 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2870 | dev: true 2871 | 2872 | /trim-newlines@3.0.1: 2873 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} 2874 | engines: {node: '>=8'} 2875 | dev: true 2876 | 2877 | /tslib@2.6.2: 2878 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 2879 | dev: true 2880 | 2881 | /tty-table@4.1.6: 2882 | resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} 2883 | engines: {node: '>=8.0.0'} 2884 | hasBin: true 2885 | dependencies: 2886 | chalk: 4.1.2 2887 | csv: 5.5.3 2888 | kleur: 4.1.5 2889 | smartwrap: 2.0.2 2890 | strip-ansi: 6.0.1 2891 | wcwidth: 1.0.1 2892 | yargs: 17.7.1 2893 | dev: true 2894 | 2895 | /type-detect@4.0.8: 2896 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 2897 | engines: {node: '>=4'} 2898 | dev: true 2899 | 2900 | /type-fest@0.13.1: 2901 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} 2902 | engines: {node: '>=10'} 2903 | dev: true 2904 | 2905 | /type-fest@0.6.0: 2906 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 2907 | engines: {node: '>=8'} 2908 | dev: true 2909 | 2910 | /type-fest@0.8.1: 2911 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 2912 | engines: {node: '>=8'} 2913 | dev: true 2914 | 2915 | /typed-array-length@1.0.4: 2916 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 2917 | dependencies: 2918 | call-bind: 1.0.2 2919 | for-each: 0.3.3 2920 | is-typed-array: 1.1.10 2921 | dev: true 2922 | 2923 | /typescript@5.4.4: 2924 | resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} 2925 | engines: {node: '>=14.17'} 2926 | hasBin: true 2927 | dev: true 2928 | 2929 | /unbox-primitive@1.0.2: 2930 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2931 | dependencies: 2932 | call-bind: 1.0.2 2933 | has-bigints: 1.0.2 2934 | has-symbols: 1.0.3 2935 | which-boxed-primitive: 1.0.2 2936 | dev: true 2937 | 2938 | /universalify@0.1.2: 2939 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2940 | engines: {node: '>= 4.0.0'} 2941 | dev: true 2942 | 2943 | /uuid@9.0.1: 2944 | resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} 2945 | hasBin: true 2946 | dev: true 2947 | 2948 | /validate-npm-package-license@3.0.4: 2949 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2950 | dependencies: 2951 | spdx-correct: 3.1.1 2952 | spdx-expression-parse: 3.0.1 2953 | dev: true 2954 | 2955 | /vite@3.2.5(@types/node@18.14.2): 2956 | resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} 2957 | engines: {node: ^14.18.0 || >=16.0.0} 2958 | hasBin: true 2959 | peerDependencies: 2960 | '@types/node': '>= 14' 2961 | less: '*' 2962 | sass: '*' 2963 | stylus: '*' 2964 | sugarss: '*' 2965 | terser: ^5.4.0 2966 | peerDependenciesMeta: 2967 | '@types/node': 2968 | optional: true 2969 | less: 2970 | optional: true 2971 | sass: 2972 | optional: true 2973 | stylus: 2974 | optional: true 2975 | sugarss: 2976 | optional: true 2977 | terser: 2978 | optional: true 2979 | dependencies: 2980 | '@types/node': 18.14.2 2981 | esbuild: 0.15.18 2982 | postcss: 8.4.21 2983 | resolve: 1.22.1 2984 | rollup: 2.79.1 2985 | optionalDependencies: 2986 | fsevents: 2.3.2 2987 | dev: true 2988 | 2989 | /vitest@0.18.1: 2990 | resolution: {integrity: sha512-4F/1K/Vn4AvJwe7i2YblR02PT5vMKcw9KN4unDq2KD0YcSxX0B/6D6Qu9PJaXwVuxXMFTQ5ovd4+CQaW3bwofA==} 2991 | engines: {node: '>=v14.16.0'} 2992 | hasBin: true 2993 | peerDependencies: 2994 | '@edge-runtime/vm': '*' 2995 | '@vitest/ui': '*' 2996 | c8: '*' 2997 | happy-dom: '*' 2998 | jsdom: '*' 2999 | peerDependenciesMeta: 3000 | '@edge-runtime/vm': 3001 | optional: true 3002 | '@vitest/ui': 3003 | optional: true 3004 | c8: 3005 | optional: true 3006 | happy-dom: 3007 | optional: true 3008 | jsdom: 3009 | optional: true 3010 | dependencies: 3011 | '@types/chai': 4.3.4 3012 | '@types/chai-subset': 1.3.3 3013 | '@types/node': 18.14.2 3014 | chai: 4.3.7 3015 | debug: 4.3.4 3016 | local-pkg: 0.4.3 3017 | tinypool: 0.2.4 3018 | tinyspy: 1.1.1 3019 | vite: 3.2.5(@types/node@18.14.2) 3020 | transitivePeerDependencies: 3021 | - less 3022 | - sass 3023 | - stylus 3024 | - sugarss 3025 | - supports-color 3026 | - terser 3027 | dev: true 3028 | 3029 | /wcwidth@1.0.1: 3030 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} 3031 | dependencies: 3032 | defaults: 1.0.4 3033 | dev: true 3034 | 3035 | /webidl-conversions@3.0.1: 3036 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 3037 | dev: true 3038 | 3039 | /whatwg-url@5.0.0: 3040 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3041 | dependencies: 3042 | tr46: 0.0.3 3043 | webidl-conversions: 3.0.1 3044 | dev: true 3045 | 3046 | /which-boxed-primitive@1.0.2: 3047 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3048 | dependencies: 3049 | is-bigint: 1.0.4 3050 | is-boolean-object: 1.1.2 3051 | is-number-object: 1.0.7 3052 | is-string: 1.0.7 3053 | is-symbol: 1.0.4 3054 | dev: true 3055 | 3056 | /which-module@2.0.0: 3057 | resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} 3058 | dev: true 3059 | 3060 | /which-pm@2.0.0: 3061 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} 3062 | engines: {node: '>=8.15'} 3063 | dependencies: 3064 | load-yaml-file: 0.2.0 3065 | path-exists: 4.0.0 3066 | dev: true 3067 | 3068 | /which-typed-array@1.1.9: 3069 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 3070 | engines: {node: '>= 0.4'} 3071 | dependencies: 3072 | available-typed-arrays: 1.0.5 3073 | call-bind: 1.0.2 3074 | for-each: 0.3.3 3075 | gopd: 1.0.1 3076 | has-tostringtag: 1.0.0 3077 | is-typed-array: 1.1.10 3078 | dev: true 3079 | 3080 | /which@1.3.1: 3081 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 3082 | hasBin: true 3083 | dependencies: 3084 | isexe: 2.0.0 3085 | dev: true 3086 | 3087 | /wrap-ansi@6.2.0: 3088 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 3089 | engines: {node: '>=8'} 3090 | dependencies: 3091 | ansi-styles: 4.3.0 3092 | string-width: 4.2.3 3093 | strip-ansi: 6.0.1 3094 | dev: true 3095 | 3096 | /wrap-ansi@7.0.0: 3097 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3098 | engines: {node: '>=10'} 3099 | dependencies: 3100 | ansi-styles: 4.3.0 3101 | string-width: 4.2.3 3102 | strip-ansi: 6.0.1 3103 | dev: true 3104 | 3105 | /y18n@4.0.3: 3106 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 3107 | dev: true 3108 | 3109 | /y18n@5.0.8: 3110 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 3111 | engines: {node: '>=10'} 3112 | dev: true 3113 | 3114 | /yallist@2.1.2: 3115 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} 3116 | dev: true 3117 | 3118 | /yargs-parser@18.1.3: 3119 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 3120 | engines: {node: '>=6'} 3121 | dependencies: 3122 | camelcase: 5.3.1 3123 | decamelize: 1.2.0 3124 | dev: true 3125 | 3126 | /yargs-parser@21.1.1: 3127 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 3128 | engines: {node: '>=12'} 3129 | dev: true 3130 | 3131 | /yargs@15.4.1: 3132 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 3133 | engines: {node: '>=8'} 3134 | dependencies: 3135 | cliui: 6.0.0 3136 | decamelize: 1.2.0 3137 | find-up: 4.1.0 3138 | get-caller-file: 2.0.5 3139 | require-directory: 2.1.1 3140 | require-main-filename: 2.0.0 3141 | set-blocking: 2.0.0 3142 | string-width: 4.2.3 3143 | which-module: 2.0.0 3144 | y18n: 4.0.3 3145 | yargs-parser: 18.1.3 3146 | dev: true 3147 | 3148 | /yargs@17.7.1: 3149 | resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} 3150 | engines: {node: '>=12'} 3151 | dependencies: 3152 | cliui: 8.0.1 3153 | escalade: 3.1.1 3154 | get-caller-file: 2.0.5 3155 | require-directory: 2.1.1 3156 | string-width: 4.2.3 3157 | y18n: 5.0.8 3158 | yargs-parser: 21.1.1 3159 | dev: true 3160 | 3161 | /yocto-queue@0.1.0: 3162 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3163 | engines: {node: '>=10'} 3164 | dev: true 3165 | -------------------------------------------------------------------------------- /src/data-api-dialect.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Driver, 3 | MysqlAdapter, 4 | MysqlIntrospector, 5 | PostgresAdapter, 6 | Kysely, 7 | QueryCompiler, 8 | Dialect, 9 | DatabaseIntrospector, 10 | } from "kysely"; 11 | import { DataApiDriver, DataApiDriverConfig } from "./data-api-driver.js"; 12 | import { 13 | PostgresDataApiQueryCompiler, 14 | MysqlDataApiQueryCompiler, 15 | } from "./data-api-query-compiler.js"; 16 | import { PostgresIntrospector } from "./postgres-introspector.js"; 17 | 18 | type DataApiDialectConfig = { 19 | mode: "postgres" | "mysql"; 20 | driver: DataApiDriverConfig; 21 | }; 22 | 23 | export class DataApiDialect implements Dialect { 24 | readonly #config: DataApiDialectConfig; 25 | 26 | constructor(config: DataApiDialectConfig) { 27 | this.#config = config; 28 | } 29 | 30 | createAdapter() { 31 | if (this.#config.mode === "postgres") return new PostgresAdapter(); 32 | if (this.#config.mode === "mysql") return new MysqlAdapter(); 33 | 34 | throw new Error("Unknown mode " + this.#config.mode); 35 | } 36 | 37 | createDriver(): Driver { 38 | return new DataApiDriver(this.#config.driver); 39 | } 40 | 41 | createQueryCompiler(): QueryCompiler { 42 | if (this.#config.mode === "postgres") 43 | return new PostgresDataApiQueryCompiler(); 44 | if (this.#config.mode === "mysql") return new MysqlDataApiQueryCompiler(); 45 | 46 | throw new Error("Unknown mode " + this.#config.mode); 47 | } 48 | 49 | createIntrospector(db: Kysely): DatabaseIntrospector { 50 | if (this.#config.mode === "postgres") return new PostgresIntrospector(db); 51 | if (this.#config.mode === "mysql") return new MysqlIntrospector(db); 52 | 53 | throw new Error("Unknown mode " + this.#config.mode); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/data-api-driver.ts: -------------------------------------------------------------------------------- 1 | import { ArrayValue, RDSData, SqlParameter } from "@aws-sdk/client-rds-data"; 2 | import { CompiledQuery, DatabaseConnection, Driver, QueryResult } from "kysely"; 3 | 4 | export type DataApiDriverConfig = { 5 | client: RDSData; 6 | secretArn: string; 7 | resourceArn: string; 8 | database: string; 9 | }; 10 | 11 | export class DataApiDriver implements Driver { 12 | #config: DataApiDriverConfig; 13 | 14 | constructor(config: DataApiDriverConfig) { 15 | this.#config = config; 16 | } 17 | 18 | async init(): Promise { 19 | // do nothing 20 | } 21 | 22 | async acquireConnection(): Promise { 23 | return new DataApiConnection(this.#config); 24 | } 25 | 26 | async beginTransaction(conn: DataApiConnection) { 27 | await conn.beginTransaction(); 28 | } 29 | 30 | async commitTransaction(conn: DataApiConnection) { 31 | await conn.commitTransaction(); 32 | } 33 | 34 | async rollbackTransaction(conn: DataApiConnection) { 35 | await conn.rollbackTransaction(); 36 | } 37 | 38 | async releaseConnection(_connection: DatabaseConnection): Promise { 39 | // do nothing 40 | } 41 | 42 | async destroy(): Promise { 43 | // do nothing 44 | } 45 | } 46 | 47 | class DataApiConnection implements DatabaseConnection { 48 | #config: DataApiDriverConfig; 49 | #transactionId?: string; 50 | 51 | constructor(config: DataApiDriverConfig) { 52 | this.#config = config; 53 | } 54 | 55 | public async beginTransaction() { 56 | const r = await this.#config.client.beginTransaction({ 57 | secretArn: this.#config.secretArn, 58 | resourceArn: this.#config.resourceArn, 59 | database: this.#config.database, 60 | }); 61 | this.#transactionId = r.transactionId; 62 | } 63 | 64 | public async commitTransaction() { 65 | if (!this.#transactionId) 66 | throw new Error("Cannot commit a transaction before creating it"); 67 | await this.#config.client.commitTransaction({ 68 | secretArn: this.#config.secretArn, 69 | resourceArn: this.#config.resourceArn, 70 | transactionId: this.#transactionId, 71 | }); 72 | } 73 | 74 | public async rollbackTransaction() { 75 | if (!this.#transactionId) 76 | throw new Error("Cannot rollback a transaction before creating it"); 77 | await this.#config.client.rollbackTransaction({ 78 | secretArn: this.#config.secretArn, 79 | resourceArn: this.#config.resourceArn, 80 | transactionId: this.#transactionId, 81 | }); 82 | } 83 | 84 | async executeQuery(compiledQuery: CompiledQuery): Promise> { 85 | const r = await this.#config.client.executeStatement({ 86 | transactionId: this.#transactionId, 87 | secretArn: this.#config.secretArn, 88 | resourceArn: this.#config.resourceArn, 89 | sql: compiledQuery.sql, 90 | parameters: compiledQuery.parameters as SqlParameter[], 91 | database: this.#config.database, 92 | includeResultMetadata: true, 93 | }); 94 | if (!r.columnMetadata) { 95 | const numAffectedRows = BigInt(r.numberOfRecordsUpdated || 0); 96 | 97 | return { 98 | // @ts-ignore replaces `QueryResult.numUpdatedOrDeletedRows` in kysely >= 0.23 99 | // following https://github.com/koskimas/kysely/pull/188 100 | numAffectedRows, 101 | // deprecated in kysely >= 0.23, keep for backward compatibility. 102 | numUpdatedOrDeletedRows: numAffectedRows, 103 | insertId: 104 | r.generatedFields && r.generatedFields.length > 0 105 | ? BigInt(r.generatedFields[0].longValue!) 106 | : undefined, 107 | rows: [], 108 | }; 109 | } 110 | const rows = r.records 111 | ?.filter((r) => r.length !== 0) 112 | .map((rec) => 113 | Object.fromEntries( 114 | rec.map((val, i) => { 115 | const { label, name, typeName } = r.columnMetadata![i]; 116 | const key = label || name; 117 | let value = val.isNull 118 | ? null 119 | : val.stringValue ?? 120 | val.doubleValue ?? 121 | val.longValue ?? 122 | val.booleanValue ?? 123 | this.#unmarshallArrayValue(val.arrayValue) ?? 124 | val.blobValue ?? 125 | null; // FIXME: should throw an error here? 126 | 127 | if (typeof value === "string" && typeName) { 128 | const typeNameSafe = typeName.toLocaleLowerCase(); 129 | if (["timestamp", "date"].includes(typeNameSafe)) { 130 | value = new Date(value); 131 | } else if (typeNameSafe === "timestamptz") { 132 | value = new Date(`${value}Z`); 133 | } else if (["json", "jsonb"].includes(typeNameSafe)) { 134 | value = JSON.parse(value); 135 | } 136 | } 137 | 138 | return [key, value]; 139 | }) 140 | ) 141 | ); 142 | 143 | return { rows: rows ?? [] }; 144 | } 145 | 146 | async *streamQuery( 147 | _compiledQuery: CompiledQuery, 148 | _chunkSize: number 149 | ): AsyncIterableIterator> { 150 | throw new Error("Data API does not support streaming"); 151 | } 152 | 153 | #unmarshallArrayValue(arrayValue: ArrayValue | undefined): unknown { 154 | if (!arrayValue) { 155 | return undefined; 156 | } 157 | 158 | return ( 159 | arrayValue.stringValues ?? 160 | arrayValue.doubleValues ?? 161 | arrayValue.longValues ?? 162 | arrayValue.booleanValues ?? 163 | arrayValue.arrayValues?.map(this.#unmarshallArrayValue) 164 | ); 165 | } 166 | } 167 | -------------------------------------------------------------------------------- /src/data-api-query-compiler.ts: -------------------------------------------------------------------------------- 1 | import { SqlParameter } from "@aws-sdk/client-rds-data"; 2 | import { MysqlQueryCompiler, PostgresQueryCompiler } from "kysely"; 3 | 4 | export class PostgresDataApiQueryCompiler extends PostgresQueryCompiler { 5 | protected override appendValue(value: unknown) { 6 | const name = this.numParameters; 7 | this.append(this.getCurrentParameterPlaceholder()); 8 | this.addParameter({ 9 | name: name.toString(), 10 | ...serialize(value), 11 | }); 12 | } 13 | 14 | protected override getCurrentParameterPlaceholder() { 15 | return ":" + this.numParameters; 16 | } 17 | } 18 | 19 | export class MysqlDataApiQueryCompiler extends MysqlQueryCompiler { 20 | protected override appendValue(value: unknown) { 21 | const name = this.numParameters; 22 | this.append(this.getCurrentParameterPlaceholder()); 23 | this.addParameter({ 24 | name: name.toString(), 25 | ...serialize(value), 26 | }); 27 | } 28 | 29 | protected override getCurrentParameterPlaceholder() { 30 | return ":" + this.numParameters; 31 | } 32 | } 33 | 34 | function serialize(value: unknown): Pick { 35 | switch (typeof value) { 36 | case "bigint": 37 | return { value: { doubleValue: Number(value) } }; 38 | case "boolean": 39 | return { value: { booleanValue: value } }; 40 | case "number": 41 | if (Number.isInteger(value)) 42 | return { value: { longValue: value } }; 43 | else 44 | return { value: { doubleValue: value } }; 45 | case "object": 46 | if (value == null) 47 | return { value: { isNull: true }}; 48 | else if (Buffer.isBuffer(value)) 49 | return { value: { blobValue: value } }; 50 | else if (value instanceof Date) 51 | return { 52 | typeHint: "TIMESTAMP", 53 | value: { stringValue: fixISOString(value.toISOString()) }, 54 | }; 55 | else if ((value as RSU)?.value && isValueObject((value as RSU).value as RSU)) { 56 | if ( 57 | (value as RSU).typeHint && ((value as RSU).value as RSU).stringValue 58 | && typeof ((value as RSU).value as RSU).stringValue === "string" 59 | ) 60 | ((value as RSU).value as RSU).stringValue = fixStringValue( 61 | (value as RSS).typeHint as SqlParameter["typeHint"], 62 | ((value as RSU).value as RSS).stringValue, 63 | ); 64 | return value; 65 | } 66 | else 67 | break; 68 | case "string": 69 | return { 70 | value: { stringValue: value }, 71 | }; 72 | } 73 | 74 | throw new QueryCompilerError("Could not serialize value"); 75 | } 76 | 77 | function fixStringValue(typeHint: SqlParameter["typeHint"], value: string) { 78 | switch (typeHint) { 79 | case "DATE": 80 | return parseToISOString(value).slice(0, 10); 81 | case "TIME": 82 | if (value.match(/^\d{4}-\d{2}-\d{2}/)) { 83 | return parseToISOString(value).slice(11, 23); 84 | } 85 | return fixTimeString(value); 86 | case "TIMESTAMP": 87 | return fixISOString(parseToISOString(value)); 88 | } 89 | return value; 90 | } 91 | 92 | function fixTimeString(s: string) { 93 | const elements = (s || "00:00:00").split(":"); 94 | while (elements.length < 3) { 95 | elements.push("00"); 96 | } 97 | return elements.join(":").slice(0, 12); 98 | } 99 | 100 | function fixISOString(s: string) { 101 | return s.replace("T", " ").slice(0, 23); 102 | } 103 | 104 | function parseToISOString(s: string) { 105 | return new Date(Date.parse(s)).toISOString(); 106 | } 107 | 108 | function isValueObject(value: Record) { 109 | for (const key of primitiveKeys) { 110 | if (value[key]) { 111 | return true; 112 | } 113 | } 114 | if (value.arrayValue) { 115 | for (const key of arrayKeys) { 116 | if ((value.arrayValue as Record)?.[key]) { 117 | return true; 118 | } 119 | } 120 | } 121 | return false; 122 | } 123 | 124 | class QueryCompilerError extends Error { 125 | constructor(message: string) { 126 | super(message); 127 | this.name = QueryCompilerError.name; 128 | } 129 | } 130 | 131 | const arrayKeys = ["booleanValues", "doubleValues", "longValues", "stringValues"]; 132 | const primitiveKeys = ["blobValue", "booleanValue", "doubleValue", "isNull", "longValue", "stringValue"]; 133 | 134 | type RSS = Record; 135 | type RSU = Record; 136 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./data-api-dialect.js"; 2 | -------------------------------------------------------------------------------- /src/postgres-introspector.ts: -------------------------------------------------------------------------------- 1 | import { 2 | DatabaseIntrospector, 3 | DatabaseMetadata, 4 | DatabaseMetadataOptions, 5 | SchemaMetadata, 6 | TableMetadata, 7 | } from "kysely"; 8 | import { DEFAULT_MIGRATION_LOCK_TABLE, DEFAULT_MIGRATION_TABLE } from "kysely"; 9 | import { Kysely } from "kysely"; 10 | import { sql } from "kysely"; 11 | 12 | export class PostgresIntrospector implements DatabaseIntrospector { 13 | readonly #db: Kysely; 14 | 15 | constructor(db: Kysely) { 16 | this.#db = db; 17 | } 18 | 19 | async getSchemas(): Promise { 20 | let rawSchemas = await this.#db 21 | .selectFrom("pg_catalog.pg_namespace") 22 | .select("nspname") 23 | .$castTo() 24 | .execute(); 25 | 26 | return rawSchemas.map((it) => ({ name: it.nspname })); 27 | } 28 | 29 | async getTables( 30 | options: DatabaseMetadataOptions = { withInternalKyselyTables: false } 31 | ): Promise { 32 | let query = this.#db 33 | // column 34 | .selectFrom("pg_catalog.pg_attribute as a") 35 | // table 36 | .innerJoin("pg_catalog.pg_class as c", "a.attrelid", "c.oid") 37 | // table schema 38 | .innerJoin("pg_catalog.pg_namespace as ns", "c.relnamespace", "ns.oid") 39 | // column data type 40 | .innerJoin("pg_catalog.pg_type as typ", "a.atttypid", "typ.oid") 41 | // column data type schema 42 | .innerJoin( 43 | "pg_catalog.pg_namespace as dtns", 44 | "typ.typnamespace", 45 | "dtns.oid" 46 | ) 47 | .select([ 48 | "a.attname as column", 49 | "a.attnotnull as not_null", 50 | "a.atthasdef as has_default", 51 | "c.relname as table", 52 | sql`case when c.relkind = 'v' then true else false end`.as( 53 | "is_view" 54 | ), 55 | "ns.nspname as schema", 56 | "typ.typname as type", 57 | "dtns.nspname as type_schema", 58 | 59 | // Detect if the column is auto incrementing by finding the sequence 60 | // that is created for `serial` and `bigserial` columns. 61 | this.#db 62 | .selectFrom("pg_class") 63 | .select(sql`true`.as("auto_incrementing")) 64 | // Make sure the sequence is in the same schema as the table. 65 | .whereRef("relnamespace", "=", "c.relnamespace") 66 | .where("relkind", "=", "S") 67 | .where("relname", "=", sql`c.relname || '_' || a.attname || '_seq'`) 68 | .as("auto_incrementing"), 69 | ]) 70 | // r == normal table 71 | .where("c.relkind", "in", ["r", "v"]) 72 | .where("ns.nspname", "!~", "^pg_") 73 | .where("ns.nspname", "!=", "information_schema") 74 | // No system columns 75 | .where("a.attnum", ">=", 0) 76 | .where("a.attisdropped", "!=", true) 77 | .orderBy("ns.nspname") 78 | .orderBy("c.relname") 79 | .orderBy("a.attnum") 80 | .$castTo(); 81 | 82 | if (!options.withInternalKyselyTables) { 83 | query = query 84 | .where("c.relname", "!=", DEFAULT_MIGRATION_TABLE) 85 | .where("c.relname", "!=", DEFAULT_MIGRATION_LOCK_TABLE); 86 | } 87 | 88 | const rawColumns = await query.execute(); 89 | return this.#parseTableMetadata(rawColumns); 90 | } 91 | 92 | async getMetadata( 93 | options?: DatabaseMetadataOptions 94 | ): Promise { 95 | return { 96 | tables: await this.getTables(options), 97 | }; 98 | } 99 | 100 | #parseTableMetadata(columns: RawColumnMetadata[]): TableMetadata[] { 101 | return columns.reduce((tables, it) => { 102 | let table = tables.find( 103 | (tbl) => tbl.name === it.table && tbl.schema === it.schema 104 | ); 105 | 106 | if (!table) { 107 | table = Object.freeze({ 108 | name: it.table, 109 | isView: it.is_view, 110 | schema: it.schema, 111 | columns: [], 112 | }); 113 | 114 | tables.push(table); 115 | } 116 | 117 | table.columns.push( 118 | Object.freeze({ 119 | name: it.column, 120 | dataType: it.type, 121 | dataTypeSchema: it.type_schema, 122 | isNullable: !it.not_null, 123 | isAutoIncrementing: !!it.auto_incrementing, 124 | hasDefaultValue: it.has_default, 125 | }) 126 | ); 127 | 128 | return tables; 129 | }, []); 130 | } 131 | } 132 | 133 | interface RawSchemaMetadata { 134 | nspname: string; 135 | } 136 | 137 | interface RawColumnMetadata { 138 | column: string; 139 | table: string; 140 | is_view: boolean; 141 | schema: string; 142 | not_null: boolean; 143 | has_default: boolean; 144 | type: string; 145 | type_schema: string; 146 | auto_incrementing: boolean | null; 147 | } 148 | -------------------------------------------------------------------------------- /test/data-api-query-compiler.test.ts: -------------------------------------------------------------------------------- 1 | import { sql } from "kysely"; 2 | import { expect, it } from "vitest"; 3 | 4 | import { db } from "./harness"; 5 | 6 | const { ref } = db.dynamic; 7 | 8 | it("bigint", () => { 9 | const result = db.selectFrom("person").selectAll().where("score", ">", BigInt(1000)).compile(); 10 | expect(result.sql).toEqual(`select * from "person" where "score" > :0`); 11 | expect(result.parameters).toEqual([{ name: "0", value: { doubleValue: 1000 } }]); 12 | }); 13 | 14 | it("boolean", () => { 15 | const result = db.selectFrom("person").selectAll().where("is_active", "=", true).compile(); 16 | expect(result.sql).toEqual(`select * from "person" where "is_active" = :0`); 17 | expect(result.parameters).toEqual([{ name: "0", value: { booleanValue: true } }]); 18 | }); 19 | 20 | it("object (Array (bigint))", () => { 21 | const result = db 22 | .selectFrom("person") 23 | .selectAll().where("score", "in", [BigInt(10), BigInt(100), BigInt(1000)]) 24 | .compile(); 25 | expect(result.sql).toEqual(`select * from "person" where "score" in (:0, :1, :2)`); 26 | expect(result.parameters).toEqual([ 27 | { 28 | name: "0", 29 | value: { 30 | doubleValue: 10, 31 | }, 32 | }, 33 | { 34 | name: "1", 35 | value: { 36 | doubleValue: 100, 37 | }, 38 | }, 39 | { 40 | name: "2", 41 | value: { 42 | doubleValue: 1000, 43 | }, 44 | }, 45 | ]); 46 | }); 47 | 48 | it("object (Array (boolean))", () => { 49 | const result = db.selectFrom("person").selectAll().where("is_active", "in", [true, false]).compile(); 50 | expect(result.sql).toEqual(`select * from "person" where "is_active" in (:0, :1)`); 51 | expect(result.parameters).toEqual([ 52 | { 53 | name: "0", 54 | value: { 55 | booleanValue: true, 56 | }, 57 | }, 58 | { 59 | name: "1", 60 | value: { 61 | booleanValue: false, 62 | }, 63 | }, 64 | ]); 65 | }); 66 | 67 | it("object (Array (number))", () => { 68 | const result = db.selectFrom("person").selectAll().where("id", "in", [1, 2, 3]).compile(); 69 | expect(result.sql).toEqual(`select * from "person" where "id" in (:0, :1, :2)`); 70 | expect(result.parameters).toEqual([ 71 | { 72 | name: "0", 73 | value: { 74 | longValue: 1, 75 | }, 76 | }, 77 | { 78 | name: "1", 79 | value: { 80 | longValue: 2, 81 | }, 82 | }, 83 | { 84 | name: "2", 85 | value: { 86 | longValue: 3, 87 | }, 88 | }, 89 | ]); 90 | }); 91 | 92 | it("object (Array (string))", () => { 93 | const result = db 94 | .selectFrom("person") 95 | .selectAll().where(sql`lower(first_name)`, "in", ["alice", "bob", "carol"]) 96 | .compile(); 97 | expect(result.sql).toEqual(`select * from "person" where lower(first_name) in (:0, :1, :2)`); 98 | expect(result.parameters).toEqual([ 99 | { 100 | name: "0", 101 | value: { 102 | stringValue: "alice", 103 | }, 104 | }, 105 | { 106 | name: "1", 107 | value: { 108 | stringValue: "bob", 109 | }, 110 | }, 111 | { 112 | name: "2", 113 | value: { 114 | stringValue: "carol", 115 | }, 116 | }, 117 | ]); 118 | }); 119 | 120 | it("object (Buffer)", () => { 121 | const result = db 122 | .selectFrom("person") 123 | .selectAll() 124 | .where("avatar", "=", Buffer.from("abc")) 125 | .compile(); 126 | expect(result.sql).toEqual(`select * from "person" where "avatar" = :0`); 127 | expect(result.parameters).toEqual([{ name: "0", value: { blobValue: Buffer.from("abc") } }]); 128 | }); 129 | 130 | it("object (Date)", () => { 131 | const result = db 132 | .selectFrom("person") 133 | .selectAll() 134 | .where("created_at", "<", new Date(Date.UTC(2022, 9, 20, 12, 34, 56, 789))) 135 | .compile(); 136 | expect(result.sql).toEqual(`select * from "person" where "created_at" < :0`); 137 | expect(result.parameters).toEqual([ 138 | { name: "0", typeHint: "TIMESTAMP", value: { stringValue: "2022-10-20 12:34:56.789" }}, 139 | ]); 140 | }); 141 | 142 | it("object (null)", () => { 143 | const result = db.selectFrom("pet").selectAll().where("owner_id", "=", null).compile(); 144 | expect(result.sql).toEqual(`select * from "pet" where "owner_id" = :0`); 145 | expect(result.parameters).toEqual([{ name: "0", value: { isNull: true } }]); 146 | }); 147 | 148 | it("object (value object (primitives))", () => { 149 | const inputs = { 150 | blobValue: Buffer.from("abc"), 151 | booleanValue: true, 152 | doubleValue: 1.23, 153 | isNull: true, 154 | longValue: 123, 155 | stringValue: "abc", 156 | }; 157 | for (const [key, value] of Object.entries(inputs)) { 158 | const result = db 159 | .selectFrom("person") 160 | .selectAll() 161 | .where(ref("foo"), "=", { value: { [key]: value } }) 162 | .compile(); 163 | expect(result.sql).toEqual(`select * from "person" where "foo" = :0`); 164 | expect(result.parameters).toEqual([{ name: "0", value: { [key]: value } }]); 165 | } 166 | }); 167 | 168 | it("object (value object (arrays))", () => { 169 | const inputs = { 170 | booleanValues: [true, false], 171 | doubleValues: [1.23, 4.56, 7.89], 172 | longValues: [123, 456, 789], 173 | stringValues: ["abc", "def", "ghi"], 174 | }; 175 | for (const [key, value] of Object.entries(inputs)) { 176 | const result = db 177 | .selectFrom("person") 178 | .selectAll() 179 | .where(ref("foo"), "in", { value: { arrayValue: { [key]: value } } }) 180 | .compile(); 181 | expect(result.sql).toEqual(`select * from "person" where "foo" in :0`); 182 | expect(result.parameters).toEqual([{ name: "0", value: { arrayValue: { [key]: value } } }]); 183 | } 184 | }); 185 | 186 | it("object (value object (DATE))", () => { 187 | const pairs = [ 188 | ["2022-10-20", "2022-10-20"], 189 | ["2022-10-20T01:34:56+02:00", "2022-10-19"], 190 | ["2022-10-20T12:34:56.789123Z", "2022-10-20"], 191 | ]; 192 | for (const [stringValue, fixedStringValue] of pairs) { 193 | const result = db.selectFrom("person").selectAll().where("created_at", "<", { 194 | typeHint: "DATE", 195 | value: { stringValue }, 196 | } as any).compile(); // eslint-disable-line @typescript-eslint/no-explicit-any 197 | expect(result.sql).toEqual(`select * from "person" where "created_at" < :0`); 198 | expect(result.parameters).toEqual([{ name: "0", typeHint: "DATE", value: { stringValue: fixedStringValue } }]); 199 | } 200 | }); 201 | 202 | it("object (value object (DECIMAL))", () => { 203 | const result = db.selectFrom("person").selectAll().where("balance", ">", { 204 | typeHint: "DECIMAL", 205 | value: { stringValue: "1000" }, 206 | } as any).compile(); // eslint-disable-line @typescript-eslint/no-explicit-any 207 | expect(result.sql).toEqual(`select * from "person" where "balance" > :0`); 208 | expect(result.parameters).toEqual([{ name: "0", typeHint: "DECIMAL", value: { stringValue: "1000" } }]); 209 | }); 210 | 211 | it("object (value object (TIME))", () => { 212 | const pairs = [ 213 | ["12:34", "12:34:00"], 214 | ["12:34:56", "12:34:56"], 215 | ["12:34:56.789123", "12:34:56.789"], 216 | ["2022-10-20", "00:00:00.000"], 217 | ["2022-10-20T01:34:56+02:00", "23:34:56.000"], 218 | ["2022-10-20T12:34:56.789123Z", "12:34:56.789"], 219 | ]; 220 | for (const [stringValue, fixedStringValue] of pairs) { 221 | const result = db.selectFrom("person").selectAll().where("created_at", "<", { 222 | typeHint: "TIME", 223 | value: { stringValue }, 224 | } as any).compile(); // eslint-disable-line @typescript-eslint/no-explicit-any 225 | expect(result.sql).toEqual(`select * from "person" where "created_at" < :0`); 226 | expect(result.parameters).toEqual([{ name: "0", typeHint: "TIME", value: { stringValue: fixedStringValue } }]); 227 | } 228 | }); 229 | 230 | it("object (value object (TIMESTAMP))", () => { 231 | const pairs = [ 232 | ["2022-10-20", "2022-10-20 00:00:00.000"], 233 | ["2022-10-20T01:34:56+02:00", "2022-10-19 23:34:56.000"], 234 | ["2022-10-20T12:34:56.789123Z", "2022-10-20 12:34:56.789"], 235 | ]; 236 | for (const [stringValue, fixedStringValue] of pairs) { 237 | const result = db.selectFrom("person").selectAll().where("created_at", "<", { 238 | typeHint: "TIMESTAMP", 239 | value: { stringValue }, 240 | } as any).compile(); // eslint-disable-line @typescript-eslint/no-explicit-any 241 | expect(result.sql).toEqual(`select * from "person" where "created_at" < :0`); 242 | expect(result.parameters).toEqual([ 243 | { name: "0", typeHint: "TIMESTAMP", value: { stringValue: fixedStringValue } }, 244 | ]); 245 | } 246 | }); 247 | 248 | it("number", () => { 249 | const result = db.selectFrom("person").selectAll().where("id", "=", 1).compile(); 250 | expect(result.sql).toEqual(`select * from "person" where "id" = :0`); 251 | expect(result.parameters).toEqual([{ name: "0", value: { longValue: 1 } }]); 252 | }); 253 | 254 | it("string", () => { 255 | const result = db.selectFrom("person").selectAll().where("first_name", "ilike", "%john%").compile(); 256 | expect(result.sql).toEqual(`select * from "person" where "first_name" ilike :0`); 257 | expect(result.parameters).toEqual([{ name: "0", value: { stringValue: "%john%" } }]); 258 | }); 259 | 260 | it("throwing with unknown value type", () => { 261 | expect(() => db 262 | .selectFrom("person") 263 | .selectAll() 264 | .where("id", "=", {} as any) // eslint-disable-line @typescript-eslint/no-explicit-any 265 | .compile(), 266 | ).toThrow("Could not serialize value"); 267 | }); 268 | -------------------------------------------------------------------------------- /test/harness.ts: -------------------------------------------------------------------------------- 1 | import { RDSData } from "@aws-sdk/client-rds-data"; 2 | import { ColumnType, Generated, Kysely, Migrator, FileMigrationProvider } from "kysely"; 3 | import { DataApiDialect } from "../src"; 4 | import { DataApiDriverConfig } from "../src/data-api-driver"; 5 | import path from "path"; 6 | import { promises as fs } from "fs"; 7 | 8 | const TEST_DATABASE = "scratch"; 9 | 10 | const opts: DataApiDriverConfig = { 11 | client: new RDSData({}), 12 | database: TEST_DATABASE, 13 | secretArn: process.env.RDS_SECRET, 14 | resourceArn: process.env.RDS_ARN, 15 | }; 16 | const dialect = new DataApiDialect({ 17 | mode: "postgres", 18 | driver: opts, 19 | }); 20 | 21 | export interface Person { 22 | avatar: Buffer; 23 | created_at: ColumnType; 24 | balance: ColumnType; 25 | first_name: string; 26 | gender: "male" | "female" | "other"; 27 | id: Generated; 28 | is_active: boolean; 29 | last_name: string; 30 | score: bigint; 31 | } 32 | 33 | export interface Pet { 34 | id: Generated; 35 | owner_id: number; 36 | name: string; 37 | species: "dog" | "cat"; 38 | } 39 | 40 | // Keys are table names. 41 | interface Database { 42 | person: Person; 43 | pet: Pet; 44 | } 45 | 46 | export const db = new Kysely({ dialect }); 47 | 48 | export async function migrate() { 49 | await opts.client 50 | .executeStatement({ 51 | sql: `SELECT pg_terminate_backend(pid) 52 | FROM pg_stat_activity 53 | WHERE pid <> pg_backend_pid() AND datname = '${TEST_DATABASE}'`, 54 | database: "postgres", 55 | secretArn: opts.secretArn, 56 | resourceArn: opts.resourceArn, 57 | }); 58 | 59 | await opts.client 60 | .executeStatement({ 61 | sql: `DROP DATABASE IF EXISTS ${TEST_DATABASE}`, 62 | database: "postgres", 63 | secretArn: opts.secretArn, 64 | resourceArn: opts.resourceArn, 65 | }); 66 | 67 | await opts.client 68 | .executeStatement({ 69 | sql: `CREATE DATABASE ${TEST_DATABASE}`, 70 | database: "postgres", 71 | secretArn: opts.secretArn, 72 | resourceArn: opts.resourceArn, 73 | }); 74 | 75 | const migrator = new Migrator({ 76 | db, 77 | provider: new FileMigrationProvider({ 78 | fs, 79 | path, 80 | migrationFolder: path.join(__dirname, "migrations"), 81 | }), 82 | }) 83 | 84 | const { error, results } = await migrator.migrateToLatest(); 85 | 86 | results?.forEach((it) => { 87 | if (it.status === "Success") { 88 | console.log(`migration "${it.migrationName}" was executed successfully`); 89 | } else if (it.status === "Error") { 90 | console.error(`failed to execute migration "${it.migrationName}"`); 91 | } 92 | }) 93 | 94 | if (error) { 95 | console.error("failed to migrate"); 96 | console.error(error); 97 | } 98 | } 99 | 100 | export async function reset() { 101 | await db.deleteFrom("person").execute(); 102 | await db.deleteFrom("pet").execute(); 103 | } 104 | -------------------------------------------------------------------------------- /test/migrations/test-migration1.js: -------------------------------------------------------------------------------- 1 | async function up(db) { 2 | await db.schema 3 | .createTable("person") 4 | .addColumn("id", "serial", (col) => col.primaryKey()) 5 | .addColumn("first_name", "varchar") 6 | .addColumn("last_name", "varchar") 7 | .addColumn("gender", "varchar(50)") 8 | .execute(); 9 | 10 | await db.schema 11 | .createTable("pet") 12 | .addColumn("id", "serial", (col) => col.primaryKey()) 13 | .addColumn("name", "varchar", (col) => col.notNull().unique()) 14 | .addColumn("owner_id", "integer", (col) => col.references("person.id").onDelete("cascade")) 15 | .addColumn("species", "varchar") 16 | .execute(); 17 | 18 | await db.schema 19 | .createIndex("pet_owner_id_index") 20 | .on("pet") 21 | .column("owner_id") 22 | .execute(); 23 | } 24 | 25 | async function down(db) { 26 | await db.schema.dropTable("person").execute(); 27 | await db.schema.dropTable("pet").execute(); 28 | } 29 | 30 | module.exports = { 31 | up, 32 | down, 33 | }; 34 | -------------------------------------------------------------------------------- /test/setup.js: -------------------------------------------------------------------------------- 1 | global.performance = require("perf_hooks").performance; 2 | -------------------------------------------------------------------------------- /test/temporary.test.ts: -------------------------------------------------------------------------------- 1 | import { migrate, db, reset } from "./harness"; 2 | import { beforeAll, it, beforeEach, expect } from "vitest"; 3 | 4 | beforeAll(async () => { 5 | await migrate(); 6 | }); 7 | 8 | beforeEach(async () => { 9 | await reset(); 10 | }); 11 | 12 | const PERSON = { 13 | gender: "male", 14 | first_name: "jeff", 15 | last_name: "bezos", 16 | } as const; 17 | 18 | const PERSON_ALIAS = { 19 | first: "jeff", 20 | last: "bezos", 21 | }; 22 | 23 | it("insert and read", async () => { 24 | await db 25 | .insertInto("person") 26 | .values(PERSON) 27 | .execute(); 28 | 29 | const result = await db.selectFrom("person").selectAll().execute(); 30 | expect(result).toHaveLength(1); 31 | expect(result[0]).toMatchObject(PERSON); 32 | }); 33 | 34 | it("alias return", async () => { 35 | await db 36 | .insertInto("person") 37 | .values(PERSON) 38 | .execute(); 39 | 40 | const result = await db 41 | .selectFrom("person") 42 | .select(["first_name as first", "last_name as last"]) 43 | .execute(); 44 | expect(result).toHaveLength(1); 45 | expect(result[0]).toMatchObject(PERSON_ALIAS); 46 | }); 47 | 48 | it("join", async () => { 49 | const person = await db 50 | .insertInto("person") 51 | .values(PERSON) 52 | .returning(["id"]) 53 | .executeTakeFirst(); 54 | 55 | await db 56 | .insertInto("pet") 57 | .values({ 58 | name: "fido", 59 | species: "dog", 60 | owner_id: person.id, 61 | }) 62 | .execute(); 63 | 64 | const result = await db 65 | .selectFrom("person") 66 | .innerJoin("pet", "pet.owner_id", "person.id") 67 | .select(["pet.name as pet_name", "person.first_name"]) 68 | .executeTakeFirst(); 69 | 70 | expect(result.first_name).toEqual("jeff"); 71 | expect(result.pet_name).toEqual("fido"); 72 | }); 73 | 74 | it("transaction", async () => { 75 | await db.transaction().execute(async (tx) => { 76 | await tx 77 | .insertInto("person") 78 | .values(PERSON) 79 | .execute(); 80 | }); 81 | 82 | const result = await db.selectFrom("person").selectAll().execute(); 83 | expect(result).toHaveLength(1); 84 | expect(result[0]).toMatchObject(PERSON); 85 | }); 86 | -------------------------------------------------------------------------------- /tsconfig-cjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "module": "CommonJS", 6 | "outDir": "dist/cjs" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig-esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "module": "ESNext", 6 | "outDir": "dist/esm" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@tsconfig/node14", 3 | "compilerOptions": { 4 | "moduleResolution": "node", 5 | "declaration": true, 6 | "target": "ESNext" 7 | }, 8 | "include": ["src"] 9 | } 10 | -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { defineConfig } from "vitest/config"; 4 | 5 | export default defineConfig({ 6 | test: { 7 | testTimeout: 90000 8 | }, 9 | resolve: { 10 | alias: { 11 | "@serverless-stack/lambda": "./src" 12 | } 13 | } 14 | }); 15 | --------------------------------------------------------------------------------