├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── LICENSE ├── README.md ├── assets └── style.css ├── package.json ├── pnpm-lock.yaml ├── src ├── bindings.ts ├── client │ ├── index.ts │ ├── sw.js │ └── tsconfig.json ├── index.ts ├── uploader │ ├── uppy.ts │ └── url.ts └── util │ └── filename.ts ├── tsconfig.json └── wrangler.toml /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | workflow_dispatch: 8 | 9 | jobs: 10 | deploy: 11 | runs-on: ubuntu-latest 12 | name: Deploy 13 | steps: 14 | - uses: actions/checkout@v3 15 | - uses: pnpm/action-setup@v2 16 | - uses: actions/setup-node@v3 17 | with: 18 | node-version: '18' 19 | cache: 'pnpm' 20 | - name: Install dependencies 21 | run: pnpm install --frozen-lockfile 22 | - name: Publish 23 | run: pnpm run deploy 24 | env: 25 | CLOUDFLARE_API_TOKEN: ${{ secrets.CF_API_TOKEN }} 26 | CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | assets/dist 2 | node_modules 3 | .wrangler -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Kot 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Aster 2 | A robust file uploader for [Cloudflare R2](https://www.cloudflare.com/developer-platform/r2/). Complements [Render](https://github.com/kotx/render) nicely. 3 | 4 | If you want something simpler though, try https://github.com/Erisa/simple-r2-form. 5 | 6 | a screenshot of aster 7 | 8 | ## Features 9 | - Multipart uploads 10 | - Uploads are resumable (even after tab refreshes) 11 | - Image editor 12 | - Progress tracking 13 | - Most of these are thanks to [Uppy](https://uppy.io)! 14 | 15 | ## Notes 16 | - Aster **DOES NOT AUTHENTICATE**! You should put it behind [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/applications/). 17 | - Non-multipart uploads are currently disabled in the UI because Uppy doesn't display the URL: https://github.com/transloadit/uppy/issues/4618 18 | 19 | ## Setup 20 | - Configure the R2 bucket CORS policy in the Cloudflare dashboard: 21 | ```json 22 | [ 23 | { 24 | "AllowedOrigins": ["https://[CHANGE ME TO YOUR WORKER CUSTOM DOMAIN]"], 25 | "AllowedMethods": ["GET", "PUT"], 26 | "MaxAgeSeconds": 3000, 27 | "AllowedHeaders": [ 28 | "Authorization", 29 | "x-amz-date", 30 | "x-amz-content-sha256", 31 | "content-type" 32 | ], 33 | "ExposeHeaders": ["ETag", "Location"] 34 | } 35 | ] 36 | ``` 37 | - Create a R2 token: [here](https://dash.cloudflare.com/?to=/:account/r2/api-tokens) with `Object Read & Write` permissions. 38 | 39 | ### Method 1 (Local) 40 | 1. Clone locally: `git clone https://github.com/kotx/aster.git` 41 | 2. Install dependencies: `pnpm i` 42 | 3. Tweak `wrangler.toml` to your liking (set `bucket_name`, `PUBLIC_BUCKET_URL`, `R2_BUCKET_NAME`) 43 | 4. Run `wrangler secret put [NAME]` for `R2_ACCESS_KEY`, `R2_SECRET_KEY` 44 | 5. Run `pnpm run deploy` 45 | 46 | ### Method 2 (GitHub Actions) 47 | 1. Fork this repository 48 | 2. Set the secrets [`CF_API_TOKEN`](https://dash.cloudflare.com/profile/api-tokens) (with the `Edit Cloudflare Workers 49 | ` template) and `CF_ACCOUNT_ID` in the repo settings 50 | 3. Enable workflows in the Actions tab 51 | 4. Update `wrangler.toml` as needed (this will trigger the workflow) 52 | 5. In your Cloudflare dashboard, set the required secrets `R2_ACCESS_KEY`, `R2_SECRET_KEY` in the [worker settings](https://dash.cloudflare.com/?to=/:account/workers-and-pages). 53 | 54 | ## Development 55 | Remember to add `"http://127.0.0.1:8787", "http://localhost:8787"` to the allowed origins CORS policy above. 56 | 57 | Install deps: 58 | ``` 59 | pnpm i 60 | ``` 61 | 62 | Start development server: 63 | ```sh 64 | pnpm dev 65 | ``` 66 | -------------------------------------------------------------------------------- /assets/style.css: -------------------------------------------------------------------------------- 1 | body, 2 | h1 { 3 | padding: 0; 4 | margin: 0; 5 | } 6 | 7 | body { 8 | font-family: system-ui, sans-serif; 9 | } 10 | 11 | @media screen and (min-width: 768px) { 12 | body { 13 | padding: 0.75rem; 14 | } 15 | } 16 | 17 | .error { 18 | color: red; 19 | } 20 | 21 | h1 a { 22 | color: inherit; 23 | } 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aster", 3 | "version": "0.1.0", 4 | "author": "kotx", 5 | "description": "A robust Cloudflare R2 file uploader.", 6 | "license": "MIT", 7 | "scripts": { 8 | "dev": "run-p -r client:dev worker:dev", 9 | "deploy": "run-s client:build worker:deploy", 10 | "worker:dev": "wrangler dev --remote", 11 | "worker:deploy": "wrangler deploy --minify --keep-vars", 12 | "client:build": "esbuild ./src/client/*.ts --bundle --minify --outdir=assets/dist --target=es6", 13 | "client:dev": "pnpm client:build --sourcemap --watch" 14 | }, 15 | "dependencies": { 16 | "@aws-sdk/client-s3": "^3.388.0", 17 | "@aws-sdk/s3-request-presigner": "^3.388.0", 18 | "@uppy/aws-s3": "^3.2.1", 19 | "@uppy/core": "^3.3.1", 20 | "@uppy/dashboard": "^3.5.0", 21 | "@uppy/golden-retriever": "^3.1.0", 22 | "@uppy/image-editor": "^2.1.2", 23 | "hono": "^3.4.1", 24 | "mime": "^3.0.0", 25 | "ofetch": "^1.1.1" 26 | }, 27 | "devDependencies": { 28 | "@cloudflare/workers-types": "^4.20230807.0", 29 | "@types/mime": "^3.0.1", 30 | "esbuild": "^0.19.1", 31 | "npm-run-all": "^4.1.5", 32 | "wrangler": "^3.5.0" 33 | }, 34 | "packageManager": "pnpm@8.6.12" 35 | } 36 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@aws-sdk/client-s3': 9 | specifier: ^3.388.0 10 | version: 3.388.0 11 | '@aws-sdk/s3-request-presigner': 12 | specifier: ^3.388.0 13 | version: 3.388.0 14 | '@uppy/aws-s3': 15 | specifier: ^3.2.1 16 | version: 3.2.1(@uppy/core@3.3.1) 17 | '@uppy/core': 18 | specifier: ^3.3.1 19 | version: 3.3.1 20 | '@uppy/dashboard': 21 | specifier: ^3.5.0 22 | version: 3.5.0(@uppy/core@3.3.1) 23 | '@uppy/golden-retriever': 24 | specifier: ^3.1.0 25 | version: 3.1.0(@uppy/core@3.3.1) 26 | '@uppy/image-editor': 27 | specifier: ^2.1.2 28 | version: 2.1.2(@uppy/core@3.3.1) 29 | hono: 30 | specifier: ^3.4.1 31 | version: 3.4.1 32 | mime: 33 | specifier: ^3.0.0 34 | version: 3.0.0 35 | ofetch: 36 | specifier: ^1.1.1 37 | version: 1.1.1 38 | 39 | devDependencies: 40 | '@cloudflare/workers-types': 41 | specifier: ^4.20230807.0 42 | version: 4.20230807.0 43 | '@types/mime': 44 | specifier: ^3.0.1 45 | version: 3.0.1 46 | esbuild: 47 | specifier: ^0.19.1 48 | version: 0.19.1 49 | npm-run-all: 50 | specifier: ^4.1.5 51 | version: 4.1.5 52 | wrangler: 53 | specifier: ^3.5.0 54 | version: 3.5.0 55 | 56 | packages: 57 | 58 | /@aws-crypto/crc32@3.0.0: 59 | resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} 60 | dependencies: 61 | '@aws-crypto/util': 3.0.0 62 | '@aws-sdk/types': 3.387.0 63 | tslib: 1.14.1 64 | dev: false 65 | 66 | /@aws-crypto/crc32c@3.0.0: 67 | resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} 68 | dependencies: 69 | '@aws-crypto/util': 3.0.0 70 | '@aws-sdk/types': 3.387.0 71 | tslib: 1.14.1 72 | dev: false 73 | 74 | /@aws-crypto/ie11-detection@3.0.0: 75 | resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} 76 | dependencies: 77 | tslib: 1.14.1 78 | dev: false 79 | 80 | /@aws-crypto/sha1-browser@3.0.0: 81 | resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} 82 | dependencies: 83 | '@aws-crypto/ie11-detection': 3.0.0 84 | '@aws-crypto/supports-web-crypto': 3.0.0 85 | '@aws-crypto/util': 3.0.0 86 | '@aws-sdk/types': 3.387.0 87 | '@aws-sdk/util-locate-window': 3.310.0 88 | '@aws-sdk/util-utf8-browser': 3.259.0 89 | tslib: 1.14.1 90 | dev: false 91 | 92 | /@aws-crypto/sha256-browser@3.0.0: 93 | resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} 94 | dependencies: 95 | '@aws-crypto/ie11-detection': 3.0.0 96 | '@aws-crypto/sha256-js': 3.0.0 97 | '@aws-crypto/supports-web-crypto': 3.0.0 98 | '@aws-crypto/util': 3.0.0 99 | '@aws-sdk/types': 3.387.0 100 | '@aws-sdk/util-locate-window': 3.310.0 101 | '@aws-sdk/util-utf8-browser': 3.259.0 102 | tslib: 1.14.1 103 | dev: false 104 | 105 | /@aws-crypto/sha256-js@3.0.0: 106 | resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} 107 | dependencies: 108 | '@aws-crypto/util': 3.0.0 109 | '@aws-sdk/types': 3.387.0 110 | tslib: 1.14.1 111 | dev: false 112 | 113 | /@aws-crypto/supports-web-crypto@3.0.0: 114 | resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} 115 | dependencies: 116 | tslib: 1.14.1 117 | dev: false 118 | 119 | /@aws-crypto/util@3.0.0: 120 | resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} 121 | dependencies: 122 | '@aws-sdk/types': 3.387.0 123 | '@aws-sdk/util-utf8-browser': 3.259.0 124 | tslib: 1.14.1 125 | dev: false 126 | 127 | /@aws-sdk/client-s3@3.388.0: 128 | resolution: {integrity: sha512-9UN8gtr/4e4YnHb3Kb4VsxGTDe6olkL90ivK09jKwG2SX8m5OY2fIHSjtyqUHDuFb67JOk3WVEMbZEfxfx46+w==} 129 | engines: {node: '>=14.0.0'} 130 | dependencies: 131 | '@aws-crypto/sha1-browser': 3.0.0 132 | '@aws-crypto/sha256-browser': 3.0.0 133 | '@aws-crypto/sha256-js': 3.0.0 134 | '@aws-sdk/client-sts': 3.388.0 135 | '@aws-sdk/credential-provider-node': 3.388.0 136 | '@aws-sdk/middleware-bucket-endpoint': 3.387.0 137 | '@aws-sdk/middleware-expect-continue': 3.387.0 138 | '@aws-sdk/middleware-flexible-checksums': 3.387.0 139 | '@aws-sdk/middleware-host-header': 3.387.0 140 | '@aws-sdk/middleware-location-constraint': 3.387.0 141 | '@aws-sdk/middleware-logger': 3.387.0 142 | '@aws-sdk/middleware-recursion-detection': 3.387.0 143 | '@aws-sdk/middleware-sdk-s3': 3.387.0 144 | '@aws-sdk/middleware-signing': 3.387.0 145 | '@aws-sdk/middleware-ssec': 3.387.0 146 | '@aws-sdk/middleware-user-agent': 3.387.0 147 | '@aws-sdk/signature-v4-multi-region': 3.387.0 148 | '@aws-sdk/types': 3.387.0 149 | '@aws-sdk/util-endpoints': 3.387.0 150 | '@aws-sdk/util-user-agent-browser': 3.387.0 151 | '@aws-sdk/util-user-agent-node': 3.387.0 152 | '@aws-sdk/xml-builder': 3.310.0 153 | '@smithy/config-resolver': 2.0.3 154 | '@smithy/eventstream-serde-browser': 2.0.3 155 | '@smithy/eventstream-serde-config-resolver': 2.0.3 156 | '@smithy/eventstream-serde-node': 2.0.3 157 | '@smithy/fetch-http-handler': 2.0.3 158 | '@smithy/hash-blob-browser': 2.0.3 159 | '@smithy/hash-node': 2.0.3 160 | '@smithy/hash-stream-node': 2.0.3 161 | '@smithy/invalid-dependency': 2.0.3 162 | '@smithy/md5-js': 2.0.3 163 | '@smithy/middleware-content-length': 2.0.3 164 | '@smithy/middleware-endpoint': 2.0.3 165 | '@smithy/middleware-retry': 2.0.3 166 | '@smithy/middleware-serde': 2.0.3 167 | '@smithy/middleware-stack': 2.0.0 168 | '@smithy/node-config-provider': 2.0.3 169 | '@smithy/node-http-handler': 2.0.3 170 | '@smithy/protocol-http': 2.0.3 171 | '@smithy/smithy-client': 2.0.3 172 | '@smithy/types': 2.2.0 173 | '@smithy/url-parser': 2.0.3 174 | '@smithy/util-base64': 2.0.0 175 | '@smithy/util-body-length-browser': 2.0.0 176 | '@smithy/util-body-length-node': 2.0.0 177 | '@smithy/util-defaults-mode-browser': 2.0.3 178 | '@smithy/util-defaults-mode-node': 2.0.3 179 | '@smithy/util-retry': 2.0.0 180 | '@smithy/util-stream': 2.0.3 181 | '@smithy/util-utf8': 2.0.0 182 | '@smithy/util-waiter': 2.0.3 183 | fast-xml-parser: 4.2.5 184 | tslib: 2.6.1 185 | transitivePeerDependencies: 186 | - '@aws-sdk/signature-v4-crt' 187 | - aws-crt 188 | dev: false 189 | 190 | /@aws-sdk/client-sso@3.387.0: 191 | resolution: {integrity: sha512-E7uKSvbA0XMKSN5KLInf52hmMpe9/OKo6N9OPffGXdn3fNEQlvyQq3meUkqG7Is0ldgsQMz5EUBNtNybXzr3tQ==} 192 | engines: {node: '>=14.0.0'} 193 | dependencies: 194 | '@aws-crypto/sha256-browser': 3.0.0 195 | '@aws-crypto/sha256-js': 3.0.0 196 | '@aws-sdk/middleware-host-header': 3.387.0 197 | '@aws-sdk/middleware-logger': 3.387.0 198 | '@aws-sdk/middleware-recursion-detection': 3.387.0 199 | '@aws-sdk/middleware-user-agent': 3.387.0 200 | '@aws-sdk/types': 3.387.0 201 | '@aws-sdk/util-endpoints': 3.387.0 202 | '@aws-sdk/util-user-agent-browser': 3.387.0 203 | '@aws-sdk/util-user-agent-node': 3.387.0 204 | '@smithy/config-resolver': 2.0.3 205 | '@smithy/fetch-http-handler': 2.0.3 206 | '@smithy/hash-node': 2.0.3 207 | '@smithy/invalid-dependency': 2.0.3 208 | '@smithy/middleware-content-length': 2.0.3 209 | '@smithy/middleware-endpoint': 2.0.3 210 | '@smithy/middleware-retry': 2.0.3 211 | '@smithy/middleware-serde': 2.0.3 212 | '@smithy/middleware-stack': 2.0.0 213 | '@smithy/node-config-provider': 2.0.3 214 | '@smithy/node-http-handler': 2.0.3 215 | '@smithy/protocol-http': 2.0.3 216 | '@smithy/smithy-client': 2.0.3 217 | '@smithy/types': 2.2.0 218 | '@smithy/url-parser': 2.0.3 219 | '@smithy/util-base64': 2.0.0 220 | '@smithy/util-body-length-browser': 2.0.0 221 | '@smithy/util-body-length-node': 2.0.0 222 | '@smithy/util-defaults-mode-browser': 2.0.3 223 | '@smithy/util-defaults-mode-node': 2.0.3 224 | '@smithy/util-retry': 2.0.0 225 | '@smithy/util-utf8': 2.0.0 226 | tslib: 2.6.1 227 | transitivePeerDependencies: 228 | - aws-crt 229 | dev: false 230 | 231 | /@aws-sdk/client-sts@3.388.0: 232 | resolution: {integrity: sha512-y9FAcAYHT8O6T/jqhgsIQUb4gLiSTKD3xtzudDvjmFi8gl0oRIY1npbeckSiK6k07VQugm2s64I0nDnDxtWsBg==} 233 | engines: {node: '>=14.0.0'} 234 | dependencies: 235 | '@aws-crypto/sha256-browser': 3.0.0 236 | '@aws-crypto/sha256-js': 3.0.0 237 | '@aws-sdk/credential-provider-node': 3.388.0 238 | '@aws-sdk/middleware-host-header': 3.387.0 239 | '@aws-sdk/middleware-logger': 3.387.0 240 | '@aws-sdk/middleware-recursion-detection': 3.387.0 241 | '@aws-sdk/middleware-sdk-sts': 3.387.0 242 | '@aws-sdk/middleware-signing': 3.387.0 243 | '@aws-sdk/middleware-user-agent': 3.387.0 244 | '@aws-sdk/types': 3.387.0 245 | '@aws-sdk/util-endpoints': 3.387.0 246 | '@aws-sdk/util-user-agent-browser': 3.387.0 247 | '@aws-sdk/util-user-agent-node': 3.387.0 248 | '@smithy/config-resolver': 2.0.3 249 | '@smithy/fetch-http-handler': 2.0.3 250 | '@smithy/hash-node': 2.0.3 251 | '@smithy/invalid-dependency': 2.0.3 252 | '@smithy/middleware-content-length': 2.0.3 253 | '@smithy/middleware-endpoint': 2.0.3 254 | '@smithy/middleware-retry': 2.0.3 255 | '@smithy/middleware-serde': 2.0.3 256 | '@smithy/middleware-stack': 2.0.0 257 | '@smithy/node-config-provider': 2.0.3 258 | '@smithy/node-http-handler': 2.0.3 259 | '@smithy/protocol-http': 2.0.3 260 | '@smithy/smithy-client': 2.0.3 261 | '@smithy/types': 2.2.0 262 | '@smithy/url-parser': 2.0.3 263 | '@smithy/util-base64': 2.0.0 264 | '@smithy/util-body-length-browser': 2.0.0 265 | '@smithy/util-body-length-node': 2.0.0 266 | '@smithy/util-defaults-mode-browser': 2.0.3 267 | '@smithy/util-defaults-mode-node': 2.0.3 268 | '@smithy/util-retry': 2.0.0 269 | '@smithy/util-utf8': 2.0.0 270 | fast-xml-parser: 4.2.5 271 | tslib: 2.6.1 272 | transitivePeerDependencies: 273 | - aws-crt 274 | dev: false 275 | 276 | /@aws-sdk/credential-provider-env@3.387.0: 277 | resolution: {integrity: sha512-PVqNk7XPIYe5CMYNvELkcALtkl/pIM8/uPtqEtTg+mgnZBeL4fAmgXZiZMahQo1DxP5t/JaK384f6JG+A0qDjA==} 278 | engines: {node: '>=14.0.0'} 279 | dependencies: 280 | '@aws-sdk/types': 3.387.0 281 | '@smithy/property-provider': 2.0.3 282 | '@smithy/types': 2.2.0 283 | tslib: 2.6.1 284 | dev: false 285 | 286 | /@aws-sdk/credential-provider-ini@3.388.0: 287 | resolution: {integrity: sha512-3dg3A8AiZ5vXkSAYyyI3V/AW3Eo6KQJyE/glA+Nr2M0oAjT4z3vHhS3pf2B+hfKGZBTuKKgxusrrhrQABd/Diw==} 288 | engines: {node: '>=14.0.0'} 289 | dependencies: 290 | '@aws-sdk/credential-provider-env': 3.387.0 291 | '@aws-sdk/credential-provider-process': 3.387.0 292 | '@aws-sdk/credential-provider-sso': 3.388.0 293 | '@aws-sdk/credential-provider-web-identity': 3.387.0 294 | '@aws-sdk/types': 3.387.0 295 | '@smithy/credential-provider-imds': 2.0.3 296 | '@smithy/property-provider': 2.0.3 297 | '@smithy/shared-ini-file-loader': 2.0.3 298 | '@smithy/types': 2.2.0 299 | tslib: 2.6.1 300 | transitivePeerDependencies: 301 | - aws-crt 302 | dev: false 303 | 304 | /@aws-sdk/credential-provider-node@3.388.0: 305 | resolution: {integrity: sha512-BqWAkIG08gj/wevpesaZhAjALjfUNVjseHQRk+DNUoHIfyibW7Ahf3q/GIPs11dA2o8ECwR9/fo68Sq+sK799A==} 306 | engines: {node: '>=14.0.0'} 307 | dependencies: 308 | '@aws-sdk/credential-provider-env': 3.387.0 309 | '@aws-sdk/credential-provider-ini': 3.388.0 310 | '@aws-sdk/credential-provider-process': 3.387.0 311 | '@aws-sdk/credential-provider-sso': 3.388.0 312 | '@aws-sdk/credential-provider-web-identity': 3.387.0 313 | '@aws-sdk/types': 3.387.0 314 | '@smithy/credential-provider-imds': 2.0.3 315 | '@smithy/property-provider': 2.0.3 316 | '@smithy/shared-ini-file-loader': 2.0.3 317 | '@smithy/types': 2.2.0 318 | tslib: 2.6.1 319 | transitivePeerDependencies: 320 | - aws-crt 321 | dev: false 322 | 323 | /@aws-sdk/credential-provider-process@3.387.0: 324 | resolution: {integrity: sha512-tQScLHmDlqkQN+mqw4s3cxepEUeHYDhFl5eH+J8puvPqWjXMYpCEdY79SAtWs6SZd4CWiZ0VLeYU6xQBZengbQ==} 325 | engines: {node: '>=14.0.0'} 326 | dependencies: 327 | '@aws-sdk/types': 3.387.0 328 | '@smithy/property-provider': 2.0.3 329 | '@smithy/shared-ini-file-loader': 2.0.3 330 | '@smithy/types': 2.2.0 331 | tslib: 2.6.1 332 | dev: false 333 | 334 | /@aws-sdk/credential-provider-sso@3.388.0: 335 | resolution: {integrity: sha512-RH02+rntaO0UhnSBr42n+7q8HOztc+Dets/hh6cWovf3Yi9s9ghLgYLN9FXpSosfot3XkmT/HOCa+CphAmGN9A==} 336 | engines: {node: '>=14.0.0'} 337 | dependencies: 338 | '@aws-sdk/client-sso': 3.387.0 339 | '@aws-sdk/token-providers': 3.388.0 340 | '@aws-sdk/types': 3.387.0 341 | '@smithy/property-provider': 2.0.3 342 | '@smithy/shared-ini-file-loader': 2.0.3 343 | '@smithy/types': 2.2.0 344 | tslib: 2.6.1 345 | transitivePeerDependencies: 346 | - aws-crt 347 | dev: false 348 | 349 | /@aws-sdk/credential-provider-web-identity@3.387.0: 350 | resolution: {integrity: sha512-6ueMPl+J3KWv6ZaAWF4Z138QCuBVFZRVAgwbtP3BNqWrrs4Q6TPksOQJ79lRDMpv0EUoyVl04B6lldNlhN8RdA==} 351 | engines: {node: '>=14.0.0'} 352 | dependencies: 353 | '@aws-sdk/types': 3.387.0 354 | '@smithy/property-provider': 2.0.3 355 | '@smithy/types': 2.2.0 356 | tslib: 2.6.1 357 | dev: false 358 | 359 | /@aws-sdk/middleware-bucket-endpoint@3.387.0: 360 | resolution: {integrity: sha512-o7Dsq0YTUHFcKXD6+30/fXv/Wzdxqz9WonhCu3ZFPwTDLZgOM4QDDKW8EcC1SplKP1IUyaEli8Affodag9T1cQ==} 361 | engines: {node: '>=14.0.0'} 362 | dependencies: 363 | '@aws-sdk/types': 3.387.0 364 | '@aws-sdk/util-arn-parser': 3.310.0 365 | '@smithy/protocol-http': 2.0.3 366 | '@smithy/types': 2.2.0 367 | '@smithy/util-config-provider': 2.0.0 368 | tslib: 2.6.1 369 | dev: false 370 | 371 | /@aws-sdk/middleware-expect-continue@3.387.0: 372 | resolution: {integrity: sha512-w415a4tjQc6a7isq0AEDWFBC0HWUCHXEDjDl94UACxfMmS9bVabuf04t9CQ+nBBVs6HdiNdfdc/pBR2pRwx2Yg==} 373 | engines: {node: '>=14.0.0'} 374 | dependencies: 375 | '@aws-sdk/types': 3.387.0 376 | '@smithy/protocol-http': 2.0.3 377 | '@smithy/types': 2.2.0 378 | tslib: 2.6.1 379 | dev: false 380 | 381 | /@aws-sdk/middleware-flexible-checksums@3.387.0: 382 | resolution: {integrity: sha512-QlH97rrKlcMyLG+2ps7+DtBHfPyRIpi7sD3y0iko2u3PGXk+PoLPK8wWyGql9sFopOYTl6/Jh2Rb1b6z6NbjEA==} 383 | engines: {node: '>=14.0.0'} 384 | dependencies: 385 | '@aws-crypto/crc32': 3.0.0 386 | '@aws-crypto/crc32c': 3.0.0 387 | '@aws-sdk/types': 3.387.0 388 | '@smithy/is-array-buffer': 2.0.0 389 | '@smithy/protocol-http': 2.0.3 390 | '@smithy/types': 2.2.0 391 | '@smithy/util-utf8': 2.0.0 392 | tslib: 2.6.1 393 | dev: false 394 | 395 | /@aws-sdk/middleware-host-header@3.387.0: 396 | resolution: {integrity: sha512-EWm9PXSr8dSp7hnRth1U7OfelXQp9dLf1yS1kUL+UhppYDJpjhdP7ql3NI4xJKw8e76sP2FuJYEuzWnJHuWoyQ==} 397 | engines: {node: '>=14.0.0'} 398 | dependencies: 399 | '@aws-sdk/types': 3.387.0 400 | '@smithy/protocol-http': 2.0.3 401 | '@smithy/types': 2.2.0 402 | tslib: 2.6.1 403 | dev: false 404 | 405 | /@aws-sdk/middleware-location-constraint@3.387.0: 406 | resolution: {integrity: sha512-Ipdry2V58CpDcWD0ZTz6yFtpTASEBxbuWdqUUYW7pOkZ/5GPGH8NhBky7M38iGqAO6FNysvWEVCUpIqNGkI1lw==} 407 | engines: {node: '>=14.0.0'} 408 | dependencies: 409 | '@aws-sdk/types': 3.387.0 410 | '@smithy/types': 2.2.0 411 | tslib: 2.6.1 412 | dev: false 413 | 414 | /@aws-sdk/middleware-logger@3.387.0: 415 | resolution: {integrity: sha512-FjAvJr1XyaInT81RxUwgifnbXoFJrRBFc64XeFJgFanGIQCWLYxRrK2HV9eBpao/AycbmuoHgLd/f0sa4hZFoQ==} 416 | engines: {node: '>=14.0.0'} 417 | dependencies: 418 | '@aws-sdk/types': 3.387.0 419 | '@smithy/types': 2.2.0 420 | tslib: 2.6.1 421 | dev: false 422 | 423 | /@aws-sdk/middleware-recursion-detection@3.387.0: 424 | resolution: {integrity: sha512-ZF45T785ru8OwvYZw6awD9Z76OwSMM1eZzj2eY+FDz1cHfkpLjxEiti2iIH1FxbyK7n9ZqDUx29lVlCv238YyQ==} 425 | engines: {node: '>=14.0.0'} 426 | dependencies: 427 | '@aws-sdk/types': 3.387.0 428 | '@smithy/protocol-http': 2.0.3 429 | '@smithy/types': 2.2.0 430 | tslib: 2.6.1 431 | dev: false 432 | 433 | /@aws-sdk/middleware-sdk-s3@3.387.0: 434 | resolution: {integrity: sha512-OIUBDzGhglI6KjXVwPLh7hRbrfCpSTwWRkbXbLrPgZZuzWMoJJ3q59RVkpLnAV9Mdkg6+YA6JTw4k4hcmJblVw==} 435 | engines: {node: '>=14.0.0'} 436 | dependencies: 437 | '@aws-sdk/types': 3.387.0 438 | '@aws-sdk/util-arn-parser': 3.310.0 439 | '@smithy/protocol-http': 2.0.3 440 | '@smithy/types': 2.2.0 441 | tslib: 2.6.1 442 | dev: false 443 | 444 | /@aws-sdk/middleware-sdk-sts@3.387.0: 445 | resolution: {integrity: sha512-7ZzRKOJ4V/JDQmKz9z+FjZqw59mrMATEMLR6ff0H0JHMX0Uk5IX8TQB058ss+ar14qeJ4UcteYzCqHNI0O1BHw==} 446 | engines: {node: '>=14.0.0'} 447 | dependencies: 448 | '@aws-sdk/middleware-signing': 3.387.0 449 | '@aws-sdk/types': 3.387.0 450 | '@smithy/types': 2.2.0 451 | tslib: 2.6.1 452 | dev: false 453 | 454 | /@aws-sdk/middleware-signing@3.387.0: 455 | resolution: {integrity: sha512-oJXlE0MES8gxNLo137PPNNiOICQGOaETTvq3kBSJgb/gtEAxQajMIlaNT7s1wsjOAruFHt4975nCXuY4lpx7GQ==} 456 | engines: {node: '>=14.0.0'} 457 | dependencies: 458 | '@aws-sdk/types': 3.387.0 459 | '@smithy/property-provider': 2.0.3 460 | '@smithy/protocol-http': 2.0.3 461 | '@smithy/signature-v4': 2.0.3 462 | '@smithy/types': 2.2.0 463 | '@smithy/util-middleware': 2.0.0 464 | tslib: 2.6.1 465 | dev: false 466 | 467 | /@aws-sdk/middleware-ssec@3.387.0: 468 | resolution: {integrity: sha512-Jtie1gqqcs7ZuYDlz/kuI3CKCXoCL5Ov/Gj5X8/XmwrQJEpuB6z0KY5H1qY0xo+jtAhC8nDPv0GnuLoOfn85hw==} 469 | engines: {node: '>=14.0.0'} 470 | dependencies: 471 | '@aws-sdk/types': 3.387.0 472 | '@smithy/types': 2.2.0 473 | tslib: 2.6.1 474 | dev: false 475 | 476 | /@aws-sdk/middleware-user-agent@3.387.0: 477 | resolution: {integrity: sha512-hTfFTwDtp86xS98BKa+RFuLfcvGftxwzrbZeisZV8hdb4ZhvNXjSxnvM3vetW0GUEnY9xHPSGyp2ERRTinPKFQ==} 478 | engines: {node: '>=14.0.0'} 479 | dependencies: 480 | '@aws-sdk/types': 3.387.0 481 | '@aws-sdk/util-endpoints': 3.387.0 482 | '@smithy/protocol-http': 2.0.3 483 | '@smithy/types': 2.2.0 484 | tslib: 2.6.1 485 | dev: false 486 | 487 | /@aws-sdk/s3-request-presigner@3.388.0: 488 | resolution: {integrity: sha512-vMdIS5ce5zTEaZUsbpoMf8uQNjF2J2vRizsr5pomV71zLUdLYubSr5TA7fKBSimwjS3XMCyKX2rJkGGVK5JGmQ==} 489 | engines: {node: '>=14.0.0'} 490 | dependencies: 491 | '@aws-sdk/signature-v4-multi-region': 3.387.0 492 | '@aws-sdk/types': 3.387.0 493 | '@aws-sdk/util-format-url': 3.387.0 494 | '@smithy/middleware-endpoint': 2.0.3 495 | '@smithy/protocol-http': 2.0.3 496 | '@smithy/smithy-client': 2.0.3 497 | '@smithy/types': 2.2.0 498 | tslib: 2.6.1 499 | transitivePeerDependencies: 500 | - '@aws-sdk/signature-v4-crt' 501 | dev: false 502 | 503 | /@aws-sdk/signature-v4-multi-region@3.387.0: 504 | resolution: {integrity: sha512-SGuUbEFi8BXYVv4M7Hc0488I7uZbTVBW19j/B7bnyfbKFrndBXM366s/mChx4iELtESQ61AAstyafx5nGj5tIg==} 505 | engines: {node: '>=14.0.0'} 506 | peerDependencies: 507 | '@aws-sdk/signature-v4-crt': ^3.118.0 508 | peerDependenciesMeta: 509 | '@aws-sdk/signature-v4-crt': 510 | optional: true 511 | dependencies: 512 | '@aws-sdk/types': 3.387.0 513 | '@smithy/protocol-http': 2.0.3 514 | '@smithy/signature-v4': 2.0.3 515 | '@smithy/types': 2.2.0 516 | tslib: 2.6.1 517 | dev: false 518 | 519 | /@aws-sdk/token-providers@3.388.0: 520 | resolution: {integrity: sha512-2lo1gFJl624kfjo/YdU6zW+k6dEwhoqjNkDNbOZEFgS1KDofHe9GX8W4/ReKb0Ggho5/EcjzZ53/1CjkzUq4tA==} 521 | engines: {node: '>=14.0.0'} 522 | dependencies: 523 | '@aws-crypto/sha256-browser': 3.0.0 524 | '@aws-crypto/sha256-js': 3.0.0 525 | '@aws-sdk/middleware-host-header': 3.387.0 526 | '@aws-sdk/middleware-logger': 3.387.0 527 | '@aws-sdk/middleware-recursion-detection': 3.387.0 528 | '@aws-sdk/middleware-user-agent': 3.387.0 529 | '@aws-sdk/types': 3.387.0 530 | '@aws-sdk/util-endpoints': 3.387.0 531 | '@aws-sdk/util-user-agent-browser': 3.387.0 532 | '@aws-sdk/util-user-agent-node': 3.387.0 533 | '@smithy/config-resolver': 2.0.3 534 | '@smithy/fetch-http-handler': 2.0.3 535 | '@smithy/hash-node': 2.0.3 536 | '@smithy/invalid-dependency': 2.0.3 537 | '@smithy/middleware-content-length': 2.0.3 538 | '@smithy/middleware-endpoint': 2.0.3 539 | '@smithy/middleware-retry': 2.0.3 540 | '@smithy/middleware-serde': 2.0.3 541 | '@smithy/middleware-stack': 2.0.0 542 | '@smithy/node-config-provider': 2.0.3 543 | '@smithy/node-http-handler': 2.0.3 544 | '@smithy/property-provider': 2.0.3 545 | '@smithy/protocol-http': 2.0.3 546 | '@smithy/shared-ini-file-loader': 2.0.3 547 | '@smithy/smithy-client': 2.0.3 548 | '@smithy/types': 2.2.0 549 | '@smithy/url-parser': 2.0.3 550 | '@smithy/util-base64': 2.0.0 551 | '@smithy/util-body-length-browser': 2.0.0 552 | '@smithy/util-body-length-node': 2.0.0 553 | '@smithy/util-defaults-mode-browser': 2.0.3 554 | '@smithy/util-defaults-mode-node': 2.0.3 555 | '@smithy/util-retry': 2.0.0 556 | '@smithy/util-utf8': 2.0.0 557 | tslib: 2.6.1 558 | transitivePeerDependencies: 559 | - aws-crt 560 | dev: false 561 | 562 | /@aws-sdk/types@3.387.0: 563 | resolution: {integrity: sha512-YTjFabNwjTF+6yl88f0/tWff018qmmgMmjlw45s6sdVKueWxdxV68U7gepNLF2nhaQPZa6FDOBoA51NaviVs0Q==} 564 | engines: {node: '>=14.0.0'} 565 | dependencies: 566 | '@smithy/types': 2.2.0 567 | tslib: 2.6.1 568 | dev: false 569 | 570 | /@aws-sdk/util-arn-parser@3.310.0: 571 | resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==} 572 | engines: {node: '>=14.0.0'} 573 | dependencies: 574 | tslib: 2.6.1 575 | dev: false 576 | 577 | /@aws-sdk/util-endpoints@3.387.0: 578 | resolution: {integrity: sha512-g7kvuCXehGXHHBw9PkSQdwVyDFmNUZLmfrRmqMyrMDG9QLQrxr4pyWcSaYgTE16yUzhQQOR+QSey+BL6W9/N6g==} 579 | engines: {node: '>=14.0.0'} 580 | dependencies: 581 | '@aws-sdk/types': 3.387.0 582 | tslib: 2.6.1 583 | dev: false 584 | 585 | /@aws-sdk/util-format-url@3.387.0: 586 | resolution: {integrity: sha512-kiy7+93M1JeEn3pLJhY/q4G3f9tGsSbsgHKg2mDTCIxJaUmnHIYINN9vhEYQcDCMcWvOF0rzkuB9L8uAzR4O3g==} 587 | engines: {node: '>=14.0.0'} 588 | dependencies: 589 | '@aws-sdk/types': 3.387.0 590 | '@smithy/querystring-builder': 2.0.3 591 | '@smithy/types': 2.2.0 592 | tslib: 2.6.1 593 | dev: false 594 | 595 | /@aws-sdk/util-locate-window@3.310.0: 596 | resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} 597 | engines: {node: '>=14.0.0'} 598 | dependencies: 599 | tslib: 2.6.1 600 | dev: false 601 | 602 | /@aws-sdk/util-user-agent-browser@3.387.0: 603 | resolution: {integrity: sha512-lpgSVvDqx+JjHZCTYs/yQSS7J71dPlJeAlvxc7bmx5m+vfwKe07HAnIs+929DngS0QbAp/VaXbTiMFsInLkO4Q==} 604 | dependencies: 605 | '@aws-sdk/types': 3.387.0 606 | '@smithy/types': 2.2.0 607 | bowser: 2.11.0 608 | tslib: 2.6.1 609 | dev: false 610 | 611 | /@aws-sdk/util-user-agent-node@3.387.0: 612 | resolution: {integrity: sha512-r9OVkcWpRYatjLhJacuHFgvO2T5s/Nu5DDbScMrkUD8b4aGIIqsrdZji0vZy9FCjsUFQMM92t9nt4SejrGjChA==} 613 | engines: {node: '>=14.0.0'} 614 | peerDependencies: 615 | aws-crt: '>=1.0.0' 616 | peerDependenciesMeta: 617 | aws-crt: 618 | optional: true 619 | dependencies: 620 | '@aws-sdk/types': 3.387.0 621 | '@smithy/node-config-provider': 2.0.3 622 | '@smithy/types': 2.2.0 623 | tslib: 2.6.1 624 | dev: false 625 | 626 | /@aws-sdk/util-utf8-browser@3.259.0: 627 | resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} 628 | dependencies: 629 | tslib: 2.6.1 630 | dev: false 631 | 632 | /@aws-sdk/xml-builder@3.310.0: 633 | resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} 634 | engines: {node: '>=14.0.0'} 635 | dependencies: 636 | tslib: 2.6.1 637 | dev: false 638 | 639 | /@cloudflare/kv-asset-handler@0.2.0: 640 | resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==} 641 | dependencies: 642 | mime: 3.0.0 643 | dev: true 644 | 645 | /@cloudflare/workerd-darwin-64@1.20230807.0: 646 | resolution: {integrity: sha512-p1XgkX6OcomFSRSHiIo6XbWB40sMExnFUWtZFfSvB7oNmkrtEvUCI3iuh+ibFI5IDSZqsRKyIHx6Oe22Z0ei5A==} 647 | engines: {node: '>=16'} 648 | cpu: [x64] 649 | os: [darwin] 650 | requiresBuild: true 651 | dev: true 652 | optional: true 653 | 654 | /@cloudflare/workerd-darwin-arm64@1.20230807.0: 655 | resolution: {integrity: sha512-HjhjRFPvDg3Sh4TXyz38Z+AhaLA+0AiAmYKRadcnKhysjOaTew86POS3xdaKiZ3xG83J7rsLcqajW54znbmCkg==} 656 | engines: {node: '>=16'} 657 | cpu: [arm64] 658 | os: [darwin] 659 | requiresBuild: true 660 | dev: true 661 | optional: true 662 | 663 | /@cloudflare/workerd-linux-64@1.20230807.0: 664 | resolution: {integrity: sha512-PPuGKoRILFTlZDC7uGXgrYBucopqkvicaov/ypbPmUVb/DfrXGqftEkNbXlyiXY1g0t10wXRiSZWi7hOBOIH7w==} 665 | engines: {node: '>=16'} 666 | cpu: [x64] 667 | os: [linux] 668 | requiresBuild: true 669 | dev: true 670 | optional: true 671 | 672 | /@cloudflare/workerd-linux-arm64@1.20230807.0: 673 | resolution: {integrity: sha512-ESAf2tXarK8dJl07voa/NI2BBpH1duldfgeQQQmor437A3+gSqQSBhAEmh05bjHy6dYHXgZtwLPky+LL6hmyBA==} 674 | engines: {node: '>=16'} 675 | cpu: [arm64] 676 | os: [linux] 677 | requiresBuild: true 678 | dev: true 679 | optional: true 680 | 681 | /@cloudflare/workerd-windows-64@1.20230807.0: 682 | resolution: {integrity: sha512-DYKkLtT4lNRdVx+2fbYgPxdF7ypJn9bT2HYMZ93N7XPwaKFx2svBRMrZkwBcvwuNb+99Z0jnaQwdcFnHcFLzZA==} 683 | engines: {node: '>=16'} 684 | cpu: [x64] 685 | os: [win32] 686 | requiresBuild: true 687 | dev: true 688 | optional: true 689 | 690 | /@cloudflare/workers-types@4.20230807.0: 691 | resolution: {integrity: sha512-gQczWuGE2rxmpzOCNn0zLbx8Xz0gqspdE9S7tu4Xax39q1csgO/E9flcS+KG3GHB522ugOh84inmABDhpeJnvQ==} 692 | dev: true 693 | 694 | /@esbuild-plugins/node-globals-polyfill@0.1.1(esbuild@0.16.3): 695 | resolution: {integrity: sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==} 696 | peerDependencies: 697 | esbuild: '*' 698 | dependencies: 699 | esbuild: 0.16.3 700 | dev: true 701 | 702 | /@esbuild-plugins/node-modules-polyfill@0.1.4(esbuild@0.16.3): 703 | resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} 704 | peerDependencies: 705 | esbuild: '*' 706 | dependencies: 707 | esbuild: 0.16.3 708 | escape-string-regexp: 4.0.0 709 | rollup-plugin-node-polyfills: 0.2.1 710 | dev: true 711 | 712 | /@esbuild/android-arm64@0.16.3: 713 | resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==} 714 | engines: {node: '>=12'} 715 | cpu: [arm64] 716 | os: [android] 717 | requiresBuild: true 718 | dev: true 719 | optional: true 720 | 721 | /@esbuild/android-arm64@0.19.1: 722 | resolution: {integrity: sha512-CqhrKvDSt76I0so/5afqgKrMv41FjbfUKFrcZddMnrZKqJU70I1MWLVJrImJuYMaY4Yb9rn4UKfF7oZ0BOleVw==} 723 | engines: {node: '>=12'} 724 | cpu: [arm64] 725 | os: [android] 726 | requiresBuild: true 727 | dev: true 728 | optional: true 729 | 730 | /@esbuild/android-arm@0.16.3: 731 | resolution: {integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==} 732 | engines: {node: '>=12'} 733 | cpu: [arm] 734 | os: [android] 735 | requiresBuild: true 736 | dev: true 737 | optional: true 738 | 739 | /@esbuild/android-arm@0.19.1: 740 | resolution: {integrity: sha512-yjTucwcOua52z14RL30JMwmCdylsQ5WrErGkAb6VL0MWPbnwJyLejydaRcUqkPO6g0MowlzavdxrR7AcfCW+yA==} 741 | engines: {node: '>=12'} 742 | cpu: [arm] 743 | os: [android] 744 | requiresBuild: true 745 | dev: true 746 | optional: true 747 | 748 | /@esbuild/android-x64@0.16.3: 749 | resolution: {integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==} 750 | engines: {node: '>=12'} 751 | cpu: [x64] 752 | os: [android] 753 | requiresBuild: true 754 | dev: true 755 | optional: true 756 | 757 | /@esbuild/android-x64@0.19.1: 758 | resolution: {integrity: sha512-VA29h01MrPkymIL1bFtvL2L4WPogiMGW2N/M+vXZHHOv6LgA9vjzVskTt0v5LjeCjx1PFDcR0ASKy8Y7Gm+iIA==} 759 | engines: {node: '>=12'} 760 | cpu: [x64] 761 | os: [android] 762 | requiresBuild: true 763 | dev: true 764 | optional: true 765 | 766 | /@esbuild/darwin-arm64@0.16.3: 767 | resolution: {integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==} 768 | engines: {node: '>=12'} 769 | cpu: [arm64] 770 | os: [darwin] 771 | requiresBuild: true 772 | dev: true 773 | optional: true 774 | 775 | /@esbuild/darwin-arm64@0.19.1: 776 | resolution: {integrity: sha512-Be4Cf6WDH7QkLHEpfzQOlBOFdqmqYTSqw2yG3SVmzB3++wy3K7wiNGedezL+q6Jb4weqT9tchO5kkLDC08Jnzg==} 777 | engines: {node: '>=12'} 778 | cpu: [arm64] 779 | os: [darwin] 780 | requiresBuild: true 781 | dev: true 782 | optional: true 783 | 784 | /@esbuild/darwin-x64@0.16.3: 785 | resolution: {integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==} 786 | engines: {node: '>=12'} 787 | cpu: [x64] 788 | os: [darwin] 789 | requiresBuild: true 790 | dev: true 791 | optional: true 792 | 793 | /@esbuild/darwin-x64@0.19.1: 794 | resolution: {integrity: sha512-SewtenJi6zCEfZRSUchb+LgJ/IQw8QvnKECPu/qHII1fLQKnVPUVR+VH2IuS03DD9WWnAi3yfOvBNwtrp3WXtg==} 795 | engines: {node: '>=12'} 796 | cpu: [x64] 797 | os: [darwin] 798 | requiresBuild: true 799 | dev: true 800 | optional: true 801 | 802 | /@esbuild/freebsd-arm64@0.16.3: 803 | resolution: {integrity: sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==} 804 | engines: {node: '>=12'} 805 | cpu: [arm64] 806 | os: [freebsd] 807 | requiresBuild: true 808 | dev: true 809 | optional: true 810 | 811 | /@esbuild/freebsd-arm64@0.19.1: 812 | resolution: {integrity: sha512-TadKO0AaTDAPV2RyGZQ0AaiDTVYg7RsgNaA6OJjXXmoLbTs++NwHtzAmVFBq8Q/P9A11wgkv36HeyAYhWHbW1w==} 813 | engines: {node: '>=12'} 814 | cpu: [arm64] 815 | os: [freebsd] 816 | requiresBuild: true 817 | dev: true 818 | optional: true 819 | 820 | /@esbuild/freebsd-x64@0.16.3: 821 | resolution: {integrity: sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==} 822 | engines: {node: '>=12'} 823 | cpu: [x64] 824 | os: [freebsd] 825 | requiresBuild: true 826 | dev: true 827 | optional: true 828 | 829 | /@esbuild/freebsd-x64@0.19.1: 830 | resolution: {integrity: sha512-DrFMGLF0/aAcZgwhtZr1cby7aHlalpFjLCe5CiI8mm0Kqhhc8gyNZKreaZzvir8CQe0H17p9xx6M9ben5R3r0g==} 831 | engines: {node: '>=12'} 832 | cpu: [x64] 833 | os: [freebsd] 834 | requiresBuild: true 835 | dev: true 836 | optional: true 837 | 838 | /@esbuild/linux-arm64@0.16.3: 839 | resolution: {integrity: sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==} 840 | engines: {node: '>=12'} 841 | cpu: [arm64] 842 | os: [linux] 843 | requiresBuild: true 844 | dev: true 845 | optional: true 846 | 847 | /@esbuild/linux-arm64@0.19.1: 848 | resolution: {integrity: sha512-6ku/R2EzsdjyBaqQn+xGOPbv+BBYBXQYzlA04/46YQLmXkdApi0GYyUwiCXYBxm578iyywzGmM0rep1/q8tuFQ==} 849 | engines: {node: '>=12'} 850 | cpu: [arm64] 851 | os: [linux] 852 | requiresBuild: true 853 | dev: true 854 | optional: true 855 | 856 | /@esbuild/linux-arm@0.16.3: 857 | resolution: {integrity: sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==} 858 | engines: {node: '>=12'} 859 | cpu: [arm] 860 | os: [linux] 861 | requiresBuild: true 862 | dev: true 863 | optional: true 864 | 865 | /@esbuild/linux-arm@0.19.1: 866 | resolution: {integrity: sha512-lCWDVPpQO/Dt5MEqctKujgtUVmwQx7J2Q83EqX/9BejN7BIX4fGJ0QKMiIyy21PFh+/64ArN+Ovh1tzYkTt2wg==} 867 | engines: {node: '>=12'} 868 | cpu: [arm] 869 | os: [linux] 870 | requiresBuild: true 871 | dev: true 872 | optional: true 873 | 874 | /@esbuild/linux-ia32@0.16.3: 875 | resolution: {integrity: sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==} 876 | engines: {node: '>=12'} 877 | cpu: [ia32] 878 | os: [linux] 879 | requiresBuild: true 880 | dev: true 881 | optional: true 882 | 883 | /@esbuild/linux-ia32@0.19.1: 884 | resolution: {integrity: sha512-8AKFBk9v/zBDsADvK/0BWZUxkjEc0QDwO8rvbHJKqAZx6DF/VSeBxTRmqWeecrJmx+n3kemEwML9z0eD9IHweQ==} 885 | engines: {node: '>=12'} 886 | cpu: [ia32] 887 | os: [linux] 888 | requiresBuild: true 889 | dev: true 890 | optional: true 891 | 892 | /@esbuild/linux-loong64@0.16.3: 893 | resolution: {integrity: sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==} 894 | engines: {node: '>=12'} 895 | cpu: [loong64] 896 | os: [linux] 897 | requiresBuild: true 898 | dev: true 899 | optional: true 900 | 901 | /@esbuild/linux-loong64@0.19.1: 902 | resolution: {integrity: sha512-6mOS5CxTGD8qOymp2y4KoM4ir+/REgjdJQFYpwP+WqjrWBo+PUevDGeHHjzCdw/R19PkFqS1bRzv8cTCmB/5kA==} 903 | engines: {node: '>=12'} 904 | cpu: [loong64] 905 | os: [linux] 906 | requiresBuild: true 907 | dev: true 908 | optional: true 909 | 910 | /@esbuild/linux-mips64el@0.16.3: 911 | resolution: {integrity: sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==} 912 | engines: {node: '>=12'} 913 | cpu: [mips64el] 914 | os: [linux] 915 | requiresBuild: true 916 | dev: true 917 | optional: true 918 | 919 | /@esbuild/linux-mips64el@0.19.1: 920 | resolution: {integrity: sha512-Bzmv6rRMzR4ErG2k/jwfj5jKNzVMVEI1tThuirFdAoE+duUv+jlDnlwxsN3s1eqMzADTOV2sSIcUUOfgv++Dgg==} 921 | engines: {node: '>=12'} 922 | cpu: [mips64el] 923 | os: [linux] 924 | requiresBuild: true 925 | dev: true 926 | optional: true 927 | 928 | /@esbuild/linux-ppc64@0.16.3: 929 | resolution: {integrity: sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==} 930 | engines: {node: '>=12'} 931 | cpu: [ppc64] 932 | os: [linux] 933 | requiresBuild: true 934 | dev: true 935 | optional: true 936 | 937 | /@esbuild/linux-ppc64@0.19.1: 938 | resolution: {integrity: sha512-mPOxA7bd3nmx8TkuO/9M/tE0fnvmuX0wlpwnTL6DPLgkb/Z/KkupexSIw4cLfznn/fPzD89y17VWBjlVNyrpCQ==} 939 | engines: {node: '>=12'} 940 | cpu: [ppc64] 941 | os: [linux] 942 | requiresBuild: true 943 | dev: true 944 | optional: true 945 | 946 | /@esbuild/linux-riscv64@0.16.3: 947 | resolution: {integrity: sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==} 948 | engines: {node: '>=12'} 949 | cpu: [riscv64] 950 | os: [linux] 951 | requiresBuild: true 952 | dev: true 953 | optional: true 954 | 955 | /@esbuild/linux-riscv64@0.19.1: 956 | resolution: {integrity: sha512-znYb2Mhe9xKIDeIYuTD6vCcUltvYzRT5Yq6sVcdhPrGu8DRdsNZS04B2tSeM+j7T03jL4yY+7/G/jxSJJ9LX2A==} 957 | engines: {node: '>=12'} 958 | cpu: [riscv64] 959 | os: [linux] 960 | requiresBuild: true 961 | dev: true 962 | optional: true 963 | 964 | /@esbuild/linux-s390x@0.16.3: 965 | resolution: {integrity: sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==} 966 | engines: {node: '>=12'} 967 | cpu: [s390x] 968 | os: [linux] 969 | requiresBuild: true 970 | dev: true 971 | optional: true 972 | 973 | /@esbuild/linux-s390x@0.19.1: 974 | resolution: {integrity: sha512-BBIE32cyqAYhMOQ42/jnecoF5P/S5lMob2vXSUiFpD3xCFbXOFkjP1OjfFKnalSO9+B5emvPTQFfNQXuLeVGEw==} 975 | engines: {node: '>=12'} 976 | cpu: [s390x] 977 | os: [linux] 978 | requiresBuild: true 979 | dev: true 980 | optional: true 981 | 982 | /@esbuild/linux-x64@0.16.3: 983 | resolution: {integrity: sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==} 984 | engines: {node: '>=12'} 985 | cpu: [x64] 986 | os: [linux] 987 | requiresBuild: true 988 | dev: true 989 | optional: true 990 | 991 | /@esbuild/linux-x64@0.19.1: 992 | resolution: {integrity: sha512-PoCvKdHTIbnHmVJ5OEdewGMSw40HDFRTrC/imwh8vrp695RbSUpOqBqNBT45neK0FQleGFbSE/A9X6HlXPDhqA==} 993 | engines: {node: '>=12'} 994 | cpu: [x64] 995 | os: [linux] 996 | requiresBuild: true 997 | dev: true 998 | optional: true 999 | 1000 | /@esbuild/netbsd-x64@0.16.3: 1001 | resolution: {integrity: sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==} 1002 | engines: {node: '>=12'} 1003 | cpu: [x64] 1004 | os: [netbsd] 1005 | requiresBuild: true 1006 | dev: true 1007 | optional: true 1008 | 1009 | /@esbuild/netbsd-x64@0.19.1: 1010 | resolution: {integrity: sha512-4OrGMPorHCq9h52VLtyyyAmPjC2ZlANx54VDYyCrqXUOi+k0qxnPKXKKprVES67w2mE7TZJx9qZmT+jHeiZbHQ==} 1011 | engines: {node: '>=12'} 1012 | cpu: [x64] 1013 | os: [netbsd] 1014 | requiresBuild: true 1015 | dev: true 1016 | optional: true 1017 | 1018 | /@esbuild/openbsd-x64@0.16.3: 1019 | resolution: {integrity: sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==} 1020 | engines: {node: '>=12'} 1021 | cpu: [x64] 1022 | os: [openbsd] 1023 | requiresBuild: true 1024 | dev: true 1025 | optional: true 1026 | 1027 | /@esbuild/openbsd-x64@0.19.1: 1028 | resolution: {integrity: sha512-3a7ZYMjBC4P3FKdTmUZHJw7Mhzp71m+iSFFhX1PnLZ03qmyaB2K+vJZCk4PjRjAvm5lSupJQQtM/AFMyLgKlxQ==} 1029 | engines: {node: '>=12'} 1030 | cpu: [x64] 1031 | os: [openbsd] 1032 | requiresBuild: true 1033 | dev: true 1034 | optional: true 1035 | 1036 | /@esbuild/sunos-x64@0.16.3: 1037 | resolution: {integrity: sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==} 1038 | engines: {node: '>=12'} 1039 | cpu: [x64] 1040 | os: [sunos] 1041 | requiresBuild: true 1042 | dev: true 1043 | optional: true 1044 | 1045 | /@esbuild/sunos-x64@0.19.1: 1046 | resolution: {integrity: sha512-29yWBN5XfEjXT8yoeVb8cXfN1jAQLB+uskog1vBMhFR+YWOYvsrwPnh4hspETC/JnF95J+iETrvxgOUlICTWIw==} 1047 | engines: {node: '>=12'} 1048 | cpu: [x64] 1049 | os: [sunos] 1050 | requiresBuild: true 1051 | dev: true 1052 | optional: true 1053 | 1054 | /@esbuild/win32-arm64@0.16.3: 1055 | resolution: {integrity: sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==} 1056 | engines: {node: '>=12'} 1057 | cpu: [arm64] 1058 | os: [win32] 1059 | requiresBuild: true 1060 | dev: true 1061 | optional: true 1062 | 1063 | /@esbuild/win32-arm64@0.19.1: 1064 | resolution: {integrity: sha512-9Hb/WUXgyXlL55w3iNVyLkN9gq9x+agv3kk80foWbfpOwe7Qw4Vx6JGB+XQdsIfvvP1kShVQPIvBgVj0TxLlVw==} 1065 | engines: {node: '>=12'} 1066 | cpu: [arm64] 1067 | os: [win32] 1068 | requiresBuild: true 1069 | dev: true 1070 | optional: true 1071 | 1072 | /@esbuild/win32-ia32@0.16.3: 1073 | resolution: {integrity: sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==} 1074 | engines: {node: '>=12'} 1075 | cpu: [ia32] 1076 | os: [win32] 1077 | requiresBuild: true 1078 | dev: true 1079 | optional: true 1080 | 1081 | /@esbuild/win32-ia32@0.19.1: 1082 | resolution: {integrity: sha512-VGdtEcXX/f01NgoM8emDnpdOyrZCQ7VTwLv89MOl3mvJ5fbCOBMNCa8t7RZS4lf12RS87qOuJFX7Bh9aLTbSxg==} 1083 | engines: {node: '>=12'} 1084 | cpu: [ia32] 1085 | os: [win32] 1086 | requiresBuild: true 1087 | dev: true 1088 | optional: true 1089 | 1090 | /@esbuild/win32-x64@0.16.3: 1091 | resolution: {integrity: sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==} 1092 | engines: {node: '>=12'} 1093 | cpu: [x64] 1094 | os: [win32] 1095 | requiresBuild: true 1096 | dev: true 1097 | optional: true 1098 | 1099 | /@esbuild/win32-x64@0.19.1: 1100 | resolution: {integrity: sha512-H6u8OHmJkKJubLbukVOyi9yA5lzK8VE4TFEkZj2vgusTUPvFeMQ8YnWviVc9F6PuKS6ZIpOvi2/sfiW8tQZQ2g==} 1101 | engines: {node: '>=12'} 1102 | cpu: [x64] 1103 | os: [win32] 1104 | requiresBuild: true 1105 | dev: true 1106 | optional: true 1107 | 1108 | /@smithy/abort-controller@2.0.3: 1109 | resolution: {integrity: sha512-LbQ4fdsVuQC3/18Z/uia5wnk9fk8ikfHl3laYCEGhboEMJ/6oVk3zhydqljMxBCftHGUv7yUrTnZ6EAQhOf+PA==} 1110 | engines: {node: '>=14.0.0'} 1111 | dependencies: 1112 | '@smithy/types': 2.2.0 1113 | tslib: 2.6.1 1114 | dev: false 1115 | 1116 | /@smithy/chunked-blob-reader-native@2.0.0: 1117 | resolution: {integrity: sha512-HM8V2Rp1y8+1343tkZUKZllFhEQPNmpNdgFAncbTsxkZ18/gqjk23XXv3qGyXWp412f3o43ZZ1UZHVcHrpRnCQ==} 1118 | dependencies: 1119 | '@smithy/util-base64': 2.0.0 1120 | tslib: 2.6.1 1121 | dev: false 1122 | 1123 | /@smithy/chunked-blob-reader@2.0.0: 1124 | resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==} 1125 | dependencies: 1126 | tslib: 2.6.1 1127 | dev: false 1128 | 1129 | /@smithy/config-resolver@2.0.3: 1130 | resolution: {integrity: sha512-E+fsc6BOzFOc6U6y9ogRH8Pw2HF1NVW14AAYy7l3OTXYWuYxHb/fzDZaA0FvD/dXyFoMy7AV1rYZsGzD4bMKzw==} 1131 | engines: {node: '>=14.0.0'} 1132 | dependencies: 1133 | '@smithy/types': 2.2.0 1134 | '@smithy/util-config-provider': 2.0.0 1135 | '@smithy/util-middleware': 2.0.0 1136 | tslib: 2.6.1 1137 | dev: false 1138 | 1139 | /@smithy/credential-provider-imds@2.0.3: 1140 | resolution: {integrity: sha512-2e85iLgSuiGQ8BBFkot88kuv6sT5DHvkDO8FDvGwNunn2ybf24HhEkaWCMxK4pUeHtnA2dMa3hZbtfmJ7KJQig==} 1141 | engines: {node: '>=14.0.0'} 1142 | dependencies: 1143 | '@smithy/node-config-provider': 2.0.3 1144 | '@smithy/property-provider': 2.0.3 1145 | '@smithy/types': 2.2.0 1146 | '@smithy/url-parser': 2.0.3 1147 | tslib: 2.6.1 1148 | dev: false 1149 | 1150 | /@smithy/eventstream-codec@2.0.3: 1151 | resolution: {integrity: sha512-3l/uKZBsV/6uMe2qXvh1C8ut/w6JHKgy7ic7N2QPR1SSuNWKNQBX0iVBqJpPtQz0UDeQYM4cNmwDBX+hw74EEw==} 1152 | dependencies: 1153 | '@aws-crypto/crc32': 3.0.0 1154 | '@smithy/types': 2.2.0 1155 | '@smithy/util-hex-encoding': 2.0.0 1156 | tslib: 2.6.1 1157 | dev: false 1158 | 1159 | /@smithy/eventstream-serde-browser@2.0.3: 1160 | resolution: {integrity: sha512-RwQeTFnc6nOP6iGjdnMFgDG8QtneHKptrVZxjc+be4KIoXGPyF3QAourxnrClxTl+MACXYUaCg6bWCozqfHMOw==} 1161 | engines: {node: '>=14.0.0'} 1162 | dependencies: 1163 | '@smithy/eventstream-serde-universal': 2.0.3 1164 | '@smithy/types': 2.2.0 1165 | tslib: 2.6.1 1166 | dev: false 1167 | 1168 | /@smithy/eventstream-serde-config-resolver@2.0.3: 1169 | resolution: {integrity: sha512-J8QzPnarBiJaPw5DBsZ5O2GHjfPHhCmKV5iVzdcAFt0PD81UWNL9HMwAKx99mY5WWPCaFKvb1yBeN2g/v4uA2w==} 1170 | engines: {node: '>=14.0.0'} 1171 | dependencies: 1172 | '@smithy/types': 2.2.0 1173 | tslib: 2.6.1 1174 | dev: false 1175 | 1176 | /@smithy/eventstream-serde-node@2.0.3: 1177 | resolution: {integrity: sha512-085r0AHMhwVF99rlAy8RVMhXMkxay4SdSwRdDUIe4MXQ6r2957BVpm3BcoxRpjcGgnoCldRc9tCRa0TclvUS5w==} 1178 | engines: {node: '>=14.0.0'} 1179 | dependencies: 1180 | '@smithy/eventstream-serde-universal': 2.0.3 1181 | '@smithy/types': 2.2.0 1182 | tslib: 2.6.1 1183 | dev: false 1184 | 1185 | /@smithy/eventstream-serde-universal@2.0.3: 1186 | resolution: {integrity: sha512-51nLy47MmU9Nb4dwlwsmP1XJViP72kuLtIqTeDeRSe5Ah4xfSP/df11roEhzUmE/rUYEkErj64RHkseeuFkCgg==} 1187 | engines: {node: '>=14.0.0'} 1188 | dependencies: 1189 | '@smithy/eventstream-codec': 2.0.3 1190 | '@smithy/types': 2.2.0 1191 | tslib: 2.6.1 1192 | dev: false 1193 | 1194 | /@smithy/fetch-http-handler@2.0.3: 1195 | resolution: {integrity: sha512-0if2hyn+tDkyK9Tg1bXpo3IMUaezz/FKlaUTwTey3m87hF8gb7a0nKaST4NURE2eUVimViGCB7SH3/i4wFXALg==} 1196 | dependencies: 1197 | '@smithy/protocol-http': 2.0.3 1198 | '@smithy/querystring-builder': 2.0.3 1199 | '@smithy/types': 2.2.0 1200 | '@smithy/util-base64': 2.0.0 1201 | tslib: 2.6.1 1202 | dev: false 1203 | 1204 | /@smithy/hash-blob-browser@2.0.3: 1205 | resolution: {integrity: sha512-YQywO2eGG4x3klQZ+R7G8X3oCgrzQaCNC3zYq7kcGibE2Z+q9Lzt3prYiODUwAihDJTCG09xHq1p9IW+z/fp+Q==} 1206 | dependencies: 1207 | '@smithy/chunked-blob-reader': 2.0.0 1208 | '@smithy/chunked-blob-reader-native': 2.0.0 1209 | '@smithy/types': 2.2.0 1210 | tslib: 2.6.1 1211 | dev: false 1212 | 1213 | /@smithy/hash-node@2.0.3: 1214 | resolution: {integrity: sha512-wtN9eiRKEiryXrPbWQ7Acu0D3Uk65+PowtTqOslViMZNcKNlYHsxOP1S9rb2klnzA3yY1WSPO1tG78pjhRlvrQ==} 1215 | engines: {node: '>=14.0.0'} 1216 | dependencies: 1217 | '@smithy/types': 2.2.0 1218 | '@smithy/util-buffer-from': 2.0.0 1219 | '@smithy/util-utf8': 2.0.0 1220 | tslib: 2.6.1 1221 | dev: false 1222 | 1223 | /@smithy/hash-stream-node@2.0.3: 1224 | resolution: {integrity: sha512-rFUhbuynRMd1DlYewqXRog2bZIMaDL3sNTAK7fg+7DngPpus7hiIGuXn3tJNnCiqiNuxVrhi/ffWpwt21+8DtA==} 1225 | engines: {node: '>=14.0.0'} 1226 | dependencies: 1227 | '@smithy/types': 2.2.0 1228 | '@smithy/util-utf8': 2.0.0 1229 | tslib: 2.6.1 1230 | dev: false 1231 | 1232 | /@smithy/invalid-dependency@2.0.3: 1233 | resolution: {integrity: sha512-GtmVXD/s+OZlFG1o3HfUI55aBJZXX5/iznAQkgjRGf8prYoO8GvSZLDWHXJp91arybaJxYd133oJORGf4YxGAg==} 1234 | dependencies: 1235 | '@smithy/types': 2.2.0 1236 | tslib: 2.6.1 1237 | dev: false 1238 | 1239 | /@smithy/is-array-buffer@2.0.0: 1240 | resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} 1241 | engines: {node: '>=14.0.0'} 1242 | dependencies: 1243 | tslib: 2.6.1 1244 | dev: false 1245 | 1246 | /@smithy/md5-js@2.0.3: 1247 | resolution: {integrity: sha512-pYnD2US3SioMynHytq4n2BsB5L6uJ7pWKxl9sQqvWwYJXcT3VSnJ0/9adbVcWE+GrMRlGO4CpRg9SIKpdQYR+Q==} 1248 | dependencies: 1249 | '@smithy/types': 2.2.0 1250 | '@smithy/util-utf8': 2.0.0 1251 | tslib: 2.6.1 1252 | dev: false 1253 | 1254 | /@smithy/middleware-content-length@2.0.3: 1255 | resolution: {integrity: sha512-2FiZ5vu2+iMRL8XWNaREUqqNHjtBubaY9Jb2b3huZ9EbgrXsJfCszK6PPidHTLe+B4T7AISqdF4ZSp9VPXuelg==} 1256 | engines: {node: '>=14.0.0'} 1257 | dependencies: 1258 | '@smithy/protocol-http': 2.0.3 1259 | '@smithy/types': 2.2.0 1260 | tslib: 2.6.1 1261 | dev: false 1262 | 1263 | /@smithy/middleware-endpoint@2.0.3: 1264 | resolution: {integrity: sha512-gNleUHhu5OKk/nrA6WbpLUk/Wk2hcyCvaw7sZiKMazs+zdzWb0kYzynRf675uCWolbvlw9BvkrVaSJo5TRz+Mg==} 1265 | engines: {node: '>=14.0.0'} 1266 | dependencies: 1267 | '@smithy/middleware-serde': 2.0.3 1268 | '@smithy/types': 2.2.0 1269 | '@smithy/url-parser': 2.0.3 1270 | '@smithy/util-middleware': 2.0.0 1271 | tslib: 2.6.1 1272 | dev: false 1273 | 1274 | /@smithy/middleware-retry@2.0.3: 1275 | resolution: {integrity: sha512-BpfaUwgOh8LpWP/x6KBb5IdBmd5+tEpTKIjDt7LWi3IVOYmRX5DjQo1eCEUqlKS1nxws/T7+/IyzvgBq8gF9rw==} 1276 | engines: {node: '>=14.0.0'} 1277 | dependencies: 1278 | '@smithy/protocol-http': 2.0.3 1279 | '@smithy/service-error-classification': 2.0.0 1280 | '@smithy/types': 2.2.0 1281 | '@smithy/util-middleware': 2.0.0 1282 | '@smithy/util-retry': 2.0.0 1283 | tslib: 2.6.1 1284 | uuid: 8.3.2 1285 | dev: false 1286 | 1287 | /@smithy/middleware-serde@2.0.3: 1288 | resolution: {integrity: sha512-5BxuOKL7pXqesvtunniDlvYQXVr7UJEF5nFVoK6+5chf5wplLA8IZWAn3NUcGq/f1u01w2m2q7atCoA6ftRLKA==} 1289 | engines: {node: '>=14.0.0'} 1290 | dependencies: 1291 | '@smithy/types': 2.2.0 1292 | tslib: 2.6.1 1293 | dev: false 1294 | 1295 | /@smithy/middleware-stack@2.0.0: 1296 | resolution: {integrity: sha512-31XC1xNF65nlbc16yuh3wwTudmqs6qy4EseQUGF8A/p2m/5wdd/cnXJqpniy/XvXVwkHPz/GwV36HqzHtIKATQ==} 1297 | engines: {node: '>=14.0.0'} 1298 | dependencies: 1299 | tslib: 2.6.1 1300 | dev: false 1301 | 1302 | /@smithy/node-config-provider@2.0.3: 1303 | resolution: {integrity: sha512-dYSVxOQMqtdmSOBW/J4RPvSYE4KKdGLgFHDJQGNsGo1d3y9IoNLwE32lT7doWwV0ryntlm4QZZwhfb3gISrTtA==} 1304 | engines: {node: '>=14.0.0'} 1305 | dependencies: 1306 | '@smithy/property-provider': 2.0.3 1307 | '@smithy/shared-ini-file-loader': 2.0.3 1308 | '@smithy/types': 2.2.0 1309 | tslib: 2.6.1 1310 | dev: false 1311 | 1312 | /@smithy/node-http-handler@2.0.3: 1313 | resolution: {integrity: sha512-wUO78aa0VVJVz54Lr1Nw6FYnkatbvh2saHgkT8fdtNWc7I/osaPMUJnRkBmTZZ5w+BIQ1rvr9dbGyYBTlRg2+Q==} 1314 | engines: {node: '>=14.0.0'} 1315 | dependencies: 1316 | '@smithy/abort-controller': 2.0.3 1317 | '@smithy/protocol-http': 2.0.3 1318 | '@smithy/querystring-builder': 2.0.3 1319 | '@smithy/types': 2.2.0 1320 | tslib: 2.6.1 1321 | dev: false 1322 | 1323 | /@smithy/property-provider@2.0.3: 1324 | resolution: {integrity: sha512-SHV1SINUNysJ5HyPrMLHLkdofgalk9+5FnQCB/985hqcUxstN616hPZ7ngOjLpdhKp0yu1ul/esE9Gd4qh1tgg==} 1325 | engines: {node: '>=14.0.0'} 1326 | dependencies: 1327 | '@smithy/types': 2.2.0 1328 | tslib: 2.6.1 1329 | dev: false 1330 | 1331 | /@smithy/protocol-http@2.0.3: 1332 | resolution: {integrity: sha512-yzBYloviSLOwo2RT62vBRCPtk8mc/O2RMJfynEahbX8ZnduHpKaajvx3IuGubhamIbesi7M5HBVecDehBnlb9Q==} 1333 | engines: {node: '>=14.0.0'} 1334 | dependencies: 1335 | '@smithy/types': 2.2.0 1336 | tslib: 2.6.1 1337 | dev: false 1338 | 1339 | /@smithy/querystring-builder@2.0.3: 1340 | resolution: {integrity: sha512-HPSviVgGj9FT4jPdprkfSGF3nhFzpQMST1hOC1Oh6eaRB2KTQCsOZmS7U4IqGErVPafe6f/yRa1DV73B5gO50w==} 1341 | engines: {node: '>=14.0.0'} 1342 | dependencies: 1343 | '@smithy/types': 2.2.0 1344 | '@smithy/util-uri-escape': 2.0.0 1345 | tslib: 2.6.1 1346 | dev: false 1347 | 1348 | /@smithy/querystring-parser@2.0.3: 1349 | resolution: {integrity: sha512-AaiZ2osstDbmOTz5uY+96o0G1E7k1U7dCYrNT8FFcyffdhScTzG7fXr12f5peie2W0XFu2Ub+b6tQwFuZwPoBA==} 1350 | engines: {node: '>=14.0.0'} 1351 | dependencies: 1352 | '@smithy/types': 2.2.0 1353 | tslib: 2.6.1 1354 | dev: false 1355 | 1356 | /@smithy/service-error-classification@2.0.0: 1357 | resolution: {integrity: sha512-2z5Nafy1O0cTf69wKyNjGW/sNVMiqDnb4jgwfMG8ye8KnFJ5qmJpDccwIbJNhXIfbsxTg9SEec2oe1cexhMJvw==} 1358 | engines: {node: '>=14.0.0'} 1359 | dev: false 1360 | 1361 | /@smithy/shared-ini-file-loader@2.0.3: 1362 | resolution: {integrity: sha512-1Vgco3K0rN5YG2OStoS2zUrBzdcFqgqp475rGdag206PCh7AHzmVSGXL6OpWPAqZl29WUqXfMP8tHOLG0H6vkA==} 1363 | engines: {node: '>=14.0.0'} 1364 | dependencies: 1365 | '@smithy/types': 2.2.0 1366 | tslib: 2.6.1 1367 | dev: false 1368 | 1369 | /@smithy/signature-v4@2.0.3: 1370 | resolution: {integrity: sha512-AZ+951EAcNqas2RTq4xQvuX4uZqPV/zCcbs7ACqpuxcjYAFU2FKRPpQHqsDN0jbJwI3Scw75xhSKcGWFf2/Olg==} 1371 | engines: {node: '>=14.0.0'} 1372 | dependencies: 1373 | '@smithy/eventstream-codec': 2.0.3 1374 | '@smithy/is-array-buffer': 2.0.0 1375 | '@smithy/types': 2.2.0 1376 | '@smithy/util-hex-encoding': 2.0.0 1377 | '@smithy/util-middleware': 2.0.0 1378 | '@smithy/util-uri-escape': 2.0.0 1379 | '@smithy/util-utf8': 2.0.0 1380 | tslib: 2.6.1 1381 | dev: false 1382 | 1383 | /@smithy/smithy-client@2.0.3: 1384 | resolution: {integrity: sha512-YP0HakPOJgvX2wvPEAGH9GB3NfuQE8CmBhR13bWtqWuIErmJnInTiSQcLSc0QiXHclH/8Qlq+qjKCR7N/4wvtQ==} 1385 | engines: {node: '>=14.0.0'} 1386 | dependencies: 1387 | '@smithy/middleware-stack': 2.0.0 1388 | '@smithy/types': 2.2.0 1389 | '@smithy/util-stream': 2.0.3 1390 | tslib: 2.6.1 1391 | dev: false 1392 | 1393 | /@smithy/types@2.2.0: 1394 | resolution: {integrity: sha512-Ahpt9KvD0mWeWiyaGo5EBE7KOByLl3jl4CD9Ps/r8qySgzVzo/4qsa+vvstOU3ZEriALmrPqUKIhqHt0Rn+m6g==} 1395 | engines: {node: '>=14.0.0'} 1396 | dependencies: 1397 | tslib: 2.6.1 1398 | dev: false 1399 | 1400 | /@smithy/url-parser@2.0.3: 1401 | resolution: {integrity: sha512-O7NlbDL4kh+th6qwtL7wNRcPCuOXFRWJzWKywfB/Nv56N1F8KiK0KbPn1z7MU5du/0LgjAMvhkg0mVDyiMCnqw==} 1402 | dependencies: 1403 | '@smithy/querystring-parser': 2.0.3 1404 | '@smithy/types': 2.2.0 1405 | tslib: 2.6.1 1406 | dev: false 1407 | 1408 | /@smithy/util-base64@2.0.0: 1409 | resolution: {integrity: sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==} 1410 | engines: {node: '>=14.0.0'} 1411 | dependencies: 1412 | '@smithy/util-buffer-from': 2.0.0 1413 | tslib: 2.6.1 1414 | dev: false 1415 | 1416 | /@smithy/util-body-length-browser@2.0.0: 1417 | resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} 1418 | dependencies: 1419 | tslib: 2.6.1 1420 | dev: false 1421 | 1422 | /@smithy/util-body-length-node@2.0.0: 1423 | resolution: {integrity: sha512-ZV7Z/WHTMxHJe/xL/56qZwSUcl63/5aaPAGjkfynJm4poILjdD4GmFI+V+YWabh2WJIjwTKZ5PNsuvPQKt93Mg==} 1424 | engines: {node: '>=14.0.0'} 1425 | dependencies: 1426 | tslib: 2.6.1 1427 | dev: false 1428 | 1429 | /@smithy/util-buffer-from@2.0.0: 1430 | resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} 1431 | engines: {node: '>=14.0.0'} 1432 | dependencies: 1433 | '@smithy/is-array-buffer': 2.0.0 1434 | tslib: 2.6.1 1435 | dev: false 1436 | 1437 | /@smithy/util-config-provider@2.0.0: 1438 | resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} 1439 | engines: {node: '>=14.0.0'} 1440 | dependencies: 1441 | tslib: 2.6.1 1442 | dev: false 1443 | 1444 | /@smithy/util-defaults-mode-browser@2.0.3: 1445 | resolution: {integrity: sha512-t9cirP55wYeSfDjjvPHSjNiuZj3wc9W3W3fjLXaVzuKKlKX98B9Vj7QM9WHJnFjJdsrYEwolLA8GVdqZeHOkHg==} 1446 | engines: {node: '>= 10.0.0'} 1447 | dependencies: 1448 | '@smithy/property-provider': 2.0.3 1449 | '@smithy/types': 2.2.0 1450 | bowser: 2.11.0 1451 | tslib: 2.6.1 1452 | dev: false 1453 | 1454 | /@smithy/util-defaults-mode-node@2.0.3: 1455 | resolution: {integrity: sha512-Gca+fL0h+tl8cbvoLDMWCVzs1CL4jWLWvz/I6MCYZzaEAKkmd1qO4kPzBeGaI6hGA/IbrlWCFg7L+MTPzLwzfg==} 1456 | engines: {node: '>= 10.0.0'} 1457 | dependencies: 1458 | '@smithy/config-resolver': 2.0.3 1459 | '@smithy/credential-provider-imds': 2.0.3 1460 | '@smithy/node-config-provider': 2.0.3 1461 | '@smithy/property-provider': 2.0.3 1462 | '@smithy/types': 2.2.0 1463 | tslib: 2.6.1 1464 | dev: false 1465 | 1466 | /@smithy/util-hex-encoding@2.0.0: 1467 | resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} 1468 | engines: {node: '>=14.0.0'} 1469 | dependencies: 1470 | tslib: 2.6.1 1471 | dev: false 1472 | 1473 | /@smithy/util-middleware@2.0.0: 1474 | resolution: {integrity: sha512-eCWX4ECuDHn1wuyyDdGdUWnT4OGyIzV0LN1xRttBFMPI9Ff/4heSHVxneyiMtOB//zpXWCha1/SWHJOZstG7kA==} 1475 | engines: {node: '>=14.0.0'} 1476 | dependencies: 1477 | tslib: 2.6.1 1478 | dev: false 1479 | 1480 | /@smithy/util-retry@2.0.0: 1481 | resolution: {integrity: sha512-/dvJ8afrElasuiiIttRJeoS2sy8YXpksQwiM/TcepqdRVp7u4ejd9C4IQURHNjlfPUT7Y6lCDSa2zQJbdHhVTg==} 1482 | engines: {node: '>= 14.0.0'} 1483 | dependencies: 1484 | '@smithy/service-error-classification': 2.0.0 1485 | tslib: 2.6.1 1486 | dev: false 1487 | 1488 | /@smithy/util-stream@2.0.3: 1489 | resolution: {integrity: sha512-+8n2vIyp6o9KHGey0PoGatcDthwVb7C/EzWfqojXrHhZOXy6l+hnWlfoF8zVerKYH2CUtravdJKRTy7vdkOXfQ==} 1490 | engines: {node: '>=14.0.0'} 1491 | dependencies: 1492 | '@smithy/fetch-http-handler': 2.0.3 1493 | '@smithy/node-http-handler': 2.0.3 1494 | '@smithy/types': 2.2.0 1495 | '@smithy/util-base64': 2.0.0 1496 | '@smithy/util-buffer-from': 2.0.0 1497 | '@smithy/util-hex-encoding': 2.0.0 1498 | '@smithy/util-utf8': 2.0.0 1499 | tslib: 2.6.1 1500 | dev: false 1501 | 1502 | /@smithy/util-uri-escape@2.0.0: 1503 | resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} 1504 | engines: {node: '>=14.0.0'} 1505 | dependencies: 1506 | tslib: 2.6.1 1507 | dev: false 1508 | 1509 | /@smithy/util-utf8@2.0.0: 1510 | resolution: {integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==} 1511 | engines: {node: '>=14.0.0'} 1512 | dependencies: 1513 | '@smithy/util-buffer-from': 2.0.0 1514 | tslib: 2.6.1 1515 | dev: false 1516 | 1517 | /@smithy/util-waiter@2.0.3: 1518 | resolution: {integrity: sha512-3/Fzqoyecvh4cNvcHQDl1GznskXjGc9uZ8N6aoaPCKfsctgZad/J13xg8WC1UXc3PwKocHtuUvz0dRFDLaBppQ==} 1519 | engines: {node: '>=14.0.0'} 1520 | dependencies: 1521 | '@smithy/abort-controller': 2.0.3 1522 | '@smithy/types': 2.2.0 1523 | tslib: 2.6.1 1524 | dev: false 1525 | 1526 | /@transloadit/prettier-bytes@0.0.7: 1527 | resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} 1528 | dev: false 1529 | 1530 | /@transloadit/prettier-bytes@0.0.9: 1531 | resolution: {integrity: sha512-pCvdmea/F3Tn4hAtHqNXmjcixSaroJJ+L3STXlYJdir1g1m2mRQpWbN8a4SvgQtaw2930Ckhdx8qXdXBFMKbAA==} 1532 | dev: false 1533 | 1534 | /@types/mime@3.0.1: 1535 | resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} 1536 | dev: true 1537 | 1538 | /@uppy/aws-s3-multipart@3.5.2(@uppy/core@3.3.1): 1539 | resolution: {integrity: sha512-5pQYobX4S23y74/wq9UReFfHVWkuzVj+fktR/Czdis/6ks5fHkjz8v2c7xd8TpWMZ/D5ozLufxvsjv/IYh6xtw==} 1540 | peerDependencies: 1541 | '@uppy/core': ^3.3.1 1542 | dependencies: 1543 | '@uppy/companion-client': 3.2.2 1544 | '@uppy/core': 3.3.1 1545 | '@uppy/utils': 5.4.3 1546 | dev: false 1547 | 1548 | /@uppy/aws-s3@3.2.1(@uppy/core@3.3.1): 1549 | resolution: {integrity: sha512-7Jy43+cBwwPbpNJ3NxuLH0uWFp+CTmZi+qrNOlM5UASrK0jB/a9hGOewWkH3GdcFG3od9MEVXTd5UAeHF1UyTQ==} 1550 | peerDependencies: 1551 | '@uppy/core': ^3.3.0 1552 | dependencies: 1553 | '@uppy/aws-s3-multipart': 3.5.2(@uppy/core@3.3.1) 1554 | '@uppy/companion-client': 3.2.2 1555 | '@uppy/core': 3.3.1 1556 | '@uppy/utils': 5.4.3 1557 | '@uppy/xhr-upload': 3.3.1(@uppy/core@3.3.1) 1558 | nanoid: 4.0.2 1559 | dev: false 1560 | 1561 | /@uppy/companion-client@3.2.2: 1562 | resolution: {integrity: sha512-TS2OlppwYmRZnKZBJzjynVvQZtmNiy/GYJ5+TsE9fTBYlOpOAzoteXa8bE2xbdFepclz4qlTlBzhHfpdgQjZCQ==} 1563 | dependencies: 1564 | '@uppy/utils': 5.4.3 1565 | namespace-emitter: 2.0.1 1566 | dev: false 1567 | 1568 | /@uppy/core@3.3.1: 1569 | resolution: {integrity: sha512-V0KCaJG3WKOH2ofU1+ja/ZctXk0mP1vFWgYEP3c7UobeUaxnPhSHXKeIEO5xh5zzJGn4HY+Zsy4Q4aSAWHC4Eg==} 1570 | dependencies: 1571 | '@transloadit/prettier-bytes': 0.0.9 1572 | '@uppy/store-default': 3.0.3 1573 | '@uppy/utils': 5.4.3 1574 | lodash: 4.17.21 1575 | mime-match: 1.0.2 1576 | namespace-emitter: 2.0.1 1577 | nanoid: 4.0.2 1578 | preact: 10.16.0 1579 | dev: false 1580 | 1581 | /@uppy/dashboard@3.5.0(@uppy/core@3.3.1): 1582 | resolution: {integrity: sha512-KmisZPEU0sjBgDId0GrCIcOQrLm9wfM2o1ihlf1SkAObyzwjxKsfdwEhHJa1CDXqAs7ojN2/4QduUvOyyg77/Q==} 1583 | peerDependencies: 1584 | '@uppy/core': ^3.3.1 1585 | dependencies: 1586 | '@transloadit/prettier-bytes': 0.0.7 1587 | '@uppy/core': 3.3.1 1588 | '@uppy/informer': 3.0.2(@uppy/core@3.3.1) 1589 | '@uppy/provider-views': 3.4.1(@uppy/core@3.3.1) 1590 | '@uppy/status-bar': 3.2.3(@uppy/core@3.3.1) 1591 | '@uppy/thumbnail-generator': 3.0.3(@uppy/core@3.3.1) 1592 | '@uppy/utils': 5.4.3 1593 | classnames: 2.3.2 1594 | is-shallow-equal: 1.0.1 1595 | lodash: 4.17.21 1596 | memoize-one: 6.0.0 1597 | nanoid: 4.0.2 1598 | preact: 10.16.0 1599 | dev: false 1600 | 1601 | /@uppy/golden-retriever@3.1.0(@uppy/core@3.3.1): 1602 | resolution: {integrity: sha512-kk34HCaeGEQoglVifhL8ovHtADxgw0KtIgA8irVNGSPSVgmtU4nFFkeSQ2uZsptuZVYHWXvOpM+KDiI/hbFBKQ==} 1603 | peerDependencies: 1604 | '@uppy/core': ^3.3.0 1605 | dependencies: 1606 | '@transloadit/prettier-bytes': 0.0.9 1607 | '@uppy/core': 3.3.1 1608 | '@uppy/utils': 5.4.3 1609 | lodash: 4.17.21 1610 | dev: false 1611 | 1612 | /@uppy/image-editor@2.1.2(@uppy/core@3.3.1): 1613 | resolution: {integrity: sha512-nWg9kFh+9OelYnY6fr1Hto2Fx6Fy1MyQAsCZAzy9umAQMkGrIs3Ql2iYDap4gm9IdiBI8ajzX57qTepLXbKPXg==} 1614 | peerDependencies: 1615 | '@uppy/core': ^3.2.0 1616 | dependencies: 1617 | '@uppy/core': 3.3.1 1618 | '@uppy/utils': 5.4.3 1619 | cropperjs: 1.5.7 1620 | preact: 10.16.0 1621 | dev: false 1622 | 1623 | /@uppy/informer@3.0.2(@uppy/core@3.3.1): 1624 | resolution: {integrity: sha512-WPOEZCxAaw9JBhkneIW3bm6SqceUtZGxDT++3SlwKUyn4kr0p808LrCVITooUkyqrd0lOn9TAFKFNjinUxbCGw==} 1625 | peerDependencies: 1626 | '@uppy/core': ^3.2.0 1627 | dependencies: 1628 | '@uppy/core': 3.3.1 1629 | '@uppy/utils': 5.4.3 1630 | preact: 10.16.0 1631 | dev: false 1632 | 1633 | /@uppy/provider-views@3.4.1(@uppy/core@3.3.1): 1634 | resolution: {integrity: sha512-PzvbkqERhxfea8AXM0v3QDeQXumWsd1HF652RkYSzuKjKZABPHvDzOpkPPY9He6zQAe+QxeKnptA5u5wMXt6rA==} 1635 | peerDependencies: 1636 | '@uppy/core': ^3.3.1 1637 | dependencies: 1638 | '@uppy/core': 3.3.1 1639 | '@uppy/utils': 5.4.3 1640 | classnames: 2.3.2 1641 | nanoid: 4.0.2 1642 | p-queue: 7.3.4 1643 | preact: 10.16.0 1644 | dev: false 1645 | 1646 | /@uppy/status-bar@3.2.3(@uppy/core@3.3.1): 1647 | resolution: {integrity: sha512-efrzAUAgpnbVWUOESIpEG7CUFBxUyrhiPdJxacrDGS6Z0EzygBEr9TGeHIdYqQsMMyg95QDCYmxZGNCn/UJwmg==} 1648 | peerDependencies: 1649 | '@uppy/core': ^3.3.1 1650 | dependencies: 1651 | '@transloadit/prettier-bytes': 0.0.9 1652 | '@uppy/core': 3.3.1 1653 | '@uppy/utils': 5.4.3 1654 | classnames: 2.3.2 1655 | preact: 10.16.0 1656 | dev: false 1657 | 1658 | /@uppy/store-default@3.0.3: 1659 | resolution: {integrity: sha512-/zlvQNj4HjkthI+7dNdj/8mOlTg1Zb1gJ/ZsOxof0g3xXD+OAwm7asRnOwpfj2dos+lExdW/zMn8XsRGsuvb6Q==} 1660 | dev: false 1661 | 1662 | /@uppy/thumbnail-generator@3.0.3(@uppy/core@3.3.1): 1663 | resolution: {integrity: sha512-tiTNqHU/Co8HQ2ag88JZv6KMV1/dbOLbtpI0QJBKOdnPtcDtzQbT8LM69EW9JRrqSAxaoLPrr/VccXvv8BIe2A==} 1664 | peerDependencies: 1665 | '@uppy/core': ^3.2.0 1666 | dependencies: 1667 | '@uppy/core': 3.3.1 1668 | '@uppy/utils': 5.4.3 1669 | exifr: 7.1.3 1670 | dev: false 1671 | 1672 | /@uppy/utils@5.4.3: 1673 | resolution: {integrity: sha512-ewQTWQ5Wu1/ocz/lLCkhoXQwHLRktFK4CxrOsZmeCLK9LxjD1GOwSFjOuL199WDQKXiCle6SVlAJGQ3SDlXVkg==} 1674 | dependencies: 1675 | lodash: 4.17.21 1676 | preact: 10.16.0 1677 | dev: false 1678 | 1679 | /@uppy/xhr-upload@3.3.1(@uppy/core@3.3.1): 1680 | resolution: {integrity: sha512-LcZvyKVQ0gWNgv3yK7CUAM9AiAQDvqBNxLhWlJxzPjAR9FIBCL9+XpyAgsjg+APAZgk55S6sVSiVV3sXRk44HA==} 1681 | peerDependencies: 1682 | '@uppy/core': ^3.3.0 1683 | dependencies: 1684 | '@uppy/companion-client': 3.2.2 1685 | '@uppy/core': 3.3.1 1686 | '@uppy/utils': 5.4.3 1687 | nanoid: 4.0.2 1688 | dev: false 1689 | 1690 | /acorn-walk@8.2.0: 1691 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 1692 | engines: {node: '>=0.4.0'} 1693 | dev: true 1694 | 1695 | /acorn@8.10.0: 1696 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 1697 | engines: {node: '>=0.4.0'} 1698 | hasBin: true 1699 | dev: true 1700 | 1701 | /ansi-styles@3.2.1: 1702 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1703 | engines: {node: '>=4'} 1704 | dependencies: 1705 | color-convert: 1.9.3 1706 | dev: true 1707 | 1708 | /anymatch@3.1.3: 1709 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1710 | engines: {node: '>= 8'} 1711 | dependencies: 1712 | normalize-path: 3.0.0 1713 | picomatch: 2.3.1 1714 | dev: true 1715 | 1716 | /array-buffer-byte-length@1.0.0: 1717 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 1718 | dependencies: 1719 | call-bind: 1.0.2 1720 | is-array-buffer: 3.0.2 1721 | dev: true 1722 | 1723 | /arraybuffer.prototype.slice@1.0.1: 1724 | resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} 1725 | engines: {node: '>= 0.4'} 1726 | dependencies: 1727 | array-buffer-byte-length: 1.0.0 1728 | call-bind: 1.0.2 1729 | define-properties: 1.2.0 1730 | get-intrinsic: 1.2.1 1731 | is-array-buffer: 3.0.2 1732 | is-shared-array-buffer: 1.0.2 1733 | dev: true 1734 | 1735 | /as-table@1.0.55: 1736 | resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 1737 | dependencies: 1738 | printable-characters: 1.0.42 1739 | dev: true 1740 | 1741 | /available-typed-arrays@1.0.5: 1742 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 1743 | engines: {node: '>= 0.4'} 1744 | dev: true 1745 | 1746 | /balanced-match@1.0.2: 1747 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1748 | dev: true 1749 | 1750 | /base64-js@1.5.1: 1751 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 1752 | dev: true 1753 | 1754 | /better-sqlite3@8.5.0: 1755 | resolution: {integrity: sha512-vbPcv/Hx5WYdyNg/NbcfyaBZyv9s/NVbxb7yCeC5Bq1pVocNxeL2tZmSu3Rlm4IEOTjYdGyzWQgyx0OSdORBzw==} 1756 | requiresBuild: true 1757 | dependencies: 1758 | bindings: 1.5.0 1759 | prebuild-install: 7.1.1 1760 | dev: true 1761 | 1762 | /binary-extensions@2.2.0: 1763 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 1764 | engines: {node: '>=8'} 1765 | dev: true 1766 | 1767 | /bindings@1.5.0: 1768 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} 1769 | dependencies: 1770 | file-uri-to-path: 1.0.0 1771 | dev: true 1772 | 1773 | /bl@4.1.0: 1774 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 1775 | dependencies: 1776 | buffer: 5.7.1 1777 | inherits: 2.0.4 1778 | readable-stream: 3.6.2 1779 | dev: true 1780 | 1781 | /blake3-wasm@2.1.5: 1782 | resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 1783 | dev: true 1784 | 1785 | /bowser@2.11.0: 1786 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 1787 | dev: false 1788 | 1789 | /brace-expansion@1.1.11: 1790 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1791 | dependencies: 1792 | balanced-match: 1.0.2 1793 | concat-map: 0.0.1 1794 | dev: true 1795 | 1796 | /braces@3.0.2: 1797 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1798 | engines: {node: '>=8'} 1799 | dependencies: 1800 | fill-range: 7.0.1 1801 | dev: true 1802 | 1803 | /buffer-from@1.1.2: 1804 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1805 | dev: true 1806 | 1807 | /buffer@5.7.1: 1808 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 1809 | dependencies: 1810 | base64-js: 1.5.1 1811 | ieee754: 1.2.1 1812 | dev: true 1813 | 1814 | /busboy@1.6.0: 1815 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 1816 | engines: {node: '>=10.16.0'} 1817 | dependencies: 1818 | streamsearch: 1.1.0 1819 | dev: true 1820 | 1821 | /call-bind@1.0.2: 1822 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 1823 | dependencies: 1824 | function-bind: 1.1.1 1825 | get-intrinsic: 1.2.1 1826 | dev: true 1827 | 1828 | /capnp-ts@0.7.0: 1829 | resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} 1830 | dependencies: 1831 | debug: 4.3.4 1832 | tslib: 2.6.1 1833 | transitivePeerDependencies: 1834 | - supports-color 1835 | dev: true 1836 | 1837 | /chalk@2.4.2: 1838 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1839 | engines: {node: '>=4'} 1840 | dependencies: 1841 | ansi-styles: 3.2.1 1842 | escape-string-regexp: 1.0.5 1843 | supports-color: 5.5.0 1844 | dev: true 1845 | 1846 | /chokidar@3.5.3: 1847 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 1848 | engines: {node: '>= 8.10.0'} 1849 | dependencies: 1850 | anymatch: 3.1.3 1851 | braces: 3.0.2 1852 | glob-parent: 5.1.2 1853 | is-binary-path: 2.1.0 1854 | is-glob: 4.0.3 1855 | normalize-path: 3.0.0 1856 | readdirp: 3.6.0 1857 | optionalDependencies: 1858 | fsevents: 2.3.2 1859 | dev: true 1860 | 1861 | /chownr@1.1.4: 1862 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 1863 | dev: true 1864 | 1865 | /classnames@2.3.2: 1866 | resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} 1867 | dev: false 1868 | 1869 | /color-convert@1.9.3: 1870 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1871 | dependencies: 1872 | color-name: 1.1.3 1873 | dev: true 1874 | 1875 | /color-name@1.1.3: 1876 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1877 | dev: true 1878 | 1879 | /concat-map@0.0.1: 1880 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1881 | dev: true 1882 | 1883 | /cookie@0.5.0: 1884 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 1885 | engines: {node: '>= 0.6'} 1886 | dev: true 1887 | 1888 | /cropperjs@1.5.7: 1889 | resolution: {integrity: sha512-sGj+G/ofKh+f6A4BtXLJwtcKJgMUsXYVUubfTo9grERiDGXncttefmue/fyQFvn8wfdyoD1KhDRYLfjkJFl0yw==} 1890 | dev: false 1891 | 1892 | /cross-spawn@6.0.5: 1893 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 1894 | engines: {node: '>=4.8'} 1895 | dependencies: 1896 | nice-try: 1.0.5 1897 | path-key: 2.0.1 1898 | semver: 5.7.2 1899 | shebang-command: 1.2.0 1900 | which: 1.3.1 1901 | dev: true 1902 | 1903 | /data-uri-to-buffer@2.0.2: 1904 | resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} 1905 | dev: true 1906 | 1907 | /debug@4.3.4: 1908 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1909 | engines: {node: '>=6.0'} 1910 | peerDependencies: 1911 | supports-color: '*' 1912 | peerDependenciesMeta: 1913 | supports-color: 1914 | optional: true 1915 | dependencies: 1916 | ms: 2.1.2 1917 | dev: true 1918 | 1919 | /decompress-response@6.0.0: 1920 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 1921 | engines: {node: '>=10'} 1922 | dependencies: 1923 | mimic-response: 3.1.0 1924 | dev: true 1925 | 1926 | /deep-extend@0.6.0: 1927 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 1928 | engines: {node: '>=4.0.0'} 1929 | dev: true 1930 | 1931 | /define-properties@1.2.0: 1932 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 1933 | engines: {node: '>= 0.4'} 1934 | dependencies: 1935 | has-property-descriptors: 1.0.0 1936 | object-keys: 1.1.1 1937 | dev: true 1938 | 1939 | /destr@2.0.1: 1940 | resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==} 1941 | dev: false 1942 | 1943 | /detect-libc@2.0.2: 1944 | resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} 1945 | engines: {node: '>=8'} 1946 | dev: true 1947 | 1948 | /end-of-stream@1.4.4: 1949 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1950 | dependencies: 1951 | once: 1.4.0 1952 | dev: true 1953 | 1954 | /error-ex@1.3.2: 1955 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1956 | dependencies: 1957 | is-arrayish: 0.2.1 1958 | dev: true 1959 | 1960 | /es-abstract@1.22.1: 1961 | resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} 1962 | engines: {node: '>= 0.4'} 1963 | dependencies: 1964 | array-buffer-byte-length: 1.0.0 1965 | arraybuffer.prototype.slice: 1.0.1 1966 | available-typed-arrays: 1.0.5 1967 | call-bind: 1.0.2 1968 | es-set-tostringtag: 2.0.1 1969 | es-to-primitive: 1.2.1 1970 | function.prototype.name: 1.1.5 1971 | get-intrinsic: 1.2.1 1972 | get-symbol-description: 1.0.0 1973 | globalthis: 1.0.3 1974 | gopd: 1.0.1 1975 | has: 1.0.3 1976 | has-property-descriptors: 1.0.0 1977 | has-proto: 1.0.1 1978 | has-symbols: 1.0.3 1979 | internal-slot: 1.0.5 1980 | is-array-buffer: 3.0.2 1981 | is-callable: 1.2.7 1982 | is-negative-zero: 2.0.2 1983 | is-regex: 1.1.4 1984 | is-shared-array-buffer: 1.0.2 1985 | is-string: 1.0.7 1986 | is-typed-array: 1.1.12 1987 | is-weakref: 1.0.2 1988 | object-inspect: 1.12.3 1989 | object-keys: 1.1.1 1990 | object.assign: 4.1.4 1991 | regexp.prototype.flags: 1.5.0 1992 | safe-array-concat: 1.0.0 1993 | safe-regex-test: 1.0.0 1994 | string.prototype.trim: 1.2.7 1995 | string.prototype.trimend: 1.0.6 1996 | string.prototype.trimstart: 1.0.6 1997 | typed-array-buffer: 1.0.0 1998 | typed-array-byte-length: 1.0.0 1999 | typed-array-byte-offset: 1.0.0 2000 | typed-array-length: 1.0.4 2001 | unbox-primitive: 1.0.2 2002 | which-typed-array: 1.1.11 2003 | dev: true 2004 | 2005 | /es-set-tostringtag@2.0.1: 2006 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 2007 | engines: {node: '>= 0.4'} 2008 | dependencies: 2009 | get-intrinsic: 1.2.1 2010 | has: 1.0.3 2011 | has-tostringtag: 1.0.0 2012 | dev: true 2013 | 2014 | /es-to-primitive@1.2.1: 2015 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 2016 | engines: {node: '>= 0.4'} 2017 | dependencies: 2018 | is-callable: 1.2.7 2019 | is-date-object: 1.0.5 2020 | is-symbol: 1.0.4 2021 | dev: true 2022 | 2023 | /esbuild@0.16.3: 2024 | resolution: {integrity: sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==} 2025 | engines: {node: '>=12'} 2026 | hasBin: true 2027 | requiresBuild: true 2028 | optionalDependencies: 2029 | '@esbuild/android-arm': 0.16.3 2030 | '@esbuild/android-arm64': 0.16.3 2031 | '@esbuild/android-x64': 0.16.3 2032 | '@esbuild/darwin-arm64': 0.16.3 2033 | '@esbuild/darwin-x64': 0.16.3 2034 | '@esbuild/freebsd-arm64': 0.16.3 2035 | '@esbuild/freebsd-x64': 0.16.3 2036 | '@esbuild/linux-arm': 0.16.3 2037 | '@esbuild/linux-arm64': 0.16.3 2038 | '@esbuild/linux-ia32': 0.16.3 2039 | '@esbuild/linux-loong64': 0.16.3 2040 | '@esbuild/linux-mips64el': 0.16.3 2041 | '@esbuild/linux-ppc64': 0.16.3 2042 | '@esbuild/linux-riscv64': 0.16.3 2043 | '@esbuild/linux-s390x': 0.16.3 2044 | '@esbuild/linux-x64': 0.16.3 2045 | '@esbuild/netbsd-x64': 0.16.3 2046 | '@esbuild/openbsd-x64': 0.16.3 2047 | '@esbuild/sunos-x64': 0.16.3 2048 | '@esbuild/win32-arm64': 0.16.3 2049 | '@esbuild/win32-ia32': 0.16.3 2050 | '@esbuild/win32-x64': 0.16.3 2051 | dev: true 2052 | 2053 | /esbuild@0.19.1: 2054 | resolution: {integrity: sha512-IknHHwV4B/H4imOAu+416fuCvPfRjdncoyGi7eunhSvHuHkdNs50sLWan2LEG2Mym07TuW6gJUIyRS9G1miHEg==} 2055 | engines: {node: '>=12'} 2056 | hasBin: true 2057 | requiresBuild: true 2058 | optionalDependencies: 2059 | '@esbuild/android-arm': 0.19.1 2060 | '@esbuild/android-arm64': 0.19.1 2061 | '@esbuild/android-x64': 0.19.1 2062 | '@esbuild/darwin-arm64': 0.19.1 2063 | '@esbuild/darwin-x64': 0.19.1 2064 | '@esbuild/freebsd-arm64': 0.19.1 2065 | '@esbuild/freebsd-x64': 0.19.1 2066 | '@esbuild/linux-arm': 0.19.1 2067 | '@esbuild/linux-arm64': 0.19.1 2068 | '@esbuild/linux-ia32': 0.19.1 2069 | '@esbuild/linux-loong64': 0.19.1 2070 | '@esbuild/linux-mips64el': 0.19.1 2071 | '@esbuild/linux-ppc64': 0.19.1 2072 | '@esbuild/linux-riscv64': 0.19.1 2073 | '@esbuild/linux-s390x': 0.19.1 2074 | '@esbuild/linux-x64': 0.19.1 2075 | '@esbuild/netbsd-x64': 0.19.1 2076 | '@esbuild/openbsd-x64': 0.19.1 2077 | '@esbuild/sunos-x64': 0.19.1 2078 | '@esbuild/win32-arm64': 0.19.1 2079 | '@esbuild/win32-ia32': 0.19.1 2080 | '@esbuild/win32-x64': 0.19.1 2081 | dev: true 2082 | 2083 | /escape-string-regexp@1.0.5: 2084 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 2085 | engines: {node: '>=0.8.0'} 2086 | dev: true 2087 | 2088 | /escape-string-regexp@4.0.0: 2089 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 2090 | engines: {node: '>=10'} 2091 | dev: true 2092 | 2093 | /estree-walker@0.6.1: 2094 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 2095 | dev: true 2096 | 2097 | /eventemitter3@4.0.7: 2098 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 2099 | dev: false 2100 | 2101 | /exifr@7.1.3: 2102 | resolution: {integrity: sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==} 2103 | dev: false 2104 | 2105 | /exit-hook@2.2.1: 2106 | resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} 2107 | engines: {node: '>=6'} 2108 | dev: true 2109 | 2110 | /expand-template@2.0.3: 2111 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 2112 | engines: {node: '>=6'} 2113 | dev: true 2114 | 2115 | /fast-xml-parser@4.2.5: 2116 | resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} 2117 | hasBin: true 2118 | dependencies: 2119 | strnum: 1.0.5 2120 | dev: false 2121 | 2122 | /file-uri-to-path@1.0.0: 2123 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} 2124 | dev: true 2125 | 2126 | /fill-range@7.0.1: 2127 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2128 | engines: {node: '>=8'} 2129 | dependencies: 2130 | to-regex-range: 5.0.1 2131 | dev: true 2132 | 2133 | /for-each@0.3.3: 2134 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 2135 | dependencies: 2136 | is-callable: 1.2.7 2137 | dev: true 2138 | 2139 | /fs-constants@1.0.0: 2140 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 2141 | dev: true 2142 | 2143 | /fsevents@2.3.2: 2144 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 2145 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2146 | os: [darwin] 2147 | requiresBuild: true 2148 | dev: true 2149 | optional: true 2150 | 2151 | /function-bind@1.1.1: 2152 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 2153 | dev: true 2154 | 2155 | /function.prototype.name@1.1.5: 2156 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 2157 | engines: {node: '>= 0.4'} 2158 | dependencies: 2159 | call-bind: 1.0.2 2160 | define-properties: 1.2.0 2161 | es-abstract: 1.22.1 2162 | functions-have-names: 1.2.3 2163 | dev: true 2164 | 2165 | /functions-have-names@1.2.3: 2166 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 2167 | dev: true 2168 | 2169 | /get-intrinsic@1.2.1: 2170 | resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} 2171 | dependencies: 2172 | function-bind: 1.1.1 2173 | has: 1.0.3 2174 | has-proto: 1.0.1 2175 | has-symbols: 1.0.3 2176 | dev: true 2177 | 2178 | /get-source@2.0.12: 2179 | resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} 2180 | dependencies: 2181 | data-uri-to-buffer: 2.0.2 2182 | source-map: 0.6.1 2183 | dev: true 2184 | 2185 | /get-symbol-description@1.0.0: 2186 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 2187 | engines: {node: '>= 0.4'} 2188 | dependencies: 2189 | call-bind: 1.0.2 2190 | get-intrinsic: 1.2.1 2191 | dev: true 2192 | 2193 | /github-from-package@0.0.0: 2194 | resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} 2195 | dev: true 2196 | 2197 | /glob-parent@5.1.2: 2198 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2199 | engines: {node: '>= 6'} 2200 | dependencies: 2201 | is-glob: 4.0.3 2202 | dev: true 2203 | 2204 | /glob-to-regexp@0.4.1: 2205 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 2206 | dev: true 2207 | 2208 | /globalthis@1.0.3: 2209 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 2210 | engines: {node: '>= 0.4'} 2211 | dependencies: 2212 | define-properties: 1.2.0 2213 | dev: true 2214 | 2215 | /gopd@1.0.1: 2216 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 2217 | dependencies: 2218 | get-intrinsic: 1.2.1 2219 | dev: true 2220 | 2221 | /graceful-fs@4.2.11: 2222 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2223 | dev: true 2224 | 2225 | /has-bigints@1.0.2: 2226 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 2227 | dev: true 2228 | 2229 | /has-flag@3.0.0: 2230 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2231 | engines: {node: '>=4'} 2232 | dev: true 2233 | 2234 | /has-property-descriptors@1.0.0: 2235 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 2236 | dependencies: 2237 | get-intrinsic: 1.2.1 2238 | dev: true 2239 | 2240 | /has-proto@1.0.1: 2241 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 2242 | engines: {node: '>= 0.4'} 2243 | dev: true 2244 | 2245 | /has-symbols@1.0.3: 2246 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2247 | engines: {node: '>= 0.4'} 2248 | dev: true 2249 | 2250 | /has-tostringtag@1.0.0: 2251 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 2252 | engines: {node: '>= 0.4'} 2253 | dependencies: 2254 | has-symbols: 1.0.3 2255 | dev: true 2256 | 2257 | /has@1.0.3: 2258 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 2259 | engines: {node: '>= 0.4.0'} 2260 | dependencies: 2261 | function-bind: 1.1.1 2262 | dev: true 2263 | 2264 | /hono@3.4.1: 2265 | resolution: {integrity: sha512-fA7/cfgNg060mt12cYykdstwqM/bRvqYmQlPpEjoKIwMs6QF1rPJzZjppCrFuZZJvKE1vEP6kEAaaDH96XRg7Q==} 2266 | engines: {node: '>=16.0.0'} 2267 | dev: false 2268 | 2269 | /hosted-git-info@2.8.9: 2270 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 2271 | dev: true 2272 | 2273 | /http-cache-semantics@4.1.1: 2274 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 2275 | dev: true 2276 | 2277 | /ieee754@1.2.1: 2278 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 2279 | dev: true 2280 | 2281 | /inherits@2.0.4: 2282 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2283 | dev: true 2284 | 2285 | /ini@1.3.8: 2286 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 2287 | dev: true 2288 | 2289 | /internal-slot@1.0.5: 2290 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 2291 | engines: {node: '>= 0.4'} 2292 | dependencies: 2293 | get-intrinsic: 1.2.1 2294 | has: 1.0.3 2295 | side-channel: 1.0.4 2296 | dev: true 2297 | 2298 | /is-array-buffer@3.0.2: 2299 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 2300 | dependencies: 2301 | call-bind: 1.0.2 2302 | get-intrinsic: 1.2.1 2303 | is-typed-array: 1.1.12 2304 | dev: true 2305 | 2306 | /is-arrayish@0.2.1: 2307 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 2308 | dev: true 2309 | 2310 | /is-bigint@1.0.4: 2311 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2312 | dependencies: 2313 | has-bigints: 1.0.2 2314 | dev: true 2315 | 2316 | /is-binary-path@2.1.0: 2317 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2318 | engines: {node: '>=8'} 2319 | dependencies: 2320 | binary-extensions: 2.2.0 2321 | dev: true 2322 | 2323 | /is-boolean-object@1.1.2: 2324 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2325 | engines: {node: '>= 0.4'} 2326 | dependencies: 2327 | call-bind: 1.0.2 2328 | has-tostringtag: 1.0.0 2329 | dev: true 2330 | 2331 | /is-callable@1.2.7: 2332 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 2333 | engines: {node: '>= 0.4'} 2334 | dev: true 2335 | 2336 | /is-core-module@2.13.0: 2337 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} 2338 | dependencies: 2339 | has: 1.0.3 2340 | dev: true 2341 | 2342 | /is-date-object@1.0.5: 2343 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2344 | engines: {node: '>= 0.4'} 2345 | dependencies: 2346 | has-tostringtag: 1.0.0 2347 | dev: true 2348 | 2349 | /is-extglob@2.1.1: 2350 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2351 | engines: {node: '>=0.10.0'} 2352 | dev: true 2353 | 2354 | /is-glob@4.0.3: 2355 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2356 | engines: {node: '>=0.10.0'} 2357 | dependencies: 2358 | is-extglob: 2.1.1 2359 | dev: true 2360 | 2361 | /is-negative-zero@2.0.2: 2362 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 2363 | engines: {node: '>= 0.4'} 2364 | dev: true 2365 | 2366 | /is-number-object@1.0.7: 2367 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2368 | engines: {node: '>= 0.4'} 2369 | dependencies: 2370 | has-tostringtag: 1.0.0 2371 | dev: true 2372 | 2373 | /is-number@7.0.0: 2374 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2375 | engines: {node: '>=0.12.0'} 2376 | dev: true 2377 | 2378 | /is-regex@1.1.4: 2379 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2380 | engines: {node: '>= 0.4'} 2381 | dependencies: 2382 | call-bind: 1.0.2 2383 | has-tostringtag: 1.0.0 2384 | dev: true 2385 | 2386 | /is-shallow-equal@1.0.1: 2387 | resolution: {integrity: sha512-lq5RvK+85Hs5J3p4oA4256M1FEffzmI533ikeDHvJd42nouRRx5wBzt36JuviiGe5dIPyHON/d0/Up+PBo6XkQ==} 2388 | dev: false 2389 | 2390 | /is-shared-array-buffer@1.0.2: 2391 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 2392 | dependencies: 2393 | call-bind: 1.0.2 2394 | dev: true 2395 | 2396 | /is-string@1.0.7: 2397 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2398 | engines: {node: '>= 0.4'} 2399 | dependencies: 2400 | has-tostringtag: 1.0.0 2401 | dev: true 2402 | 2403 | /is-symbol@1.0.4: 2404 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2405 | engines: {node: '>= 0.4'} 2406 | dependencies: 2407 | has-symbols: 1.0.3 2408 | dev: true 2409 | 2410 | /is-typed-array@1.1.12: 2411 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} 2412 | engines: {node: '>= 0.4'} 2413 | dependencies: 2414 | which-typed-array: 1.1.11 2415 | dev: true 2416 | 2417 | /is-weakref@1.0.2: 2418 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2419 | dependencies: 2420 | call-bind: 1.0.2 2421 | dev: true 2422 | 2423 | /isarray@2.0.5: 2424 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 2425 | dev: true 2426 | 2427 | /isexe@2.0.0: 2428 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2429 | dev: true 2430 | 2431 | /json-parse-better-errors@1.0.2: 2432 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 2433 | dev: true 2434 | 2435 | /kleur@4.1.5: 2436 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 2437 | engines: {node: '>=6'} 2438 | dev: true 2439 | 2440 | /load-json-file@4.0.0: 2441 | resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} 2442 | engines: {node: '>=4'} 2443 | dependencies: 2444 | graceful-fs: 4.2.11 2445 | parse-json: 4.0.0 2446 | pify: 3.0.0 2447 | strip-bom: 3.0.0 2448 | dev: true 2449 | 2450 | /lodash@4.17.21: 2451 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2452 | dev: false 2453 | 2454 | /lru-cache@6.0.0: 2455 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2456 | engines: {node: '>=10'} 2457 | dependencies: 2458 | yallist: 4.0.0 2459 | dev: true 2460 | 2461 | /magic-string@0.25.9: 2462 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 2463 | dependencies: 2464 | sourcemap-codec: 1.4.8 2465 | dev: true 2466 | 2467 | /memoize-one@6.0.0: 2468 | resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} 2469 | dev: false 2470 | 2471 | /memorystream@0.3.1: 2472 | resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} 2473 | engines: {node: '>= 0.10.0'} 2474 | dev: true 2475 | 2476 | /mime-match@1.0.2: 2477 | resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} 2478 | dependencies: 2479 | wildcard: 1.1.2 2480 | dev: false 2481 | 2482 | /mime@3.0.0: 2483 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 2484 | engines: {node: '>=10.0.0'} 2485 | hasBin: true 2486 | 2487 | /mimic-response@3.1.0: 2488 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 2489 | engines: {node: '>=10'} 2490 | dev: true 2491 | 2492 | /miniflare@3.20230801.0: 2493 | resolution: {integrity: sha512-jXl++AYc3PDMu9cxeMbFgzrnbgwU8VIkw49cdpOaIAz7jQgPcLuNLOyAw3G+uaLELnILHs81MM67fGR1hAc62A==} 2494 | engines: {node: '>=16.13'} 2495 | dependencies: 2496 | acorn: 8.10.0 2497 | acorn-walk: 8.2.0 2498 | better-sqlite3: 8.5.0 2499 | capnp-ts: 0.7.0 2500 | exit-hook: 2.2.1 2501 | glob-to-regexp: 0.4.1 2502 | http-cache-semantics: 4.1.1 2503 | kleur: 4.1.5 2504 | set-cookie-parser: 2.6.0 2505 | source-map-support: 0.5.21 2506 | stoppable: 1.1.0 2507 | undici: 5.23.0 2508 | workerd: 1.20230807.0 2509 | ws: 8.13.0 2510 | youch: 3.2.3 2511 | zod: 3.21.4 2512 | transitivePeerDependencies: 2513 | - bufferutil 2514 | - supports-color 2515 | - utf-8-validate 2516 | dev: true 2517 | 2518 | /minimatch@3.1.2: 2519 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2520 | dependencies: 2521 | brace-expansion: 1.1.11 2522 | dev: true 2523 | 2524 | /minimist@1.2.8: 2525 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2526 | dev: true 2527 | 2528 | /mkdirp-classic@0.5.3: 2529 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 2530 | dev: true 2531 | 2532 | /ms@2.1.2: 2533 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2534 | dev: true 2535 | 2536 | /mustache@4.2.0: 2537 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 2538 | hasBin: true 2539 | dev: true 2540 | 2541 | /namespace-emitter@2.0.1: 2542 | resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} 2543 | dev: false 2544 | 2545 | /nanoid@3.3.6: 2546 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 2547 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2548 | hasBin: true 2549 | dev: true 2550 | 2551 | /nanoid@4.0.2: 2552 | resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} 2553 | engines: {node: ^14 || ^16 || >=18} 2554 | hasBin: true 2555 | dev: false 2556 | 2557 | /napi-build-utils@1.0.2: 2558 | resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 2559 | dev: true 2560 | 2561 | /nice-try@1.0.5: 2562 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 2563 | dev: true 2564 | 2565 | /node-abi@3.45.0: 2566 | resolution: {integrity: sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==} 2567 | engines: {node: '>=10'} 2568 | dependencies: 2569 | semver: 7.5.4 2570 | dev: true 2571 | 2572 | /node-fetch-native@1.2.0: 2573 | resolution: {integrity: sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==} 2574 | dev: false 2575 | 2576 | /node-forge@1.3.1: 2577 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 2578 | engines: {node: '>= 6.13.0'} 2579 | dev: true 2580 | 2581 | /normalize-package-data@2.5.0: 2582 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 2583 | dependencies: 2584 | hosted-git-info: 2.8.9 2585 | resolve: 1.22.4 2586 | semver: 5.7.2 2587 | validate-npm-package-license: 3.0.4 2588 | dev: true 2589 | 2590 | /normalize-path@3.0.0: 2591 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2592 | engines: {node: '>=0.10.0'} 2593 | dev: true 2594 | 2595 | /npm-run-all@4.1.5: 2596 | resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} 2597 | engines: {node: '>= 4'} 2598 | hasBin: true 2599 | dependencies: 2600 | ansi-styles: 3.2.1 2601 | chalk: 2.4.2 2602 | cross-spawn: 6.0.5 2603 | memorystream: 0.3.1 2604 | minimatch: 3.1.2 2605 | pidtree: 0.3.1 2606 | read-pkg: 3.0.0 2607 | shell-quote: 1.8.1 2608 | string.prototype.padend: 3.1.4 2609 | dev: true 2610 | 2611 | /object-inspect@1.12.3: 2612 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 2613 | dev: true 2614 | 2615 | /object-keys@1.1.1: 2616 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2617 | engines: {node: '>= 0.4'} 2618 | dev: true 2619 | 2620 | /object.assign@4.1.4: 2621 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2622 | engines: {node: '>= 0.4'} 2623 | dependencies: 2624 | call-bind: 1.0.2 2625 | define-properties: 1.2.0 2626 | has-symbols: 1.0.3 2627 | object-keys: 1.1.1 2628 | dev: true 2629 | 2630 | /ofetch@1.1.1: 2631 | resolution: {integrity: sha512-SSMoktrp9SNLi20BWfB/BnnKcL0RDigXThD/mZBeQxkIRv1xrd9183MtLdsqRYLYSqW0eTr5t8w8MqjNhvoOQQ==} 2632 | dependencies: 2633 | destr: 2.0.1 2634 | node-fetch-native: 1.2.0 2635 | ufo: 1.2.0 2636 | dev: false 2637 | 2638 | /once@1.4.0: 2639 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2640 | dependencies: 2641 | wrappy: 1.0.2 2642 | dev: true 2643 | 2644 | /p-queue@7.3.4: 2645 | resolution: {integrity: sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==} 2646 | engines: {node: '>=12'} 2647 | dependencies: 2648 | eventemitter3: 4.0.7 2649 | p-timeout: 5.1.0 2650 | dev: false 2651 | 2652 | /p-timeout@5.1.0: 2653 | resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} 2654 | engines: {node: '>=12'} 2655 | dev: false 2656 | 2657 | /parse-json@4.0.0: 2658 | resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} 2659 | engines: {node: '>=4'} 2660 | dependencies: 2661 | error-ex: 1.3.2 2662 | json-parse-better-errors: 1.0.2 2663 | dev: true 2664 | 2665 | /path-key@2.0.1: 2666 | resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} 2667 | engines: {node: '>=4'} 2668 | dev: true 2669 | 2670 | /path-parse@1.0.7: 2671 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2672 | dev: true 2673 | 2674 | /path-to-regexp@6.2.1: 2675 | resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 2676 | dev: true 2677 | 2678 | /path-type@3.0.0: 2679 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 2680 | engines: {node: '>=4'} 2681 | dependencies: 2682 | pify: 3.0.0 2683 | dev: true 2684 | 2685 | /picomatch@2.3.1: 2686 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2687 | engines: {node: '>=8.6'} 2688 | dev: true 2689 | 2690 | /pidtree@0.3.1: 2691 | resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} 2692 | engines: {node: '>=0.10'} 2693 | hasBin: true 2694 | dev: true 2695 | 2696 | /pify@3.0.0: 2697 | resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} 2698 | engines: {node: '>=4'} 2699 | dev: true 2700 | 2701 | /preact@10.16.0: 2702 | resolution: {integrity: sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA==} 2703 | dev: false 2704 | 2705 | /prebuild-install@7.1.1: 2706 | resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} 2707 | engines: {node: '>=10'} 2708 | hasBin: true 2709 | dependencies: 2710 | detect-libc: 2.0.2 2711 | expand-template: 2.0.3 2712 | github-from-package: 0.0.0 2713 | minimist: 1.2.8 2714 | mkdirp-classic: 0.5.3 2715 | napi-build-utils: 1.0.2 2716 | node-abi: 3.45.0 2717 | pump: 3.0.0 2718 | rc: 1.2.8 2719 | simple-get: 4.0.1 2720 | tar-fs: 2.1.1 2721 | tunnel-agent: 0.6.0 2722 | dev: true 2723 | 2724 | /printable-characters@1.0.42: 2725 | resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} 2726 | dev: true 2727 | 2728 | /pump@3.0.0: 2729 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 2730 | dependencies: 2731 | end-of-stream: 1.4.4 2732 | once: 1.4.0 2733 | dev: true 2734 | 2735 | /rc@1.2.8: 2736 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 2737 | hasBin: true 2738 | dependencies: 2739 | deep-extend: 0.6.0 2740 | ini: 1.3.8 2741 | minimist: 1.2.8 2742 | strip-json-comments: 2.0.1 2743 | dev: true 2744 | 2745 | /read-pkg@3.0.0: 2746 | resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} 2747 | engines: {node: '>=4'} 2748 | dependencies: 2749 | load-json-file: 4.0.0 2750 | normalize-package-data: 2.5.0 2751 | path-type: 3.0.0 2752 | dev: true 2753 | 2754 | /readable-stream@3.6.2: 2755 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 2756 | engines: {node: '>= 6'} 2757 | dependencies: 2758 | inherits: 2.0.4 2759 | string_decoder: 1.3.0 2760 | util-deprecate: 1.0.2 2761 | dev: true 2762 | 2763 | /readdirp@3.6.0: 2764 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2765 | engines: {node: '>=8.10.0'} 2766 | dependencies: 2767 | picomatch: 2.3.1 2768 | dev: true 2769 | 2770 | /regexp.prototype.flags@1.5.0: 2771 | resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} 2772 | engines: {node: '>= 0.4'} 2773 | dependencies: 2774 | call-bind: 1.0.2 2775 | define-properties: 1.2.0 2776 | functions-have-names: 1.2.3 2777 | dev: true 2778 | 2779 | /resolve@1.22.4: 2780 | resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} 2781 | hasBin: true 2782 | dependencies: 2783 | is-core-module: 2.13.0 2784 | path-parse: 1.0.7 2785 | supports-preserve-symlinks-flag: 1.0.0 2786 | dev: true 2787 | 2788 | /rollup-plugin-inject@3.0.2: 2789 | resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} 2790 | deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 2791 | dependencies: 2792 | estree-walker: 0.6.1 2793 | magic-string: 0.25.9 2794 | rollup-pluginutils: 2.8.2 2795 | dev: true 2796 | 2797 | /rollup-plugin-node-polyfills@0.2.1: 2798 | resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} 2799 | dependencies: 2800 | rollup-plugin-inject: 3.0.2 2801 | dev: true 2802 | 2803 | /rollup-pluginutils@2.8.2: 2804 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 2805 | dependencies: 2806 | estree-walker: 0.6.1 2807 | dev: true 2808 | 2809 | /safe-array-concat@1.0.0: 2810 | resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} 2811 | engines: {node: '>=0.4'} 2812 | dependencies: 2813 | call-bind: 1.0.2 2814 | get-intrinsic: 1.2.1 2815 | has-symbols: 1.0.3 2816 | isarray: 2.0.5 2817 | dev: true 2818 | 2819 | /safe-buffer@5.2.1: 2820 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2821 | dev: true 2822 | 2823 | /safe-regex-test@1.0.0: 2824 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2825 | dependencies: 2826 | call-bind: 1.0.2 2827 | get-intrinsic: 1.2.1 2828 | is-regex: 1.1.4 2829 | dev: true 2830 | 2831 | /selfsigned@2.1.1: 2832 | resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} 2833 | engines: {node: '>=10'} 2834 | dependencies: 2835 | node-forge: 1.3.1 2836 | dev: true 2837 | 2838 | /semver@5.7.2: 2839 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 2840 | hasBin: true 2841 | dev: true 2842 | 2843 | /semver@7.5.4: 2844 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 2845 | engines: {node: '>=10'} 2846 | hasBin: true 2847 | dependencies: 2848 | lru-cache: 6.0.0 2849 | dev: true 2850 | 2851 | /set-cookie-parser@2.6.0: 2852 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 2853 | dev: true 2854 | 2855 | /shebang-command@1.2.0: 2856 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 2857 | engines: {node: '>=0.10.0'} 2858 | dependencies: 2859 | shebang-regex: 1.0.0 2860 | dev: true 2861 | 2862 | /shebang-regex@1.0.0: 2863 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 2864 | engines: {node: '>=0.10.0'} 2865 | dev: true 2866 | 2867 | /shell-quote@1.8.1: 2868 | resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} 2869 | dev: true 2870 | 2871 | /side-channel@1.0.4: 2872 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2873 | dependencies: 2874 | call-bind: 1.0.2 2875 | get-intrinsic: 1.2.1 2876 | object-inspect: 1.12.3 2877 | dev: true 2878 | 2879 | /simple-concat@1.0.1: 2880 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 2881 | dev: true 2882 | 2883 | /simple-get@4.0.1: 2884 | resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 2885 | dependencies: 2886 | decompress-response: 6.0.0 2887 | once: 1.4.0 2888 | simple-concat: 1.0.1 2889 | dev: true 2890 | 2891 | /source-map-support@0.5.21: 2892 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2893 | dependencies: 2894 | buffer-from: 1.1.2 2895 | source-map: 0.6.1 2896 | dev: true 2897 | 2898 | /source-map@0.6.1: 2899 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2900 | engines: {node: '>=0.10.0'} 2901 | dev: true 2902 | 2903 | /source-map@0.7.4: 2904 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 2905 | engines: {node: '>= 8'} 2906 | dev: true 2907 | 2908 | /sourcemap-codec@1.4.8: 2909 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 2910 | deprecated: Please use @jridgewell/sourcemap-codec instead 2911 | dev: true 2912 | 2913 | /spdx-correct@3.2.0: 2914 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 2915 | dependencies: 2916 | spdx-expression-parse: 3.0.1 2917 | spdx-license-ids: 3.0.13 2918 | dev: true 2919 | 2920 | /spdx-exceptions@2.3.0: 2921 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 2922 | dev: true 2923 | 2924 | /spdx-expression-parse@3.0.1: 2925 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2926 | dependencies: 2927 | spdx-exceptions: 2.3.0 2928 | spdx-license-ids: 3.0.13 2929 | dev: true 2930 | 2931 | /spdx-license-ids@3.0.13: 2932 | resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} 2933 | dev: true 2934 | 2935 | /stacktracey@2.1.8: 2936 | resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} 2937 | dependencies: 2938 | as-table: 1.0.55 2939 | get-source: 2.0.12 2940 | dev: true 2941 | 2942 | /stoppable@1.1.0: 2943 | resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} 2944 | engines: {node: '>=4', npm: '>=6'} 2945 | dev: true 2946 | 2947 | /streamsearch@1.1.0: 2948 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 2949 | engines: {node: '>=10.0.0'} 2950 | dev: true 2951 | 2952 | /string.prototype.padend@3.1.4: 2953 | resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==} 2954 | engines: {node: '>= 0.4'} 2955 | dependencies: 2956 | call-bind: 1.0.2 2957 | define-properties: 1.2.0 2958 | es-abstract: 1.22.1 2959 | dev: true 2960 | 2961 | /string.prototype.trim@1.2.7: 2962 | resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} 2963 | engines: {node: '>= 0.4'} 2964 | dependencies: 2965 | call-bind: 1.0.2 2966 | define-properties: 1.2.0 2967 | es-abstract: 1.22.1 2968 | dev: true 2969 | 2970 | /string.prototype.trimend@1.0.6: 2971 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 2972 | dependencies: 2973 | call-bind: 1.0.2 2974 | define-properties: 1.2.0 2975 | es-abstract: 1.22.1 2976 | dev: true 2977 | 2978 | /string.prototype.trimstart@1.0.6: 2979 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 2980 | dependencies: 2981 | call-bind: 1.0.2 2982 | define-properties: 1.2.0 2983 | es-abstract: 1.22.1 2984 | dev: true 2985 | 2986 | /string_decoder@1.3.0: 2987 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2988 | dependencies: 2989 | safe-buffer: 5.2.1 2990 | dev: true 2991 | 2992 | /strip-bom@3.0.0: 2993 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2994 | engines: {node: '>=4'} 2995 | dev: true 2996 | 2997 | /strip-json-comments@2.0.1: 2998 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 2999 | engines: {node: '>=0.10.0'} 3000 | dev: true 3001 | 3002 | /strnum@1.0.5: 3003 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 3004 | dev: false 3005 | 3006 | /supports-color@5.5.0: 3007 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3008 | engines: {node: '>=4'} 3009 | dependencies: 3010 | has-flag: 3.0.0 3011 | dev: true 3012 | 3013 | /supports-preserve-symlinks-flag@1.0.0: 3014 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3015 | engines: {node: '>= 0.4'} 3016 | dev: true 3017 | 3018 | /tar-fs@2.1.1: 3019 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 3020 | dependencies: 3021 | chownr: 1.1.4 3022 | mkdirp-classic: 0.5.3 3023 | pump: 3.0.0 3024 | tar-stream: 2.2.0 3025 | dev: true 3026 | 3027 | /tar-stream@2.2.0: 3028 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 3029 | engines: {node: '>=6'} 3030 | dependencies: 3031 | bl: 4.1.0 3032 | end-of-stream: 1.4.4 3033 | fs-constants: 1.0.0 3034 | inherits: 2.0.4 3035 | readable-stream: 3.6.2 3036 | dev: true 3037 | 3038 | /to-regex-range@5.0.1: 3039 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3040 | engines: {node: '>=8.0'} 3041 | dependencies: 3042 | is-number: 7.0.0 3043 | dev: true 3044 | 3045 | /tslib@1.14.1: 3046 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 3047 | dev: false 3048 | 3049 | /tslib@2.6.1: 3050 | resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} 3051 | 3052 | /tunnel-agent@0.6.0: 3053 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 3054 | dependencies: 3055 | safe-buffer: 5.2.1 3056 | dev: true 3057 | 3058 | /typed-array-buffer@1.0.0: 3059 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} 3060 | engines: {node: '>= 0.4'} 3061 | dependencies: 3062 | call-bind: 1.0.2 3063 | get-intrinsic: 1.2.1 3064 | is-typed-array: 1.1.12 3065 | dev: true 3066 | 3067 | /typed-array-byte-length@1.0.0: 3068 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} 3069 | engines: {node: '>= 0.4'} 3070 | dependencies: 3071 | call-bind: 1.0.2 3072 | for-each: 0.3.3 3073 | has-proto: 1.0.1 3074 | is-typed-array: 1.1.12 3075 | dev: true 3076 | 3077 | /typed-array-byte-offset@1.0.0: 3078 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} 3079 | engines: {node: '>= 0.4'} 3080 | dependencies: 3081 | available-typed-arrays: 1.0.5 3082 | call-bind: 1.0.2 3083 | for-each: 0.3.3 3084 | has-proto: 1.0.1 3085 | is-typed-array: 1.1.12 3086 | dev: true 3087 | 3088 | /typed-array-length@1.0.4: 3089 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 3090 | dependencies: 3091 | call-bind: 1.0.2 3092 | for-each: 0.3.3 3093 | is-typed-array: 1.1.12 3094 | dev: true 3095 | 3096 | /ufo@1.2.0: 3097 | resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} 3098 | dev: false 3099 | 3100 | /unbox-primitive@1.0.2: 3101 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 3102 | dependencies: 3103 | call-bind: 1.0.2 3104 | has-bigints: 1.0.2 3105 | has-symbols: 1.0.3 3106 | which-boxed-primitive: 1.0.2 3107 | dev: true 3108 | 3109 | /undici@5.23.0: 3110 | resolution: {integrity: sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==} 3111 | engines: {node: '>=14.0'} 3112 | dependencies: 3113 | busboy: 1.6.0 3114 | dev: true 3115 | 3116 | /util-deprecate@1.0.2: 3117 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3118 | dev: true 3119 | 3120 | /uuid@8.3.2: 3121 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 3122 | hasBin: true 3123 | dev: false 3124 | 3125 | /validate-npm-package-license@3.0.4: 3126 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 3127 | dependencies: 3128 | spdx-correct: 3.2.0 3129 | spdx-expression-parse: 3.0.1 3130 | dev: true 3131 | 3132 | /which-boxed-primitive@1.0.2: 3133 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3134 | dependencies: 3135 | is-bigint: 1.0.4 3136 | is-boolean-object: 1.1.2 3137 | is-number-object: 1.0.7 3138 | is-string: 1.0.7 3139 | is-symbol: 1.0.4 3140 | dev: true 3141 | 3142 | /which-typed-array@1.1.11: 3143 | resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} 3144 | engines: {node: '>= 0.4'} 3145 | dependencies: 3146 | available-typed-arrays: 1.0.5 3147 | call-bind: 1.0.2 3148 | for-each: 0.3.3 3149 | gopd: 1.0.1 3150 | has-tostringtag: 1.0.0 3151 | dev: true 3152 | 3153 | /which@1.3.1: 3154 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 3155 | hasBin: true 3156 | dependencies: 3157 | isexe: 2.0.0 3158 | dev: true 3159 | 3160 | /wildcard@1.1.2: 3161 | resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} 3162 | dev: false 3163 | 3164 | /workerd@1.20230807.0: 3165 | resolution: {integrity: sha512-yDdHld8wm5lQ6M/WYD68tIzbAmPjcgAoVAYhAHQFaXZSpryjIw9mT3O/NEloyZ8xiickpoPuNSQ4ffxPLao2+Q==} 3166 | engines: {node: '>=16'} 3167 | hasBin: true 3168 | requiresBuild: true 3169 | optionalDependencies: 3170 | '@cloudflare/workerd-darwin-64': 1.20230807.0 3171 | '@cloudflare/workerd-darwin-arm64': 1.20230807.0 3172 | '@cloudflare/workerd-linux-64': 1.20230807.0 3173 | '@cloudflare/workerd-linux-arm64': 1.20230807.0 3174 | '@cloudflare/workerd-windows-64': 1.20230807.0 3175 | dev: true 3176 | 3177 | /wrangler@3.5.0: 3178 | resolution: {integrity: sha512-lvYo2JUxRXdobzd0hs96FT354DvKAYoAiPslceEpKmr0oHCreMWhU5AStfZwg1PEaJJZCwP17LqA5GgjvQ6zyg==} 3179 | engines: {node: '>=16.13.0'} 3180 | hasBin: true 3181 | dependencies: 3182 | '@cloudflare/kv-asset-handler': 0.2.0 3183 | '@esbuild-plugins/node-globals-polyfill': 0.1.1(esbuild@0.16.3) 3184 | '@esbuild-plugins/node-modules-polyfill': 0.1.4(esbuild@0.16.3) 3185 | blake3-wasm: 2.1.5 3186 | chokidar: 3.5.3 3187 | esbuild: 0.16.3 3188 | miniflare: 3.20230801.0 3189 | nanoid: 3.3.6 3190 | path-to-regexp: 6.2.1 3191 | selfsigned: 2.1.1 3192 | source-map: 0.7.4 3193 | xxhash-wasm: 1.0.2 3194 | optionalDependencies: 3195 | fsevents: 2.3.2 3196 | transitivePeerDependencies: 3197 | - bufferutil 3198 | - supports-color 3199 | - utf-8-validate 3200 | dev: true 3201 | 3202 | /wrappy@1.0.2: 3203 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3204 | dev: true 3205 | 3206 | /ws@8.13.0: 3207 | resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} 3208 | engines: {node: '>=10.0.0'} 3209 | peerDependencies: 3210 | bufferutil: ^4.0.1 3211 | utf-8-validate: '>=5.0.2' 3212 | peerDependenciesMeta: 3213 | bufferutil: 3214 | optional: true 3215 | utf-8-validate: 3216 | optional: true 3217 | dev: true 3218 | 3219 | /xxhash-wasm@1.0.2: 3220 | resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} 3221 | dev: true 3222 | 3223 | /yallist@4.0.0: 3224 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3225 | dev: true 3226 | 3227 | /youch@3.2.3: 3228 | resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==} 3229 | dependencies: 3230 | cookie: 0.5.0 3231 | mustache: 4.2.0 3232 | stacktracey: 2.1.8 3233 | dev: true 3234 | 3235 | /zod@3.21.4: 3236 | resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} 3237 | dev: true 3238 | -------------------------------------------------------------------------------- /src/bindings.ts: -------------------------------------------------------------------------------- 1 | export type Bindings = { 2 | R2_BUCKET: R2Bucket; 3 | PUBLIC_BUCKET_URL: string; 4 | CF_ACCOUNT_ID: string; 5 | R2_BUCKET_NAME: string; 6 | R2_ACCESS_KEY: string; 7 | R2_SECRET_KEY: string; 8 | }; 9 | -------------------------------------------------------------------------------- /src/client/index.ts: -------------------------------------------------------------------------------- 1 | import Uppy from "@uppy/core"; 2 | import Dashboard from "@uppy/dashboard"; 3 | import GoldenRetriever from "@uppy/golden-retriever"; 4 | import ImageEditor from "@uppy/image-editor"; 5 | import S3 from "@uppy/aws-s3"; 6 | import { ofetch } from "ofetch"; 7 | 8 | import "@uppy/core/dist/style.min.css"; 9 | import "@uppy/dashboard/dist/style.min.css"; 10 | import "@uppy/image-editor/dist/style.min.css"; 11 | 12 | new Uppy() 13 | .use(Dashboard, { 14 | inline: true, 15 | target: "output#uppy", 16 | showProgressDetails: true, 17 | showLinkToFileUploadResult: true, 18 | }) 19 | .use(GoldenRetriever, { serviceWorker: true }) 20 | .use(ImageEditor, { target: Dashboard, quality: 1.0 }) 21 | .use(S3, { 22 | // Only use multipart uploads for files larger than 100 MB. 23 | shouldUseMultipart: true, // TODO: (file) => file.size > 100 * 2 ** 20, 24 | async getUploadParameters(file) { 25 | const res = await ofetch("/uppy/s3", { 26 | method: "POST", 27 | body: { file }, 28 | }); 29 | 30 | return res; 31 | }, 32 | async createMultipartUpload(file) { 33 | const res = await ofetch("/uppy/s3-multipart", { 34 | method: "POST", 35 | body: { file }, 36 | }); 37 | 38 | return res; 39 | }, 40 | async listParts(file, { uploadId, key }) { 41 | const res = await ofetch( 42 | `/uppy/s3-multipart/${encodeURIComponent(uploadId)}`, 43 | { 44 | query: { key }, 45 | } 46 | ); 47 | 48 | return res; 49 | }, 50 | async signPart(file, { uploadId, key, partNumber, body, signal }) { 51 | const res = await ofetch( 52 | `/uppy/s3-multipart/${encodeURIComponent( 53 | uploadId 54 | )}/${encodeURIComponent(partNumber)}`, 55 | { 56 | method: "POST", 57 | body: { key }, 58 | signal, 59 | } 60 | ); 61 | 62 | return res; 63 | }, 64 | async abortMultipartUpload(file, { uploadId, key, signal }) { 65 | await ofetch(`/uppy/s3-multipart/${encodeURIComponent(uploadId)}`, { 66 | method: "DELETE", 67 | body: { key }, 68 | signal, 69 | }); 70 | }, 71 | async completeMultipartUpload(file, { uploadId, key, parts, signal }) { 72 | const res = await ofetch( 73 | `/uppy/s3-multipart/${encodeURIComponent(uploadId)}/complete`, 74 | { 75 | method: "POST", 76 | body: { key, parts }, 77 | signal, 78 | } 79 | ); 80 | 81 | return res; 82 | }, 83 | }); 84 | 85 | if ("serviceWorker" in navigator) { 86 | navigator.serviceWorker 87 | .register("/dist/sw.js", { 88 | scope: "/", 89 | }) 90 | .then((registration: ServiceWorkerRegistration) => { 91 | console.log( 92 | "Service worker registration successful with scope: ", 93 | registration.scope 94 | ); 95 | }) 96 | .catch((error) => { 97 | console.log(`Service worker registration failed with ${error}`); 98 | }); 99 | } 100 | -------------------------------------------------------------------------------- /src/client/sw.js: -------------------------------------------------------------------------------- 1 | import("@uppy/golden-retriever/lib/ServiceWorker"); 2 | -------------------------------------------------------------------------------- /src/client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { "lib": ["DOM", "ES6", "ES2022.Error"] } 3 | } 4 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { Hono } from "hono"; 2 | import { html } from "hono/html"; 3 | import { serveStatic } from "hono/cloudflare-workers"; 4 | import { logger } from "hono/logger"; 5 | import uppy from "./uploader/uppy"; 6 | import url from "./uploader/url"; 7 | import { Bindings } from "./bindings"; 8 | 9 | const app = new Hono<{ Bindings: Bindings }>(); 10 | 11 | app.use("*", logger()); 12 | 13 | interface LayoutProps { 14 | head?: string; 15 | scripts?: string; 16 | content: string; 17 | } 18 | 19 | export const Layout = ({ 20 | content: main, 21 | head, 22 | scripts, 23 | }: LayoutProps) => html` 24 | 25 | 26 | 27 | 28 | Aster 29 | 30 | ${head} 31 | 32 | 33 |

Aster

34 |

Robust R2 file uploader.

35 |
${main}
36 | ${scripts} 37 | 38 | `; 39 | 40 | app.get("/", (c) => 41 | c.html( 42 | Layout({ 43 | head: html``, 44 | scripts: html``, 45 | content: html`

Upload your file here:

46 |
47 | 48 | 49 |
50 |

OR

51 | `, 52 | }) 53 | ) 54 | ); 55 | 56 | app.use("/dist/sw.js", async (c, next) => { 57 | await next(); 58 | c.header("Service-Worker-Allowed", "/"); 59 | }); 60 | 61 | app.route("/url", url); 62 | app.route("/uppy", uppy); 63 | 64 | app.get("*", serveStatic()); 65 | 66 | export default app; 67 | -------------------------------------------------------------------------------- /src/uploader/uppy.ts: -------------------------------------------------------------------------------- 1 | import { Hono } from "hono"; 2 | import { 3 | S3Client, 4 | PutObjectCommand, 5 | CreateMultipartUploadCommand, 6 | UploadPartCommand, 7 | AbortMultipartUploadCommand, 8 | CompleteMultipartUploadCommand, 9 | ListPartsCommand, 10 | } from "@aws-sdk/client-s3"; 11 | import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; 12 | 13 | import { Bindings } from "../bindings"; 14 | import { generateFilenameWithExtension } from "../util/filename"; 15 | 16 | // This file implements the following routes: 17 | // POST > /s3: get parameters and pre-signed URL for non-multipart upload. 18 | // POST > /s3-multipart: create the multipart upload. 19 | // GET > /s3-multipart/:id: get the uploaded parts. 20 | // GET > /s3-multipart/:id/:partNumber: sign the part and return a pre-signed URL. 21 | // POST > /s3-multipart/:id/complete: complete the multipart upload. 22 | // DELETE > /s3-multipart/:id: abort the multipart upload. 23 | // 24 | // Unimplemented: 25 | // GET > /sts: get the temporary security credentials (optional). 26 | 27 | const app = new Hono<{ Bindings: Bindings }>(); 28 | 29 | const makeS3 = (bindings: Bindings) => { 30 | const endpoint = `https://${bindings.CF_ACCOUNT_ID}.r2.cloudflarestorage.com`; 31 | const accessKeyId = bindings.R2_ACCESS_KEY; 32 | const secretAccessKey = bindings.R2_SECRET_KEY; 33 | 34 | return new S3Client({ 35 | region: "auto", 36 | endpoint, 37 | credentials: { 38 | accessKeyId, 39 | secretAccessKey, 40 | }, 41 | }); 42 | }; 43 | 44 | app.post("/s3", async (c) => { 45 | type NonMultipartUpload = { file: { name: string; type: string } }; 46 | const { file } = await c.req.json(); 47 | const filename = generateFilenameWithExtension(file.type, file.name); 48 | 49 | const s3 = makeS3(c.env); 50 | const cmd = new PutObjectCommand({ 51 | Bucket: c.env.R2_BUCKET_NAME, 52 | Key: filename, 53 | Metadata: { 54 | uploader: "aster", 55 | "source-ray": c.req.header("cf-ray")!, 56 | "source-file": file.name, 57 | }, 58 | ContentType: file.type, 59 | }); 60 | 61 | const url = await getSignedUrl(s3, cmd, { expiresIn: 60 * 60 * 24 * 7 }); 62 | const location = c.env.PUBLIC_BUCKET_URL + "/" + filename; 63 | 64 | return c.json({ 65 | method: "PUT", 66 | url, 67 | headers: { 68 | "Content-Type": file.type, 69 | }, 70 | location, 71 | }); 72 | }); 73 | 74 | app.post("/s3-multipart", async (c) => { 75 | type MultipartUpload = { file: { name: string; type: string } }; 76 | const { file } = await c.req.json(); 77 | const filename = generateFilenameWithExtension(file.type, file.name); 78 | 79 | const s3 = makeS3(c.env); 80 | const res = await s3.send( 81 | new CreateMultipartUploadCommand({ 82 | Bucket: c.env.R2_BUCKET_NAME, 83 | Key: filename, 84 | Metadata: { 85 | uploader: "aster", 86 | "source-ray": c.req.header("cf-ray")!, 87 | "source-file": file.name, 88 | }, 89 | ContentType: file.type, 90 | }) 91 | ); 92 | 93 | return c.json({ uploadId: res.UploadId, key: filename }); 94 | }); 95 | 96 | app.get("/s3-multipart/:id", async (c) => { 97 | const { id } = c.req.param(); 98 | const key = c.req.query("key"); 99 | 100 | const s3 = makeS3(c.env); 101 | const parts = await s3.send( 102 | new ListPartsCommand({ 103 | Bucket: c.env.R2_BUCKET_NAME, 104 | Key: key, 105 | UploadId: id, 106 | }) 107 | ); 108 | 109 | return c.json( 110 | parts.Parts?.map((part) => ({ 111 | PartNumber: part.PartNumber, 112 | Size: part.Size, 113 | ETag: part.ETag, 114 | })) ?? [] 115 | ); 116 | }); 117 | 118 | app.post("/s3-multipart/:id/complete", async (c) => { 119 | type CompleteMultipart = { 120 | key: string; 121 | parts: { ETag: string; PartNumber: number }[]; 122 | }; 123 | const { id } = c.req.param(); 124 | const { key, parts } = await c.req.json(); 125 | 126 | const s3 = makeS3(c.env); 127 | const res = await s3.send( 128 | new CompleteMultipartUploadCommand({ 129 | Bucket: c.env.R2_BUCKET_NAME, 130 | Key: key, 131 | UploadId: id, 132 | MultipartUpload: { 133 | Parts: parts, 134 | }, 135 | }) 136 | ); 137 | 138 | const url = c.env.PUBLIC_BUCKET_URL + "/" + res.Key; // TODO 139 | return c.json({ location: url }); 140 | }); 141 | 142 | app.post("/s3-multipart/:id/:partNumber", async (c) => { 143 | type PartData = { key: string }; 144 | const { id, partNumber } = c.req.param(); 145 | const { key } = await c.req.json(); 146 | 147 | const s3 = makeS3(c.env); 148 | 149 | const cmd = new UploadPartCommand({ 150 | Bucket: c.env.R2_BUCKET_NAME, 151 | Key: key, 152 | PartNumber: Number.parseInt(partNumber), 153 | UploadId: id, 154 | }); 155 | 156 | const url = await getSignedUrl(s3, cmd); 157 | return c.json({ url }); 158 | }); 159 | 160 | app.delete("/s3-multipart/:id", async (c) => { 161 | type DeleteMultipart = { key: string }; 162 | const { id } = c.req.param(); 163 | const { key } = await c.req.json(); 164 | 165 | const s3 = makeS3(c.env); 166 | await s3.send( 167 | new AbortMultipartUploadCommand({ 168 | Bucket: c.env.R2_BUCKET_NAME, 169 | Key: key, 170 | UploadId: id, 171 | }) 172 | ); 173 | 174 | return c.text("OK"); 175 | }); 176 | 177 | export default app; 178 | -------------------------------------------------------------------------------- /src/uploader/url.ts: -------------------------------------------------------------------------------- 1 | import { Hono } from "hono"; 2 | import { Bindings } from "../bindings"; 3 | import { Layout } from ".."; 4 | import { html } from "hono/html"; 5 | import { generateFilenameWithExtension } from "../util/filename"; 6 | 7 | const app = new Hono<{ Bindings: Bindings }>(); 8 | 9 | app.post("/", async (c) => { 10 | const formdata = await c.req.formData(); 11 | const urlString = formdata.get("url"); 12 | 13 | if (urlString === null) { 14 | return c.html( 15 | Layout({ 16 | content: html`input must include url`, 17 | }), 18 | 400 19 | ); 20 | } 21 | 22 | const url = new URL(urlString.toString()); 23 | const resp = await fetch(url); 24 | 25 | if (!resp.ok) { 26 | return c.html( 27 | Layout({ 28 | content: html`your url returned a non-ok status code: ${resp.status}`, 31 | }), 32 | 422 33 | ); 34 | } 35 | 36 | const contentType = resp.headers.get("Content-Type"); 37 | const filename = generateFilenameWithExtension(contentType, url.pathname); 38 | 39 | await c.env.R2_BUCKET.put(filename, resp.body, { 40 | httpMetadata: { 41 | contentType: contentType?.toString(), 42 | }, 43 | customMetadata: { 44 | uploader: "aster", 45 | "source-ray": c.req.header("cf-ray")!, 46 | "source-url": url.toString(), 47 | }, 48 | }); 49 | 50 | const objectUrl = c.env.PUBLIC_BUCKET_URL + "/" + filename; 51 | 52 | return c.html( 53 | Layout({ 54 | content: html`Your file is available here: 56 | ${objectUrl}`, 58 | }) 59 | ); 60 | }); 61 | 62 | export default app; 63 | -------------------------------------------------------------------------------- /src/util/filename.ts: -------------------------------------------------------------------------------- 1 | import mime from "mime"; 2 | 3 | const generateFilename = () => (Math.random() + 1).toString(36).substring(5); 4 | 5 | export const generateFilenameWithExtension = ( 6 | contentType: string | null, 7 | filenameLike: string | null // url pathname or original filename 8 | ) => { 9 | const filename = generateFilename(); 10 | // derive an extension from the content type 11 | if (contentType) return filename + "." + mime.getExtension(contentType); 12 | // fallback to original extension (FIXME: security?) 13 | if (filenameLike) return filename + "." + filenameLike.split(".").pop(); 14 | return filename; 15 | }; 16 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "node", 6 | "esModuleInterop": true, 7 | "strict": true, 8 | "lib": ["esnext"], 9 | "types": ["@cloudflare/workers-types"], 10 | "jsx": "react-jsx", 11 | "jsxFragmentFactory": "Fragment", 12 | "jsxImportSource": "hono/jsx" 13 | }, 14 | "include": ["src/**/*"], 15 | "exclude": ["src/client"] 16 | } 17 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "aster" 2 | compatibility_date = "2023-01-01" 3 | main = "src/index.ts" 4 | 5 | workers_dev = false # INSECURE, DO NOT ENABLE 6 | route = { pattern = "aster.yukata.dev", custom_domain = true } # CHANGEME 7 | 8 | [site] 9 | bucket = "./assets" 10 | 11 | [vars] 12 | PUBLIC_BUCKET_URL = "https://cdn.yukata.dev" # CHANGEME 13 | R2_BUCKET_NAME = "kot" # CHANGEME 14 | CF_ACCOUNT_ID = "afdc9b319dc9eb7543f28d8e7cd900c0" # CHANGEME 15 | 16 | [[r2_buckets]] 17 | binding = "R2_BUCKET" 18 | bucket_name = "kot" # CHANGEME 19 | preview_bucket_name = "kot" # CHANGEME (optional, for development) 20 | --------------------------------------------------------------------------------