├── .gitignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── src └── index.js └── wrangler.toml /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | 3 | logs 4 | _.log 5 | npm-debug.log_ 6 | yarn-debug.log* 7 | yarn-error.log* 8 | lerna-debug.log* 9 | .pnpm-debug.log* 10 | 11 | # Diagnostic reports (https://nodejs.org/api/report.html) 12 | 13 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json 14 | 15 | # Runtime data 16 | 17 | pids 18 | _.pid 19 | _.seed 20 | \*.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | 24 | lib-cov 25 | 26 | # Coverage directory used by tools like istanbul 27 | 28 | coverage 29 | \*.lcov 30 | 31 | # nyc test coverage 32 | 33 | .nyc_output 34 | 35 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 36 | 37 | .grunt 38 | 39 | # Bower dependency directory (https://bower.io/) 40 | 41 | bower_components 42 | 43 | # node-waf configuration 44 | 45 | .lock-wscript 46 | 47 | # Compiled binary addons (https://nodejs.org/api/addons.html) 48 | 49 | build/Release 50 | 51 | # Dependency directories 52 | 53 | node_modules/ 54 | jspm_packages/ 55 | 56 | # Snowpack dependency directory (https://snowpack.dev/) 57 | 58 | web_modules/ 59 | 60 | # TypeScript cache 61 | 62 | \*.tsbuildinfo 63 | 64 | # Optional npm cache directory 65 | 66 | .npm 67 | 68 | # Optional eslint cache 69 | 70 | .eslintcache 71 | 72 | # Optional stylelint cache 73 | 74 | .stylelintcache 75 | 76 | # Microbundle cache 77 | 78 | .rpt2_cache/ 79 | .rts2_cache_cjs/ 80 | .rts2_cache_es/ 81 | .rts2_cache_umd/ 82 | 83 | # Optional REPL history 84 | 85 | .node_repl_history 86 | 87 | # Output of 'npm pack' 88 | 89 | \*.tgz 90 | 91 | # Yarn Integrity file 92 | 93 | .yarn-integrity 94 | 95 | # dotenv environment variable files 96 | 97 | .env 98 | .env.development.local 99 | .env.test.local 100 | .env.production.local 101 | .env.local 102 | 103 | # parcel-bundler cache (https://parceljs.org/) 104 | 105 | .cache 106 | .parcel-cache 107 | 108 | # Next.js build output 109 | 110 | .next 111 | out 112 | 113 | # Nuxt.js build / generate output 114 | 115 | .nuxt 116 | dist 117 | 118 | # Gatsby files 119 | 120 | .cache/ 121 | 122 | # Comment in the public line in if your project uses Gatsby and not Next.js 123 | 124 | # https://nextjs.org/blog/next-9-1#public-directory-support 125 | 126 | # public 127 | 128 | # vuepress build output 129 | 130 | .vuepress/dist 131 | 132 | # vuepress v2.x temp and cache directory 133 | 134 | .temp 135 | .cache 136 | 137 | # Docusaurus cache and generated files 138 | 139 | .docusaurus 140 | 141 | # Serverless directories 142 | 143 | .serverless/ 144 | 145 | # FuseBox cache 146 | 147 | .fusebox/ 148 | 149 | # DynamoDB Local files 150 | 151 | .dynamodb/ 152 | 153 | # TernJS port file 154 | 155 | .tern-port 156 | 157 | # Stores VSCode versions used for testing VSCode extensions 158 | 159 | .vscode-test 160 | 161 | # yarn v2 162 | 163 | .yarn/cache 164 | .yarn/unplugged 165 | .yarn/build-state.yml 166 | .yarn/install-state.gz 167 | .pnp.\* 168 | 169 | # wrangler project 170 | 171 | .dev.vars 172 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2023 (c) Salik Khan. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## WORKER TO INTERACT WITH CLOUDFLARE R2 (S3) BUCKET AS AN API. 2 | 3 | For a full tutorial on how to set this up you can check my [blog post](https://blog.salikkhan.com/how-to-set-up-a-cdn-using-cloudflare-r2-and-workers/). 4 | 5 | This worker acts as an client-facing api for your R2 bucket. You can use it to upload or modify files on your bucket directly using an authentication key and serve files without having to authenticate, basically use it as a CDN. 6 | 7 | ## Setup 8 | 9 | - Create a worker and an R2 bucket on the cloudflare dashboard. 10 | 11 | - Create an authentication key and store it as a variable in your worker settings with the name `AUTH_KEY_SECRET`. You will use this key to authenticate with your api. 12 | 13 | - Install wrangler and sign-in. ([Read official docs for instructions](https://developers.cloudflare.com/workers/wrangler/install-and-update/)). 14 | 15 | - Edit the `wrangler.toml` file and add your worker name, account id and bucket name to it (you can get your account id with `$ wrangler whoami`). 16 | 17 | - Deploy the worker with `$ wrangler publish`. 18 | 19 | ## Using the API 20 | 21 | _Replace `` with your actual key (remove the angle brackets), and `example.workers.dev` with your own worker route._ 22 | 23 | ```bash 24 | # Uploading binary data using curl 25 | $ curl https://example.workers.dev/ -X PUT --header 'X-Custom-Auth-Key: ' --data-binary 'test' 26 | # Uploading files using curl 27 | $ curl https://example.workers.dev/file.ext -X PUT --header 'X-Custom-Auth-Key: ' --upload-file ./file.ext 28 | # Deleting a file using curl 29 | $ curl https://example.workers.dev/file.ext -X DELETE --header 'X-Custom-Auth-Key: ' 30 | ``` 31 | 32 | You can also use a custom domain by routing it to your worker from the cloudflare dashboard. (The custom domain needs to be in the same zone as the worker) 33 | 34 | That's it. You can just use curl or write an app in a language of your choice to interact with the api. 35 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cdn-worker", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "cdn-worker", 9 | "version": "1.0.0", 10 | "devDependencies": { 11 | "@cloudflare/workers-types": "^3.16.0", 12 | "eslint": "^8.23.0", 13 | "eslint-config-google": "^0.14.0", 14 | "typescript": "^4.8.2", 15 | "wrangler": "3.19.0" 16 | } 17 | }, 18 | "node_modules/@cloudflare/kv-asset-handler": { 19 | "version": "0.2.0", 20 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", 21 | "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", 22 | "dev": true, 23 | "dependencies": { 24 | "mime": "^3.0.0" 25 | } 26 | }, 27 | "node_modules/@cloudflare/workerd-darwin-64": { 28 | "version": "1.20231030.0", 29 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20231030.0.tgz", 30 | "integrity": "sha512-J4PQ9utPxLya9yHdMMx3AZeC5M/6FxcoYw6jo9jbDDFTy+a4Gslqf4Im9We3aeOEdPXa3tgQHVQOSelJSZLhIw==", 31 | "cpu": [ 32 | "x64" 33 | ], 34 | "dev": true, 35 | "optional": true, 36 | "os": [ 37 | "darwin" 38 | ], 39 | "engines": { 40 | "node": ">=16" 41 | } 42 | }, 43 | "node_modules/@cloudflare/workerd-darwin-arm64": { 44 | "version": "1.20231030.0", 45 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20231030.0.tgz", 46 | "integrity": "sha512-WSJJjm11Del4hSneiNB7wTXGtBXI4QMCH9l5qf4iT5PAW8cESGcCmdHtWDWDtGAAGcvmLT04KNvmum92vRKKQQ==", 47 | "cpu": [ 48 | "arm64" 49 | ], 50 | "dev": true, 51 | "optional": true, 52 | "os": [ 53 | "darwin" 54 | ], 55 | "engines": { 56 | "node": ">=16" 57 | } 58 | }, 59 | "node_modules/@cloudflare/workerd-linux-64": { 60 | "version": "1.20231030.0", 61 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20231030.0.tgz", 62 | "integrity": "sha512-2HUeRTvoCC17fxE0qdBeR7J9dO8j4A8ZbdcvY8pZxdk+zERU6+N03RTbk/dQMU488PwiDvcC3zZqS4gwLfVT8g==", 63 | "cpu": [ 64 | "x64" 65 | ], 66 | "dev": true, 67 | "optional": true, 68 | "os": [ 69 | "linux" 70 | ], 71 | "engines": { 72 | "node": ">=16" 73 | } 74 | }, 75 | "node_modules/@cloudflare/workerd-linux-arm64": { 76 | "version": "1.20231030.0", 77 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20231030.0.tgz", 78 | "integrity": "sha512-4/GK5zHh+9JbUI6Z5xTCM0ZmpKKHk7vu9thmHjUxtz+o8Ne9DoD7DlDvXQWgMF6XGaTubDWyp3ttn+Qv8jDFuQ==", 79 | "cpu": [ 80 | "arm64" 81 | ], 82 | "dev": true, 83 | "optional": true, 84 | "os": [ 85 | "linux" 86 | ], 87 | "engines": { 88 | "node": ">=16" 89 | } 90 | }, 91 | "node_modules/@cloudflare/workerd-windows-64": { 92 | "version": "1.20231030.0", 93 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20231030.0.tgz", 94 | "integrity": "sha512-fb/Jgj8Yqy3PO1jLhk7mTrHMkR8jklpbQFud6rL/aMAn5d6MQbaSrYOCjzkKGp0Zng8D2LIzSl+Fc0C9Sggxjg==", 95 | "cpu": [ 96 | "x64" 97 | ], 98 | "dev": true, 99 | "optional": true, 100 | "os": [ 101 | "win32" 102 | ], 103 | "engines": { 104 | "node": ">=16" 105 | } 106 | }, 107 | "node_modules/@cloudflare/workers-types": { 108 | "version": "3.16.0", 109 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.16.0.tgz", 110 | "integrity": "sha512-gaBUSaKS65mN3iKZEgichbXYEmAa/pXkc5Gbt+1BptYphdGkj09ggdsiE4w8g0F/uI1g36QaTKrzVnBAWMipvQ==", 111 | "dev": true 112 | }, 113 | "node_modules/@esbuild-plugins/node-globals-polyfill": { 114 | "version": "0.2.3", 115 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", 116 | "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", 117 | "dev": true, 118 | "peerDependencies": { 119 | "esbuild": "*" 120 | } 121 | }, 122 | "node_modules/@esbuild-plugins/node-modules-polyfill": { 123 | "version": "0.2.2", 124 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz", 125 | "integrity": "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==", 126 | "dev": true, 127 | "dependencies": { 128 | "escape-string-regexp": "^4.0.0", 129 | "rollup-plugin-node-polyfills": "^0.2.1" 130 | }, 131 | "peerDependencies": { 132 | "esbuild": "*" 133 | } 134 | }, 135 | "node_modules/@esbuild/android-arm": { 136 | "version": "0.17.19", 137 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 138 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 139 | "cpu": [ 140 | "arm" 141 | ], 142 | "dev": true, 143 | "optional": true, 144 | "os": [ 145 | "android" 146 | ], 147 | "engines": { 148 | "node": ">=12" 149 | } 150 | }, 151 | "node_modules/@esbuild/android-arm64": { 152 | "version": "0.17.19", 153 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 154 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 155 | "cpu": [ 156 | "arm64" 157 | ], 158 | "dev": true, 159 | "optional": true, 160 | "os": [ 161 | "android" 162 | ], 163 | "engines": { 164 | "node": ">=12" 165 | } 166 | }, 167 | "node_modules/@esbuild/android-x64": { 168 | "version": "0.17.19", 169 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 170 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 171 | "cpu": [ 172 | "x64" 173 | ], 174 | "dev": true, 175 | "optional": true, 176 | "os": [ 177 | "android" 178 | ], 179 | "engines": { 180 | "node": ">=12" 181 | } 182 | }, 183 | "node_modules/@esbuild/darwin-arm64": { 184 | "version": "0.17.19", 185 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 186 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 187 | "cpu": [ 188 | "arm64" 189 | ], 190 | "dev": true, 191 | "optional": true, 192 | "os": [ 193 | "darwin" 194 | ], 195 | "engines": { 196 | "node": ">=12" 197 | } 198 | }, 199 | "node_modules/@esbuild/darwin-x64": { 200 | "version": "0.17.19", 201 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 202 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 203 | "cpu": [ 204 | "x64" 205 | ], 206 | "dev": true, 207 | "optional": true, 208 | "os": [ 209 | "darwin" 210 | ], 211 | "engines": { 212 | "node": ">=12" 213 | } 214 | }, 215 | "node_modules/@esbuild/freebsd-arm64": { 216 | "version": "0.17.19", 217 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 218 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 219 | "cpu": [ 220 | "arm64" 221 | ], 222 | "dev": true, 223 | "optional": true, 224 | "os": [ 225 | "freebsd" 226 | ], 227 | "engines": { 228 | "node": ">=12" 229 | } 230 | }, 231 | "node_modules/@esbuild/freebsd-x64": { 232 | "version": "0.17.19", 233 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 234 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 235 | "cpu": [ 236 | "x64" 237 | ], 238 | "dev": true, 239 | "optional": true, 240 | "os": [ 241 | "freebsd" 242 | ], 243 | "engines": { 244 | "node": ">=12" 245 | } 246 | }, 247 | "node_modules/@esbuild/linux-arm": { 248 | "version": "0.17.19", 249 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 250 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 251 | "cpu": [ 252 | "arm" 253 | ], 254 | "dev": true, 255 | "optional": true, 256 | "os": [ 257 | "linux" 258 | ], 259 | "engines": { 260 | "node": ">=12" 261 | } 262 | }, 263 | "node_modules/@esbuild/linux-arm64": { 264 | "version": "0.17.19", 265 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 266 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 267 | "cpu": [ 268 | "arm64" 269 | ], 270 | "dev": true, 271 | "optional": true, 272 | "os": [ 273 | "linux" 274 | ], 275 | "engines": { 276 | "node": ">=12" 277 | } 278 | }, 279 | "node_modules/@esbuild/linux-ia32": { 280 | "version": "0.17.19", 281 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 282 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 283 | "cpu": [ 284 | "ia32" 285 | ], 286 | "dev": true, 287 | "optional": true, 288 | "os": [ 289 | "linux" 290 | ], 291 | "engines": { 292 | "node": ">=12" 293 | } 294 | }, 295 | "node_modules/@esbuild/linux-loong64": { 296 | "version": "0.17.19", 297 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 298 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 299 | "cpu": [ 300 | "loong64" 301 | ], 302 | "dev": true, 303 | "optional": true, 304 | "os": [ 305 | "linux" 306 | ], 307 | "engines": { 308 | "node": ">=12" 309 | } 310 | }, 311 | "node_modules/@esbuild/linux-mips64el": { 312 | "version": "0.17.19", 313 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 314 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 315 | "cpu": [ 316 | "mips64el" 317 | ], 318 | "dev": true, 319 | "optional": true, 320 | "os": [ 321 | "linux" 322 | ], 323 | "engines": { 324 | "node": ">=12" 325 | } 326 | }, 327 | "node_modules/@esbuild/linux-ppc64": { 328 | "version": "0.17.19", 329 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 330 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 331 | "cpu": [ 332 | "ppc64" 333 | ], 334 | "dev": true, 335 | "optional": true, 336 | "os": [ 337 | "linux" 338 | ], 339 | "engines": { 340 | "node": ">=12" 341 | } 342 | }, 343 | "node_modules/@esbuild/linux-riscv64": { 344 | "version": "0.17.19", 345 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 346 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 347 | "cpu": [ 348 | "riscv64" 349 | ], 350 | "dev": true, 351 | "optional": true, 352 | "os": [ 353 | "linux" 354 | ], 355 | "engines": { 356 | "node": ">=12" 357 | } 358 | }, 359 | "node_modules/@esbuild/linux-s390x": { 360 | "version": "0.17.19", 361 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 362 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 363 | "cpu": [ 364 | "s390x" 365 | ], 366 | "dev": true, 367 | "optional": true, 368 | "os": [ 369 | "linux" 370 | ], 371 | "engines": { 372 | "node": ">=12" 373 | } 374 | }, 375 | "node_modules/@esbuild/linux-x64": { 376 | "version": "0.17.19", 377 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 378 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 379 | "cpu": [ 380 | "x64" 381 | ], 382 | "dev": true, 383 | "optional": true, 384 | "os": [ 385 | "linux" 386 | ], 387 | "engines": { 388 | "node": ">=12" 389 | } 390 | }, 391 | "node_modules/@esbuild/netbsd-x64": { 392 | "version": "0.17.19", 393 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 394 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 395 | "cpu": [ 396 | "x64" 397 | ], 398 | "dev": true, 399 | "optional": true, 400 | "os": [ 401 | "netbsd" 402 | ], 403 | "engines": { 404 | "node": ">=12" 405 | } 406 | }, 407 | "node_modules/@esbuild/openbsd-x64": { 408 | "version": "0.17.19", 409 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 410 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 411 | "cpu": [ 412 | "x64" 413 | ], 414 | "dev": true, 415 | "optional": true, 416 | "os": [ 417 | "openbsd" 418 | ], 419 | "engines": { 420 | "node": ">=12" 421 | } 422 | }, 423 | "node_modules/@esbuild/sunos-x64": { 424 | "version": "0.17.19", 425 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 426 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 427 | "cpu": [ 428 | "x64" 429 | ], 430 | "dev": true, 431 | "optional": true, 432 | "os": [ 433 | "sunos" 434 | ], 435 | "engines": { 436 | "node": ">=12" 437 | } 438 | }, 439 | "node_modules/@esbuild/win32-arm64": { 440 | "version": "0.17.19", 441 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 442 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 443 | "cpu": [ 444 | "arm64" 445 | ], 446 | "dev": true, 447 | "optional": true, 448 | "os": [ 449 | "win32" 450 | ], 451 | "engines": { 452 | "node": ">=12" 453 | } 454 | }, 455 | "node_modules/@esbuild/win32-ia32": { 456 | "version": "0.17.19", 457 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 458 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 459 | "cpu": [ 460 | "ia32" 461 | ], 462 | "dev": true, 463 | "optional": true, 464 | "os": [ 465 | "win32" 466 | ], 467 | "engines": { 468 | "node": ">=12" 469 | } 470 | }, 471 | "node_modules/@esbuild/win32-x64": { 472 | "version": "0.17.19", 473 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 474 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 475 | "cpu": [ 476 | "x64" 477 | ], 478 | "dev": true, 479 | "optional": true, 480 | "os": [ 481 | "win32" 482 | ], 483 | "engines": { 484 | "node": ">=12" 485 | } 486 | }, 487 | "node_modules/@eslint/eslintrc": { 488 | "version": "1.3.1", 489 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", 490 | "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", 491 | "dev": true, 492 | "dependencies": { 493 | "ajv": "^6.12.4", 494 | "debug": "^4.3.2", 495 | "espree": "^9.4.0", 496 | "globals": "^13.15.0", 497 | "ignore": "^5.2.0", 498 | "import-fresh": "^3.2.1", 499 | "js-yaml": "^4.1.0", 500 | "minimatch": "^3.1.2", 501 | "strip-json-comments": "^3.1.1" 502 | }, 503 | "engines": { 504 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 505 | }, 506 | "funding": { 507 | "url": "https://opencollective.com/eslint" 508 | } 509 | }, 510 | "node_modules/@fastify/busboy": { 511 | "version": "2.1.1", 512 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 513 | "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 514 | "dev": true, 515 | "engines": { 516 | "node": ">=14" 517 | } 518 | }, 519 | "node_modules/@humanwhocodes/config-array": { 520 | "version": "0.10.4", 521 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", 522 | "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", 523 | "dev": true, 524 | "dependencies": { 525 | "@humanwhocodes/object-schema": "^1.2.1", 526 | "debug": "^4.1.1", 527 | "minimatch": "^3.0.4" 528 | }, 529 | "engines": { 530 | "node": ">=10.10.0" 531 | } 532 | }, 533 | "node_modules/@humanwhocodes/gitignore-to-minimatch": { 534 | "version": "1.0.2", 535 | "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", 536 | "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", 537 | "dev": true, 538 | "funding": { 539 | "type": "github", 540 | "url": "https://github.com/sponsors/nzakas" 541 | } 542 | }, 543 | "node_modules/@humanwhocodes/module-importer": { 544 | "version": "1.0.1", 545 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 546 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 547 | "dev": true, 548 | "engines": { 549 | "node": ">=12.22" 550 | }, 551 | "funding": { 552 | "type": "github", 553 | "url": "https://github.com/sponsors/nzakas" 554 | } 555 | }, 556 | "node_modules/@humanwhocodes/object-schema": { 557 | "version": "1.2.1", 558 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 559 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 560 | "dev": true 561 | }, 562 | "node_modules/@nodelib/fs.scandir": { 563 | "version": "2.1.5", 564 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 565 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 566 | "dev": true, 567 | "dependencies": { 568 | "@nodelib/fs.stat": "2.0.5", 569 | "run-parallel": "^1.1.9" 570 | }, 571 | "engines": { 572 | "node": ">= 8" 573 | } 574 | }, 575 | "node_modules/@nodelib/fs.stat": { 576 | "version": "2.0.5", 577 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 578 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 579 | "dev": true, 580 | "engines": { 581 | "node": ">= 8" 582 | } 583 | }, 584 | "node_modules/@nodelib/fs.walk": { 585 | "version": "1.2.8", 586 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 587 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 588 | "dev": true, 589 | "dependencies": { 590 | "@nodelib/fs.scandir": "2.1.5", 591 | "fastq": "^1.6.0" 592 | }, 593 | "engines": { 594 | "node": ">= 8" 595 | } 596 | }, 597 | "node_modules/acorn": { 598 | "version": "8.12.1", 599 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", 600 | "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", 601 | "dev": true, 602 | "bin": { 603 | "acorn": "bin/acorn" 604 | }, 605 | "engines": { 606 | "node": ">=0.4.0" 607 | } 608 | }, 609 | "node_modules/acorn-jsx": { 610 | "version": "5.3.2", 611 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 612 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 613 | "dev": true, 614 | "peerDependencies": { 615 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 616 | } 617 | }, 618 | "node_modules/acorn-walk": { 619 | "version": "8.3.3", 620 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", 621 | "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", 622 | "dev": true, 623 | "dependencies": { 624 | "acorn": "^8.11.0" 625 | }, 626 | "engines": { 627 | "node": ">=0.4.0" 628 | } 629 | }, 630 | "node_modules/ajv": { 631 | "version": "6.12.6", 632 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 633 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 634 | "dev": true, 635 | "dependencies": { 636 | "fast-deep-equal": "^3.1.1", 637 | "fast-json-stable-stringify": "^2.0.0", 638 | "json-schema-traverse": "^0.4.1", 639 | "uri-js": "^4.2.2" 640 | }, 641 | "funding": { 642 | "type": "github", 643 | "url": "https://github.com/sponsors/epoberezkin" 644 | } 645 | }, 646 | "node_modules/ansi-regex": { 647 | "version": "5.0.1", 648 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 649 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 650 | "dev": true, 651 | "engines": { 652 | "node": ">=8" 653 | } 654 | }, 655 | "node_modules/ansi-styles": { 656 | "version": "4.3.0", 657 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 658 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 659 | "dev": true, 660 | "dependencies": { 661 | "color-convert": "^2.0.1" 662 | }, 663 | "engines": { 664 | "node": ">=8" 665 | }, 666 | "funding": { 667 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 668 | } 669 | }, 670 | "node_modules/anymatch": { 671 | "version": "3.1.2", 672 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 673 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 674 | "dev": true, 675 | "dependencies": { 676 | "normalize-path": "^3.0.0", 677 | "picomatch": "^2.0.4" 678 | }, 679 | "engines": { 680 | "node": ">= 8" 681 | } 682 | }, 683 | "node_modules/argparse": { 684 | "version": "2.0.1", 685 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 686 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 687 | "dev": true 688 | }, 689 | "node_modules/array-union": { 690 | "version": "2.1.0", 691 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 692 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 693 | "dev": true, 694 | "engines": { 695 | "node": ">=8" 696 | } 697 | }, 698 | "node_modules/as-table": { 699 | "version": "1.0.55", 700 | "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 701 | "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 702 | "dev": true, 703 | "dependencies": { 704 | "printable-characters": "^1.0.42" 705 | } 706 | }, 707 | "node_modules/balanced-match": { 708 | "version": "1.0.2", 709 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 710 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 711 | "dev": true 712 | }, 713 | "node_modules/binary-extensions": { 714 | "version": "2.2.0", 715 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 716 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 717 | "dev": true, 718 | "engines": { 719 | "node": ">=8" 720 | } 721 | }, 722 | "node_modules/blake3-wasm": { 723 | "version": "2.1.5", 724 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 725 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 726 | "dev": true 727 | }, 728 | "node_modules/brace-expansion": { 729 | "version": "1.1.11", 730 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 731 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 732 | "dev": true, 733 | "dependencies": { 734 | "balanced-match": "^1.0.0", 735 | "concat-map": "0.0.1" 736 | } 737 | }, 738 | "node_modules/braces": { 739 | "version": "3.0.3", 740 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 741 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 742 | "dev": true, 743 | "dependencies": { 744 | "fill-range": "^7.1.1" 745 | }, 746 | "engines": { 747 | "node": ">=8" 748 | } 749 | }, 750 | "node_modules/buffer-from": { 751 | "version": "1.1.2", 752 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 753 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 754 | "dev": true 755 | }, 756 | "node_modules/callsites": { 757 | "version": "3.1.0", 758 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 759 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 760 | "dev": true, 761 | "engines": { 762 | "node": ">=6" 763 | } 764 | }, 765 | "node_modules/capnp-ts": { 766 | "version": "0.7.0", 767 | "resolved": "https://registry.npmjs.org/capnp-ts/-/capnp-ts-0.7.0.tgz", 768 | "integrity": "sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==", 769 | "dev": true, 770 | "dependencies": { 771 | "debug": "^4.3.1", 772 | "tslib": "^2.2.0" 773 | } 774 | }, 775 | "node_modules/chalk": { 776 | "version": "4.1.2", 777 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 778 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 779 | "dev": true, 780 | "dependencies": { 781 | "ansi-styles": "^4.1.0", 782 | "supports-color": "^7.1.0" 783 | }, 784 | "engines": { 785 | "node": ">=10" 786 | }, 787 | "funding": { 788 | "url": "https://github.com/chalk/chalk?sponsor=1" 789 | } 790 | }, 791 | "node_modules/chokidar": { 792 | "version": "3.5.3", 793 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 794 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 795 | "dev": true, 796 | "funding": [ 797 | { 798 | "type": "individual", 799 | "url": "https://paulmillr.com/funding/" 800 | } 801 | ], 802 | "dependencies": { 803 | "anymatch": "~3.1.2", 804 | "braces": "~3.0.2", 805 | "glob-parent": "~5.1.2", 806 | "is-binary-path": "~2.1.0", 807 | "is-glob": "~4.0.1", 808 | "normalize-path": "~3.0.0", 809 | "readdirp": "~3.6.0" 810 | }, 811 | "engines": { 812 | "node": ">= 8.10.0" 813 | }, 814 | "optionalDependencies": { 815 | "fsevents": "~2.3.2" 816 | } 817 | }, 818 | "node_modules/color-convert": { 819 | "version": "2.0.1", 820 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 821 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 822 | "dev": true, 823 | "dependencies": { 824 | "color-name": "~1.1.4" 825 | }, 826 | "engines": { 827 | "node": ">=7.0.0" 828 | } 829 | }, 830 | "node_modules/color-name": { 831 | "version": "1.1.4", 832 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 833 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 834 | "dev": true 835 | }, 836 | "node_modules/concat-map": { 837 | "version": "0.0.1", 838 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 839 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 840 | "dev": true 841 | }, 842 | "node_modules/cookie": { 843 | "version": "0.7.2", 844 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 845 | "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 846 | "dev": true, 847 | "license": "MIT", 848 | "engines": { 849 | "node": ">= 0.6" 850 | } 851 | }, 852 | "node_modules/cross-spawn": { 853 | "version": "7.0.3", 854 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 855 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 856 | "dev": true, 857 | "dependencies": { 858 | "path-key": "^3.1.0", 859 | "shebang-command": "^2.0.0", 860 | "which": "^2.0.1" 861 | }, 862 | "engines": { 863 | "node": ">= 8" 864 | } 865 | }, 866 | "node_modules/data-uri-to-buffer": { 867 | "version": "2.0.2", 868 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 869 | "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 870 | "dev": true 871 | }, 872 | "node_modules/debug": { 873 | "version": "4.3.4", 874 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 875 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 876 | "dev": true, 877 | "dependencies": { 878 | "ms": "2.1.2" 879 | }, 880 | "engines": { 881 | "node": ">=6.0" 882 | }, 883 | "peerDependenciesMeta": { 884 | "supports-color": { 885 | "optional": true 886 | } 887 | } 888 | }, 889 | "node_modules/deep-is": { 890 | "version": "0.1.4", 891 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 892 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 893 | "dev": true 894 | }, 895 | "node_modules/dir-glob": { 896 | "version": "3.0.1", 897 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 898 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 899 | "dev": true, 900 | "dependencies": { 901 | "path-type": "^4.0.0" 902 | }, 903 | "engines": { 904 | "node": ">=8" 905 | } 906 | }, 907 | "node_modules/doctrine": { 908 | "version": "3.0.0", 909 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 910 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 911 | "dev": true, 912 | "dependencies": { 913 | "esutils": "^2.0.2" 914 | }, 915 | "engines": { 916 | "node": ">=6.0.0" 917 | } 918 | }, 919 | "node_modules/esbuild": { 920 | "version": "0.17.19", 921 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", 922 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 923 | "dev": true, 924 | "hasInstallScript": true, 925 | "bin": { 926 | "esbuild": "bin/esbuild" 927 | }, 928 | "engines": { 929 | "node": ">=12" 930 | }, 931 | "optionalDependencies": { 932 | "@esbuild/android-arm": "0.17.19", 933 | "@esbuild/android-arm64": "0.17.19", 934 | "@esbuild/android-x64": "0.17.19", 935 | "@esbuild/darwin-arm64": "0.17.19", 936 | "@esbuild/darwin-x64": "0.17.19", 937 | "@esbuild/freebsd-arm64": "0.17.19", 938 | "@esbuild/freebsd-x64": "0.17.19", 939 | "@esbuild/linux-arm": "0.17.19", 940 | "@esbuild/linux-arm64": "0.17.19", 941 | "@esbuild/linux-ia32": "0.17.19", 942 | "@esbuild/linux-loong64": "0.17.19", 943 | "@esbuild/linux-mips64el": "0.17.19", 944 | "@esbuild/linux-ppc64": "0.17.19", 945 | "@esbuild/linux-riscv64": "0.17.19", 946 | "@esbuild/linux-s390x": "0.17.19", 947 | "@esbuild/linux-x64": "0.17.19", 948 | "@esbuild/netbsd-x64": "0.17.19", 949 | "@esbuild/openbsd-x64": "0.17.19", 950 | "@esbuild/sunos-x64": "0.17.19", 951 | "@esbuild/win32-arm64": "0.17.19", 952 | "@esbuild/win32-ia32": "0.17.19", 953 | "@esbuild/win32-x64": "0.17.19" 954 | } 955 | }, 956 | "node_modules/escape-string-regexp": { 957 | "version": "4.0.0", 958 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 959 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 960 | "dev": true, 961 | "engines": { 962 | "node": ">=10" 963 | }, 964 | "funding": { 965 | "url": "https://github.com/sponsors/sindresorhus" 966 | } 967 | }, 968 | "node_modules/eslint": { 969 | "version": "8.23.0", 970 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", 971 | "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", 972 | "dev": true, 973 | "dependencies": { 974 | "@eslint/eslintrc": "^1.3.1", 975 | "@humanwhocodes/config-array": "^0.10.4", 976 | "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", 977 | "@humanwhocodes/module-importer": "^1.0.1", 978 | "ajv": "^6.10.0", 979 | "chalk": "^4.0.0", 980 | "cross-spawn": "^7.0.2", 981 | "debug": "^4.3.2", 982 | "doctrine": "^3.0.0", 983 | "escape-string-regexp": "^4.0.0", 984 | "eslint-scope": "^7.1.1", 985 | "eslint-utils": "^3.0.0", 986 | "eslint-visitor-keys": "^3.3.0", 987 | "espree": "^9.4.0", 988 | "esquery": "^1.4.0", 989 | "esutils": "^2.0.2", 990 | "fast-deep-equal": "^3.1.3", 991 | "file-entry-cache": "^6.0.1", 992 | "find-up": "^5.0.0", 993 | "functional-red-black-tree": "^1.0.1", 994 | "glob-parent": "^6.0.1", 995 | "globals": "^13.15.0", 996 | "globby": "^11.1.0", 997 | "grapheme-splitter": "^1.0.4", 998 | "ignore": "^5.2.0", 999 | "import-fresh": "^3.0.0", 1000 | "imurmurhash": "^0.1.4", 1001 | "is-glob": "^4.0.0", 1002 | "js-yaml": "^4.1.0", 1003 | "json-stable-stringify-without-jsonify": "^1.0.1", 1004 | "levn": "^0.4.1", 1005 | "lodash.merge": "^4.6.2", 1006 | "minimatch": "^3.1.2", 1007 | "natural-compare": "^1.4.0", 1008 | "optionator": "^0.9.1", 1009 | "regexpp": "^3.2.0", 1010 | "strip-ansi": "^6.0.1", 1011 | "strip-json-comments": "^3.1.0", 1012 | "text-table": "^0.2.0" 1013 | }, 1014 | "bin": { 1015 | "eslint": "bin/eslint.js" 1016 | }, 1017 | "engines": { 1018 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1019 | }, 1020 | "funding": { 1021 | "url": "https://opencollective.com/eslint" 1022 | } 1023 | }, 1024 | "node_modules/eslint-config-google": { 1025 | "version": "0.14.0", 1026 | "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", 1027 | "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", 1028 | "dev": true, 1029 | "engines": { 1030 | "node": ">=0.10.0" 1031 | }, 1032 | "peerDependencies": { 1033 | "eslint": ">=5.16.0" 1034 | } 1035 | }, 1036 | "node_modules/eslint-scope": { 1037 | "version": "7.1.1", 1038 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 1039 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 1040 | "dev": true, 1041 | "dependencies": { 1042 | "esrecurse": "^4.3.0", 1043 | "estraverse": "^5.2.0" 1044 | }, 1045 | "engines": { 1046 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1047 | } 1048 | }, 1049 | "node_modules/eslint-utils": { 1050 | "version": "3.0.0", 1051 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 1052 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 1053 | "dev": true, 1054 | "dependencies": { 1055 | "eslint-visitor-keys": "^2.0.0" 1056 | }, 1057 | "engines": { 1058 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 1059 | }, 1060 | "funding": { 1061 | "url": "https://github.com/sponsors/mysticatea" 1062 | }, 1063 | "peerDependencies": { 1064 | "eslint": ">=5" 1065 | } 1066 | }, 1067 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { 1068 | "version": "2.1.0", 1069 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 1070 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 1071 | "dev": true, 1072 | "engines": { 1073 | "node": ">=10" 1074 | } 1075 | }, 1076 | "node_modules/eslint-visitor-keys": { 1077 | "version": "3.3.0", 1078 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 1079 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 1080 | "dev": true, 1081 | "engines": { 1082 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1083 | } 1084 | }, 1085 | "node_modules/eslint/node_modules/glob-parent": { 1086 | "version": "6.0.2", 1087 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1088 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1089 | "dev": true, 1090 | "dependencies": { 1091 | "is-glob": "^4.0.3" 1092 | }, 1093 | "engines": { 1094 | "node": ">=10.13.0" 1095 | } 1096 | }, 1097 | "node_modules/espree": { 1098 | "version": "9.4.0", 1099 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", 1100 | "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", 1101 | "dev": true, 1102 | "dependencies": { 1103 | "acorn": "^8.8.0", 1104 | "acorn-jsx": "^5.3.2", 1105 | "eslint-visitor-keys": "^3.3.0" 1106 | }, 1107 | "engines": { 1108 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1109 | }, 1110 | "funding": { 1111 | "url": "https://opencollective.com/eslint" 1112 | } 1113 | }, 1114 | "node_modules/esquery": { 1115 | "version": "1.4.0", 1116 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 1117 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 1118 | "dev": true, 1119 | "dependencies": { 1120 | "estraverse": "^5.1.0" 1121 | }, 1122 | "engines": { 1123 | "node": ">=0.10" 1124 | } 1125 | }, 1126 | "node_modules/esrecurse": { 1127 | "version": "4.3.0", 1128 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1129 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1130 | "dev": true, 1131 | "dependencies": { 1132 | "estraverse": "^5.2.0" 1133 | }, 1134 | "engines": { 1135 | "node": ">=4.0" 1136 | } 1137 | }, 1138 | "node_modules/estraverse": { 1139 | "version": "5.3.0", 1140 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1141 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1142 | "dev": true, 1143 | "engines": { 1144 | "node": ">=4.0" 1145 | } 1146 | }, 1147 | "node_modules/estree-walker": { 1148 | "version": "0.6.1", 1149 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1150 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 1151 | "dev": true 1152 | }, 1153 | "node_modules/esutils": { 1154 | "version": "2.0.3", 1155 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1156 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1157 | "dev": true, 1158 | "engines": { 1159 | "node": ">=0.10.0" 1160 | } 1161 | }, 1162 | "node_modules/exit-hook": { 1163 | "version": "2.2.1", 1164 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 1165 | "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 1166 | "dev": true, 1167 | "engines": { 1168 | "node": ">=6" 1169 | }, 1170 | "funding": { 1171 | "url": "https://github.com/sponsors/sindresorhus" 1172 | } 1173 | }, 1174 | "node_modules/fast-deep-equal": { 1175 | "version": "3.1.3", 1176 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1177 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1178 | "dev": true 1179 | }, 1180 | "node_modules/fast-glob": { 1181 | "version": "3.2.11", 1182 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 1183 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 1184 | "dev": true, 1185 | "dependencies": { 1186 | "@nodelib/fs.stat": "^2.0.2", 1187 | "@nodelib/fs.walk": "^1.2.3", 1188 | "glob-parent": "^5.1.2", 1189 | "merge2": "^1.3.0", 1190 | "micromatch": "^4.0.4" 1191 | }, 1192 | "engines": { 1193 | "node": ">=8.6.0" 1194 | } 1195 | }, 1196 | "node_modules/fast-json-stable-stringify": { 1197 | "version": "2.1.0", 1198 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1199 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1200 | "dev": true 1201 | }, 1202 | "node_modules/fast-levenshtein": { 1203 | "version": "2.0.6", 1204 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1205 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 1206 | "dev": true 1207 | }, 1208 | "node_modules/fastq": { 1209 | "version": "1.13.0", 1210 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1211 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1212 | "dev": true, 1213 | "dependencies": { 1214 | "reusify": "^1.0.4" 1215 | } 1216 | }, 1217 | "node_modules/file-entry-cache": { 1218 | "version": "6.0.1", 1219 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 1220 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 1221 | "dev": true, 1222 | "dependencies": { 1223 | "flat-cache": "^3.0.4" 1224 | }, 1225 | "engines": { 1226 | "node": "^10.12.0 || >=12.0.0" 1227 | } 1228 | }, 1229 | "node_modules/fill-range": { 1230 | "version": "7.1.1", 1231 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 1232 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 1233 | "dev": true, 1234 | "dependencies": { 1235 | "to-regex-range": "^5.0.1" 1236 | }, 1237 | "engines": { 1238 | "node": ">=8" 1239 | } 1240 | }, 1241 | "node_modules/find-up": { 1242 | "version": "5.0.0", 1243 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1244 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1245 | "dev": true, 1246 | "dependencies": { 1247 | "locate-path": "^6.0.0", 1248 | "path-exists": "^4.0.0" 1249 | }, 1250 | "engines": { 1251 | "node": ">=10" 1252 | }, 1253 | "funding": { 1254 | "url": "https://github.com/sponsors/sindresorhus" 1255 | } 1256 | }, 1257 | "node_modules/flat-cache": { 1258 | "version": "3.0.4", 1259 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 1260 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 1261 | "dev": true, 1262 | "dependencies": { 1263 | "flatted": "^3.1.0", 1264 | "rimraf": "^3.0.2" 1265 | }, 1266 | "engines": { 1267 | "node": "^10.12.0 || >=12.0.0" 1268 | } 1269 | }, 1270 | "node_modules/flatted": { 1271 | "version": "3.2.7", 1272 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 1273 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 1274 | "dev": true 1275 | }, 1276 | "node_modules/fs.realpath": { 1277 | "version": "1.0.0", 1278 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1279 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1280 | "dev": true 1281 | }, 1282 | "node_modules/fsevents": { 1283 | "version": "2.3.2", 1284 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1285 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1286 | "dev": true, 1287 | "hasInstallScript": true, 1288 | "optional": true, 1289 | "os": [ 1290 | "darwin" 1291 | ], 1292 | "engines": { 1293 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1294 | } 1295 | }, 1296 | "node_modules/functional-red-black-tree": { 1297 | "version": "1.0.1", 1298 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1299 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", 1300 | "dev": true 1301 | }, 1302 | "node_modules/get-source": { 1303 | "version": "2.0.12", 1304 | "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 1305 | "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 1306 | "dev": true, 1307 | "dependencies": { 1308 | "data-uri-to-buffer": "^2.0.0", 1309 | "source-map": "^0.6.1" 1310 | } 1311 | }, 1312 | "node_modules/glob": { 1313 | "version": "7.2.3", 1314 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1315 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1316 | "dev": true, 1317 | "dependencies": { 1318 | "fs.realpath": "^1.0.0", 1319 | "inflight": "^1.0.4", 1320 | "inherits": "2", 1321 | "minimatch": "^3.1.1", 1322 | "once": "^1.3.0", 1323 | "path-is-absolute": "^1.0.0" 1324 | }, 1325 | "engines": { 1326 | "node": "*" 1327 | }, 1328 | "funding": { 1329 | "url": "https://github.com/sponsors/isaacs" 1330 | } 1331 | }, 1332 | "node_modules/glob-parent": { 1333 | "version": "5.1.2", 1334 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1335 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1336 | "dev": true, 1337 | "dependencies": { 1338 | "is-glob": "^4.0.1" 1339 | }, 1340 | "engines": { 1341 | "node": ">= 6" 1342 | } 1343 | }, 1344 | "node_modules/glob-to-regexp": { 1345 | "version": "0.4.1", 1346 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 1347 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 1348 | "dev": true 1349 | }, 1350 | "node_modules/globals": { 1351 | "version": "13.17.0", 1352 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", 1353 | "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", 1354 | "dev": true, 1355 | "dependencies": { 1356 | "type-fest": "^0.20.2" 1357 | }, 1358 | "engines": { 1359 | "node": ">=8" 1360 | }, 1361 | "funding": { 1362 | "url": "https://github.com/sponsors/sindresorhus" 1363 | } 1364 | }, 1365 | "node_modules/globby": { 1366 | "version": "11.1.0", 1367 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 1368 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 1369 | "dev": true, 1370 | "dependencies": { 1371 | "array-union": "^2.1.0", 1372 | "dir-glob": "^3.0.1", 1373 | "fast-glob": "^3.2.9", 1374 | "ignore": "^5.2.0", 1375 | "merge2": "^1.4.1", 1376 | "slash": "^3.0.0" 1377 | }, 1378 | "engines": { 1379 | "node": ">=10" 1380 | }, 1381 | "funding": { 1382 | "url": "https://github.com/sponsors/sindresorhus" 1383 | } 1384 | }, 1385 | "node_modules/grapheme-splitter": { 1386 | "version": "1.0.4", 1387 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 1388 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 1389 | "dev": true 1390 | }, 1391 | "node_modules/has-flag": { 1392 | "version": "4.0.0", 1393 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1394 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1395 | "dev": true, 1396 | "engines": { 1397 | "node": ">=8" 1398 | } 1399 | }, 1400 | "node_modules/ignore": { 1401 | "version": "5.2.0", 1402 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 1403 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 1404 | "dev": true, 1405 | "engines": { 1406 | "node": ">= 4" 1407 | } 1408 | }, 1409 | "node_modules/import-fresh": { 1410 | "version": "3.3.0", 1411 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1412 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1413 | "dev": true, 1414 | "dependencies": { 1415 | "parent-module": "^1.0.0", 1416 | "resolve-from": "^4.0.0" 1417 | }, 1418 | "engines": { 1419 | "node": ">=6" 1420 | }, 1421 | "funding": { 1422 | "url": "https://github.com/sponsors/sindresorhus" 1423 | } 1424 | }, 1425 | "node_modules/imurmurhash": { 1426 | "version": "0.1.4", 1427 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1428 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 1429 | "dev": true, 1430 | "engines": { 1431 | "node": ">=0.8.19" 1432 | } 1433 | }, 1434 | "node_modules/inflight": { 1435 | "version": "1.0.6", 1436 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1437 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1438 | "dev": true, 1439 | "dependencies": { 1440 | "once": "^1.3.0", 1441 | "wrappy": "1" 1442 | } 1443 | }, 1444 | "node_modules/inherits": { 1445 | "version": "2.0.4", 1446 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1447 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1448 | "dev": true 1449 | }, 1450 | "node_modules/is-binary-path": { 1451 | "version": "2.1.0", 1452 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1453 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1454 | "dev": true, 1455 | "dependencies": { 1456 | "binary-extensions": "^2.0.0" 1457 | }, 1458 | "engines": { 1459 | "node": ">=8" 1460 | } 1461 | }, 1462 | "node_modules/is-extglob": { 1463 | "version": "2.1.1", 1464 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1465 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1466 | "dev": true, 1467 | "engines": { 1468 | "node": ">=0.10.0" 1469 | } 1470 | }, 1471 | "node_modules/is-glob": { 1472 | "version": "4.0.3", 1473 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1474 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1475 | "dev": true, 1476 | "dependencies": { 1477 | "is-extglob": "^2.1.1" 1478 | }, 1479 | "engines": { 1480 | "node": ">=0.10.0" 1481 | } 1482 | }, 1483 | "node_modules/is-number": { 1484 | "version": "7.0.0", 1485 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1486 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1487 | "dev": true, 1488 | "engines": { 1489 | "node": ">=0.12.0" 1490 | } 1491 | }, 1492 | "node_modules/isexe": { 1493 | "version": "2.0.0", 1494 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1495 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1496 | "dev": true 1497 | }, 1498 | "node_modules/js-yaml": { 1499 | "version": "4.1.0", 1500 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1501 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1502 | "dev": true, 1503 | "dependencies": { 1504 | "argparse": "^2.0.1" 1505 | }, 1506 | "bin": { 1507 | "js-yaml": "bin/js-yaml.js" 1508 | } 1509 | }, 1510 | "node_modules/json-schema-traverse": { 1511 | "version": "0.4.1", 1512 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1513 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1514 | "dev": true 1515 | }, 1516 | "node_modules/json-stable-stringify-without-jsonify": { 1517 | "version": "1.0.1", 1518 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1519 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 1520 | "dev": true 1521 | }, 1522 | "node_modules/levn": { 1523 | "version": "0.4.1", 1524 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1525 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1526 | "dev": true, 1527 | "dependencies": { 1528 | "prelude-ls": "^1.2.1", 1529 | "type-check": "~0.4.0" 1530 | }, 1531 | "engines": { 1532 | "node": ">= 0.8.0" 1533 | } 1534 | }, 1535 | "node_modules/locate-path": { 1536 | "version": "6.0.0", 1537 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1538 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1539 | "dev": true, 1540 | "dependencies": { 1541 | "p-locate": "^5.0.0" 1542 | }, 1543 | "engines": { 1544 | "node": ">=10" 1545 | }, 1546 | "funding": { 1547 | "url": "https://github.com/sponsors/sindresorhus" 1548 | } 1549 | }, 1550 | "node_modules/lodash.merge": { 1551 | "version": "4.6.2", 1552 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 1553 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 1554 | "dev": true 1555 | }, 1556 | "node_modules/magic-string": { 1557 | "version": "0.25.9", 1558 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 1559 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 1560 | "dev": true, 1561 | "dependencies": { 1562 | "sourcemap-codec": "^1.4.8" 1563 | } 1564 | }, 1565 | "node_modules/merge2": { 1566 | "version": "1.4.1", 1567 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1568 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1569 | "dev": true, 1570 | "engines": { 1571 | "node": ">= 8" 1572 | } 1573 | }, 1574 | "node_modules/micromatch": { 1575 | "version": "4.0.5", 1576 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 1577 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1578 | "dev": true, 1579 | "dependencies": { 1580 | "braces": "^3.0.2", 1581 | "picomatch": "^2.3.1" 1582 | }, 1583 | "engines": { 1584 | "node": ">=8.6" 1585 | } 1586 | }, 1587 | "node_modules/mime": { 1588 | "version": "3.0.0", 1589 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 1590 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 1591 | "dev": true, 1592 | "bin": { 1593 | "mime": "cli.js" 1594 | }, 1595 | "engines": { 1596 | "node": ">=10.0.0" 1597 | } 1598 | }, 1599 | "node_modules/miniflare": { 1600 | "version": "3.20231030.3", 1601 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20231030.3.tgz", 1602 | "integrity": "sha512-lquHSh0XiO8uoWDujOLHtDS9mkUTJTc5C5amiQ6A++5y0f+DWiMqbDBvvwjlYf4Dvqk6ChFya9dztk7fg2ZVxA==", 1603 | "dev": true, 1604 | "dependencies": { 1605 | "acorn": "^8.8.0", 1606 | "acorn-walk": "^8.2.0", 1607 | "capnp-ts": "^0.7.0", 1608 | "exit-hook": "^2.2.1", 1609 | "glob-to-regexp": "^0.4.1", 1610 | "source-map-support": "0.5.21", 1611 | "stoppable": "^1.1.0", 1612 | "undici": "^5.22.1", 1613 | "workerd": "1.20231030.0", 1614 | "ws": "^8.11.0", 1615 | "youch": "^3.2.2", 1616 | "zod": "^3.20.6" 1617 | }, 1618 | "bin": { 1619 | "miniflare": "bootstrap.js" 1620 | }, 1621 | "engines": { 1622 | "node": ">=16.13" 1623 | } 1624 | }, 1625 | "node_modules/minimatch": { 1626 | "version": "3.1.2", 1627 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1628 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1629 | "dev": true, 1630 | "dependencies": { 1631 | "brace-expansion": "^1.1.7" 1632 | }, 1633 | "engines": { 1634 | "node": "*" 1635 | } 1636 | }, 1637 | "node_modules/ms": { 1638 | "version": "2.1.2", 1639 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1640 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1641 | "dev": true 1642 | }, 1643 | "node_modules/mustache": { 1644 | "version": "4.2.0", 1645 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 1646 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 1647 | "dev": true, 1648 | "bin": { 1649 | "mustache": "bin/mustache" 1650 | } 1651 | }, 1652 | "node_modules/nanoid": { 1653 | "version": "3.3.4", 1654 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1655 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1656 | "dev": true, 1657 | "bin": { 1658 | "nanoid": "bin/nanoid.cjs" 1659 | }, 1660 | "engines": { 1661 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1662 | } 1663 | }, 1664 | "node_modules/natural-compare": { 1665 | "version": "1.4.0", 1666 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1667 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 1668 | "dev": true 1669 | }, 1670 | "node_modules/node-forge": { 1671 | "version": "1.3.1", 1672 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 1673 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", 1674 | "dev": true, 1675 | "engines": { 1676 | "node": ">= 6.13.0" 1677 | } 1678 | }, 1679 | "node_modules/normalize-path": { 1680 | "version": "3.0.0", 1681 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1682 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1683 | "dev": true, 1684 | "engines": { 1685 | "node": ">=0.10.0" 1686 | } 1687 | }, 1688 | "node_modules/once": { 1689 | "version": "1.4.0", 1690 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1691 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1692 | "dev": true, 1693 | "dependencies": { 1694 | "wrappy": "1" 1695 | } 1696 | }, 1697 | "node_modules/optionator": { 1698 | "version": "0.9.1", 1699 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 1700 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 1701 | "dev": true, 1702 | "dependencies": { 1703 | "deep-is": "^0.1.3", 1704 | "fast-levenshtein": "^2.0.6", 1705 | "levn": "^0.4.1", 1706 | "prelude-ls": "^1.2.1", 1707 | "type-check": "^0.4.0", 1708 | "word-wrap": "^1.2.3" 1709 | }, 1710 | "engines": { 1711 | "node": ">= 0.8.0" 1712 | } 1713 | }, 1714 | "node_modules/p-limit": { 1715 | "version": "3.1.0", 1716 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1717 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1718 | "dev": true, 1719 | "dependencies": { 1720 | "yocto-queue": "^0.1.0" 1721 | }, 1722 | "engines": { 1723 | "node": ">=10" 1724 | }, 1725 | "funding": { 1726 | "url": "https://github.com/sponsors/sindresorhus" 1727 | } 1728 | }, 1729 | "node_modules/p-locate": { 1730 | "version": "5.0.0", 1731 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1732 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1733 | "dev": true, 1734 | "dependencies": { 1735 | "p-limit": "^3.0.2" 1736 | }, 1737 | "engines": { 1738 | "node": ">=10" 1739 | }, 1740 | "funding": { 1741 | "url": "https://github.com/sponsors/sindresorhus" 1742 | } 1743 | }, 1744 | "node_modules/parent-module": { 1745 | "version": "1.0.1", 1746 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1747 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1748 | "dev": true, 1749 | "dependencies": { 1750 | "callsites": "^3.0.0" 1751 | }, 1752 | "engines": { 1753 | "node": ">=6" 1754 | } 1755 | }, 1756 | "node_modules/path-exists": { 1757 | "version": "4.0.0", 1758 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1759 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1760 | "dev": true, 1761 | "engines": { 1762 | "node": ">=8" 1763 | } 1764 | }, 1765 | "node_modules/path-is-absolute": { 1766 | "version": "1.0.1", 1767 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1768 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1769 | "dev": true, 1770 | "engines": { 1771 | "node": ">=0.10.0" 1772 | } 1773 | }, 1774 | "node_modules/path-key": { 1775 | "version": "3.1.1", 1776 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1777 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1778 | "dev": true, 1779 | "engines": { 1780 | "node": ">=8" 1781 | } 1782 | }, 1783 | "node_modules/path-to-regexp": { 1784 | "version": "6.2.1", 1785 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", 1786 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", 1787 | "dev": true 1788 | }, 1789 | "node_modules/path-type": { 1790 | "version": "4.0.0", 1791 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1792 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1793 | "dev": true, 1794 | "engines": { 1795 | "node": ">=8" 1796 | } 1797 | }, 1798 | "node_modules/picomatch": { 1799 | "version": "2.3.1", 1800 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1801 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1802 | "dev": true, 1803 | "engines": { 1804 | "node": ">=8.6" 1805 | }, 1806 | "funding": { 1807 | "url": "https://github.com/sponsors/jonschlinkert" 1808 | } 1809 | }, 1810 | "node_modules/prelude-ls": { 1811 | "version": "1.2.1", 1812 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 1813 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 1814 | "dev": true, 1815 | "engines": { 1816 | "node": ">= 0.8.0" 1817 | } 1818 | }, 1819 | "node_modules/printable-characters": { 1820 | "version": "1.0.42", 1821 | "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 1822 | "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 1823 | "dev": true 1824 | }, 1825 | "node_modules/punycode": { 1826 | "version": "2.1.1", 1827 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1828 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1829 | "dev": true, 1830 | "engines": { 1831 | "node": ">=6" 1832 | } 1833 | }, 1834 | "node_modules/queue-microtask": { 1835 | "version": "1.2.3", 1836 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1837 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1838 | "dev": true, 1839 | "funding": [ 1840 | { 1841 | "type": "github", 1842 | "url": "https://github.com/sponsors/feross" 1843 | }, 1844 | { 1845 | "type": "patreon", 1846 | "url": "https://www.patreon.com/feross" 1847 | }, 1848 | { 1849 | "type": "consulting", 1850 | "url": "https://feross.org/support" 1851 | } 1852 | ] 1853 | }, 1854 | "node_modules/readdirp": { 1855 | "version": "3.6.0", 1856 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1857 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1858 | "dev": true, 1859 | "dependencies": { 1860 | "picomatch": "^2.2.1" 1861 | }, 1862 | "engines": { 1863 | "node": ">=8.10.0" 1864 | } 1865 | }, 1866 | "node_modules/regexpp": { 1867 | "version": "3.2.0", 1868 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 1869 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 1870 | "dev": true, 1871 | "engines": { 1872 | "node": ">=8" 1873 | }, 1874 | "funding": { 1875 | "url": "https://github.com/sponsors/mysticatea" 1876 | } 1877 | }, 1878 | "node_modules/resolve-from": { 1879 | "version": "4.0.0", 1880 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1881 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1882 | "dev": true, 1883 | "engines": { 1884 | "node": ">=4" 1885 | } 1886 | }, 1887 | "node_modules/resolve.exports": { 1888 | "version": "2.0.2", 1889 | "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", 1890 | "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", 1891 | "dev": true, 1892 | "engines": { 1893 | "node": ">=10" 1894 | } 1895 | }, 1896 | "node_modules/reusify": { 1897 | "version": "1.0.4", 1898 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1899 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1900 | "dev": true, 1901 | "engines": { 1902 | "iojs": ">=1.0.0", 1903 | "node": ">=0.10.0" 1904 | } 1905 | }, 1906 | "node_modules/rimraf": { 1907 | "version": "3.0.2", 1908 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1909 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1910 | "dev": true, 1911 | "dependencies": { 1912 | "glob": "^7.1.3" 1913 | }, 1914 | "bin": { 1915 | "rimraf": "bin.js" 1916 | }, 1917 | "funding": { 1918 | "url": "https://github.com/sponsors/isaacs" 1919 | } 1920 | }, 1921 | "node_modules/rollup-plugin-inject": { 1922 | "version": "3.0.2", 1923 | "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", 1924 | "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", 1925 | "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", 1926 | "dev": true, 1927 | "dependencies": { 1928 | "estree-walker": "^0.6.1", 1929 | "magic-string": "^0.25.3", 1930 | "rollup-pluginutils": "^2.8.1" 1931 | } 1932 | }, 1933 | "node_modules/rollup-plugin-node-polyfills": { 1934 | "version": "0.2.1", 1935 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", 1936 | "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", 1937 | "dev": true, 1938 | "dependencies": { 1939 | "rollup-plugin-inject": "^3.0.0" 1940 | } 1941 | }, 1942 | "node_modules/rollup-pluginutils": { 1943 | "version": "2.8.2", 1944 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 1945 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 1946 | "dev": true, 1947 | "dependencies": { 1948 | "estree-walker": "^0.6.1" 1949 | } 1950 | }, 1951 | "node_modules/run-parallel": { 1952 | "version": "1.2.0", 1953 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1954 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1955 | "dev": true, 1956 | "funding": [ 1957 | { 1958 | "type": "github", 1959 | "url": "https://github.com/sponsors/feross" 1960 | }, 1961 | { 1962 | "type": "patreon", 1963 | "url": "https://www.patreon.com/feross" 1964 | }, 1965 | { 1966 | "type": "consulting", 1967 | "url": "https://feross.org/support" 1968 | } 1969 | ], 1970 | "dependencies": { 1971 | "queue-microtask": "^1.2.2" 1972 | } 1973 | }, 1974 | "node_modules/selfsigned": { 1975 | "version": "2.1.1", 1976 | "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", 1977 | "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", 1978 | "dev": true, 1979 | "dependencies": { 1980 | "node-forge": "^1" 1981 | }, 1982 | "engines": { 1983 | "node": ">=10" 1984 | } 1985 | }, 1986 | "node_modules/shebang-command": { 1987 | "version": "2.0.0", 1988 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1989 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1990 | "dev": true, 1991 | "dependencies": { 1992 | "shebang-regex": "^3.0.0" 1993 | }, 1994 | "engines": { 1995 | "node": ">=8" 1996 | } 1997 | }, 1998 | "node_modules/shebang-regex": { 1999 | "version": "3.0.0", 2000 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2001 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2002 | "dev": true, 2003 | "engines": { 2004 | "node": ">=8" 2005 | } 2006 | }, 2007 | "node_modules/slash": { 2008 | "version": "3.0.0", 2009 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 2010 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 2011 | "dev": true, 2012 | "engines": { 2013 | "node": ">=8" 2014 | } 2015 | }, 2016 | "node_modules/source-map": { 2017 | "version": "0.6.1", 2018 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2019 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2020 | "dev": true, 2021 | "engines": { 2022 | "node": ">=0.10.0" 2023 | } 2024 | }, 2025 | "node_modules/source-map-support": { 2026 | "version": "0.5.21", 2027 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 2028 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 2029 | "dev": true, 2030 | "dependencies": { 2031 | "buffer-from": "^1.0.0", 2032 | "source-map": "^0.6.0" 2033 | } 2034 | }, 2035 | "node_modules/sourcemap-codec": { 2036 | "version": "1.4.8", 2037 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 2038 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 2039 | "deprecated": "Please use @jridgewell/sourcemap-codec instead", 2040 | "dev": true 2041 | }, 2042 | "node_modules/stacktracey": { 2043 | "version": "2.1.8", 2044 | "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 2045 | "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 2046 | "dev": true, 2047 | "dependencies": { 2048 | "as-table": "^1.0.36", 2049 | "get-source": "^2.0.12" 2050 | } 2051 | }, 2052 | "node_modules/stoppable": { 2053 | "version": "1.1.0", 2054 | "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 2055 | "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 2056 | "dev": true, 2057 | "engines": { 2058 | "node": ">=4", 2059 | "npm": ">=6" 2060 | } 2061 | }, 2062 | "node_modules/strip-ansi": { 2063 | "version": "6.0.1", 2064 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2065 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2066 | "dev": true, 2067 | "dependencies": { 2068 | "ansi-regex": "^5.0.1" 2069 | }, 2070 | "engines": { 2071 | "node": ">=8" 2072 | } 2073 | }, 2074 | "node_modules/strip-json-comments": { 2075 | "version": "3.1.1", 2076 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2077 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2078 | "dev": true, 2079 | "engines": { 2080 | "node": ">=8" 2081 | }, 2082 | "funding": { 2083 | "url": "https://github.com/sponsors/sindresorhus" 2084 | } 2085 | }, 2086 | "node_modules/supports-color": { 2087 | "version": "7.2.0", 2088 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2089 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2090 | "dev": true, 2091 | "dependencies": { 2092 | "has-flag": "^4.0.0" 2093 | }, 2094 | "engines": { 2095 | "node": ">=8" 2096 | } 2097 | }, 2098 | "node_modules/text-table": { 2099 | "version": "0.2.0", 2100 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2101 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 2102 | "dev": true 2103 | }, 2104 | "node_modules/to-regex-range": { 2105 | "version": "5.0.1", 2106 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2107 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2108 | "dev": true, 2109 | "dependencies": { 2110 | "is-number": "^7.0.0" 2111 | }, 2112 | "engines": { 2113 | "node": ">=8.0" 2114 | } 2115 | }, 2116 | "node_modules/tslib": { 2117 | "version": "2.6.3", 2118 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", 2119 | "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", 2120 | "dev": true 2121 | }, 2122 | "node_modules/type-check": { 2123 | "version": "0.4.0", 2124 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 2125 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 2126 | "dev": true, 2127 | "dependencies": { 2128 | "prelude-ls": "^1.2.1" 2129 | }, 2130 | "engines": { 2131 | "node": ">= 0.8.0" 2132 | } 2133 | }, 2134 | "node_modules/type-fest": { 2135 | "version": "0.20.2", 2136 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2137 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 2138 | "dev": true, 2139 | "engines": { 2140 | "node": ">=10" 2141 | }, 2142 | "funding": { 2143 | "url": "https://github.com/sponsors/sindresorhus" 2144 | } 2145 | }, 2146 | "node_modules/typescript": { 2147 | "version": "4.8.2", 2148 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", 2149 | "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", 2150 | "dev": true, 2151 | "bin": { 2152 | "tsc": "bin/tsc", 2153 | "tsserver": "bin/tsserver" 2154 | }, 2155 | "engines": { 2156 | "node": ">=4.2.0" 2157 | } 2158 | }, 2159 | "node_modules/undici": { 2160 | "version": "5.28.5", 2161 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz", 2162 | "integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==", 2163 | "dev": true, 2164 | "license": "MIT", 2165 | "dependencies": { 2166 | "@fastify/busboy": "^2.0.0" 2167 | }, 2168 | "engines": { 2169 | "node": ">=14.0" 2170 | } 2171 | }, 2172 | "node_modules/uri-js": { 2173 | "version": "4.4.1", 2174 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2175 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2176 | "dev": true, 2177 | "dependencies": { 2178 | "punycode": "^2.1.0" 2179 | } 2180 | }, 2181 | "node_modules/which": { 2182 | "version": "2.0.2", 2183 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2184 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2185 | "dev": true, 2186 | "dependencies": { 2187 | "isexe": "^2.0.0" 2188 | }, 2189 | "bin": { 2190 | "node-which": "bin/node-which" 2191 | }, 2192 | "engines": { 2193 | "node": ">= 8" 2194 | } 2195 | }, 2196 | "node_modules/word-wrap": { 2197 | "version": "1.2.5", 2198 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 2199 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 2200 | "dev": true, 2201 | "engines": { 2202 | "node": ">=0.10.0" 2203 | } 2204 | }, 2205 | "node_modules/workerd": { 2206 | "version": "1.20231030.0", 2207 | "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20231030.0.tgz", 2208 | "integrity": "sha512-+FSW+d31f8RrjHanFf/R9A+Z0csf3OtsvzdPmAKuwuZm/5HrBv83cvG9fFeTxl7/nI6irUUXIRF9xcj/NomQzQ==", 2209 | "dev": true, 2210 | "hasInstallScript": true, 2211 | "bin": { 2212 | "workerd": "bin/workerd" 2213 | }, 2214 | "engines": { 2215 | "node": ">=16" 2216 | }, 2217 | "optionalDependencies": { 2218 | "@cloudflare/workerd-darwin-64": "1.20231030.0", 2219 | "@cloudflare/workerd-darwin-arm64": "1.20231030.0", 2220 | "@cloudflare/workerd-linux-64": "1.20231030.0", 2221 | "@cloudflare/workerd-linux-arm64": "1.20231030.0", 2222 | "@cloudflare/workerd-windows-64": "1.20231030.0" 2223 | } 2224 | }, 2225 | "node_modules/wrangler": { 2226 | "version": "3.19.0", 2227 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.19.0.tgz", 2228 | "integrity": "sha512-pY7xWqkQn6DJ+1vz9YHz2pCftEmK+JCTj9sqnucp0NZnlUiILDmBWegsjjCLZycgfiA62J213N7NvjLPr2LB8w==", 2229 | "dev": true, 2230 | "dependencies": { 2231 | "@cloudflare/kv-asset-handler": "^0.2.0", 2232 | "@esbuild-plugins/node-globals-polyfill": "^0.2.3", 2233 | "@esbuild-plugins/node-modules-polyfill": "^0.2.2", 2234 | "blake3-wasm": "^2.1.5", 2235 | "chokidar": "^3.5.3", 2236 | "esbuild": "0.17.19", 2237 | "miniflare": "3.20231030.3", 2238 | "nanoid": "^3.3.3", 2239 | "path-to-regexp": "^6.2.0", 2240 | "resolve.exports": "^2.0.2", 2241 | "selfsigned": "^2.0.1", 2242 | "source-map": "0.6.1", 2243 | "source-map-support": "0.5.21", 2244 | "xxhash-wasm": "^1.0.1" 2245 | }, 2246 | "bin": { 2247 | "wrangler": "bin/wrangler.js", 2248 | "wrangler2": "bin/wrangler.js" 2249 | }, 2250 | "engines": { 2251 | "node": ">=16.17.0" 2252 | }, 2253 | "optionalDependencies": { 2254 | "fsevents": "~2.3.2" 2255 | } 2256 | }, 2257 | "node_modules/wrappy": { 2258 | "version": "1.0.2", 2259 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2260 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2261 | "dev": true 2262 | }, 2263 | "node_modules/ws": { 2264 | "version": "8.18.0", 2265 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 2266 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 2267 | "dev": true, 2268 | "engines": { 2269 | "node": ">=10.0.0" 2270 | }, 2271 | "peerDependencies": { 2272 | "bufferutil": "^4.0.1", 2273 | "utf-8-validate": ">=5.0.2" 2274 | }, 2275 | "peerDependenciesMeta": { 2276 | "bufferutil": { 2277 | "optional": true 2278 | }, 2279 | "utf-8-validate": { 2280 | "optional": true 2281 | } 2282 | } 2283 | }, 2284 | "node_modules/xxhash-wasm": { 2285 | "version": "1.0.1", 2286 | "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.1.tgz", 2287 | "integrity": "sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==", 2288 | "dev": true 2289 | }, 2290 | "node_modules/yocto-queue": { 2291 | "version": "0.1.0", 2292 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2293 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2294 | "dev": true, 2295 | "engines": { 2296 | "node": ">=10" 2297 | }, 2298 | "funding": { 2299 | "url": "https://github.com/sponsors/sindresorhus" 2300 | } 2301 | }, 2302 | "node_modules/youch": { 2303 | "version": "3.3.4", 2304 | "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 2305 | "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 2306 | "dev": true, 2307 | "license": "MIT", 2308 | "dependencies": { 2309 | "cookie": "^0.7.1", 2310 | "mustache": "^4.2.0", 2311 | "stacktracey": "^2.1.8" 2312 | } 2313 | }, 2314 | "node_modules/zod": { 2315 | "version": "3.23.8", 2316 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", 2317 | "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", 2318 | "dev": true, 2319 | "funding": { 2320 | "url": "https://github.com/sponsors/colinhacks" 2321 | } 2322 | } 2323 | }, 2324 | "dependencies": { 2325 | "@cloudflare/kv-asset-handler": { 2326 | "version": "0.2.0", 2327 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", 2328 | "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", 2329 | "dev": true, 2330 | "requires": { 2331 | "mime": "^3.0.0" 2332 | } 2333 | }, 2334 | "@cloudflare/workerd-darwin-64": { 2335 | "version": "1.20231030.0", 2336 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20231030.0.tgz", 2337 | "integrity": "sha512-J4PQ9utPxLya9yHdMMx3AZeC5M/6FxcoYw6jo9jbDDFTy+a4Gslqf4Im9We3aeOEdPXa3tgQHVQOSelJSZLhIw==", 2338 | "dev": true, 2339 | "optional": true 2340 | }, 2341 | "@cloudflare/workerd-darwin-arm64": { 2342 | "version": "1.20231030.0", 2343 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20231030.0.tgz", 2344 | "integrity": "sha512-WSJJjm11Del4hSneiNB7wTXGtBXI4QMCH9l5qf4iT5PAW8cESGcCmdHtWDWDtGAAGcvmLT04KNvmum92vRKKQQ==", 2345 | "dev": true, 2346 | "optional": true 2347 | }, 2348 | "@cloudflare/workerd-linux-64": { 2349 | "version": "1.20231030.0", 2350 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20231030.0.tgz", 2351 | "integrity": "sha512-2HUeRTvoCC17fxE0qdBeR7J9dO8j4A8ZbdcvY8pZxdk+zERU6+N03RTbk/dQMU488PwiDvcC3zZqS4gwLfVT8g==", 2352 | "dev": true, 2353 | "optional": true 2354 | }, 2355 | "@cloudflare/workerd-linux-arm64": { 2356 | "version": "1.20231030.0", 2357 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20231030.0.tgz", 2358 | "integrity": "sha512-4/GK5zHh+9JbUI6Z5xTCM0ZmpKKHk7vu9thmHjUxtz+o8Ne9DoD7DlDvXQWgMF6XGaTubDWyp3ttn+Qv8jDFuQ==", 2359 | "dev": true, 2360 | "optional": true 2361 | }, 2362 | "@cloudflare/workerd-windows-64": { 2363 | "version": "1.20231030.0", 2364 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20231030.0.tgz", 2365 | "integrity": "sha512-fb/Jgj8Yqy3PO1jLhk7mTrHMkR8jklpbQFud6rL/aMAn5d6MQbaSrYOCjzkKGp0Zng8D2LIzSl+Fc0C9Sggxjg==", 2366 | "dev": true, 2367 | "optional": true 2368 | }, 2369 | "@cloudflare/workers-types": { 2370 | "version": "3.16.0", 2371 | "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-3.16.0.tgz", 2372 | "integrity": "sha512-gaBUSaKS65mN3iKZEgichbXYEmAa/pXkc5Gbt+1BptYphdGkj09ggdsiE4w8g0F/uI1g36QaTKrzVnBAWMipvQ==", 2373 | "dev": true 2374 | }, 2375 | "@esbuild-plugins/node-globals-polyfill": { 2376 | "version": "0.2.3", 2377 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", 2378 | "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", 2379 | "dev": true, 2380 | "requires": {} 2381 | }, 2382 | "@esbuild-plugins/node-modules-polyfill": { 2383 | "version": "0.2.2", 2384 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz", 2385 | "integrity": "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==", 2386 | "dev": true, 2387 | "requires": { 2388 | "escape-string-regexp": "^4.0.0", 2389 | "rollup-plugin-node-polyfills": "^0.2.1" 2390 | } 2391 | }, 2392 | "@esbuild/android-arm": { 2393 | "version": "0.17.19", 2394 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 2395 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 2396 | "dev": true, 2397 | "optional": true 2398 | }, 2399 | "@esbuild/android-arm64": { 2400 | "version": "0.17.19", 2401 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 2402 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 2403 | "dev": true, 2404 | "optional": true 2405 | }, 2406 | "@esbuild/android-x64": { 2407 | "version": "0.17.19", 2408 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 2409 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 2410 | "dev": true, 2411 | "optional": true 2412 | }, 2413 | "@esbuild/darwin-arm64": { 2414 | "version": "0.17.19", 2415 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 2416 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 2417 | "dev": true, 2418 | "optional": true 2419 | }, 2420 | "@esbuild/darwin-x64": { 2421 | "version": "0.17.19", 2422 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 2423 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 2424 | "dev": true, 2425 | "optional": true 2426 | }, 2427 | "@esbuild/freebsd-arm64": { 2428 | "version": "0.17.19", 2429 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 2430 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 2431 | "dev": true, 2432 | "optional": true 2433 | }, 2434 | "@esbuild/freebsd-x64": { 2435 | "version": "0.17.19", 2436 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 2437 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 2438 | "dev": true, 2439 | "optional": true 2440 | }, 2441 | "@esbuild/linux-arm": { 2442 | "version": "0.17.19", 2443 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 2444 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 2445 | "dev": true, 2446 | "optional": true 2447 | }, 2448 | "@esbuild/linux-arm64": { 2449 | "version": "0.17.19", 2450 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 2451 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 2452 | "dev": true, 2453 | "optional": true 2454 | }, 2455 | "@esbuild/linux-ia32": { 2456 | "version": "0.17.19", 2457 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 2458 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 2459 | "dev": true, 2460 | "optional": true 2461 | }, 2462 | "@esbuild/linux-loong64": { 2463 | "version": "0.17.19", 2464 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 2465 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 2466 | "dev": true, 2467 | "optional": true 2468 | }, 2469 | "@esbuild/linux-mips64el": { 2470 | "version": "0.17.19", 2471 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 2472 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 2473 | "dev": true, 2474 | "optional": true 2475 | }, 2476 | "@esbuild/linux-ppc64": { 2477 | "version": "0.17.19", 2478 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 2479 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 2480 | "dev": true, 2481 | "optional": true 2482 | }, 2483 | "@esbuild/linux-riscv64": { 2484 | "version": "0.17.19", 2485 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 2486 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 2487 | "dev": true, 2488 | "optional": true 2489 | }, 2490 | "@esbuild/linux-s390x": { 2491 | "version": "0.17.19", 2492 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 2493 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 2494 | "dev": true, 2495 | "optional": true 2496 | }, 2497 | "@esbuild/linux-x64": { 2498 | "version": "0.17.19", 2499 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 2500 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 2501 | "dev": true, 2502 | "optional": true 2503 | }, 2504 | "@esbuild/netbsd-x64": { 2505 | "version": "0.17.19", 2506 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 2507 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 2508 | "dev": true, 2509 | "optional": true 2510 | }, 2511 | "@esbuild/openbsd-x64": { 2512 | "version": "0.17.19", 2513 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 2514 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 2515 | "dev": true, 2516 | "optional": true 2517 | }, 2518 | "@esbuild/sunos-x64": { 2519 | "version": "0.17.19", 2520 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 2521 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 2522 | "dev": true, 2523 | "optional": true 2524 | }, 2525 | "@esbuild/win32-arm64": { 2526 | "version": "0.17.19", 2527 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 2528 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 2529 | "dev": true, 2530 | "optional": true 2531 | }, 2532 | "@esbuild/win32-ia32": { 2533 | "version": "0.17.19", 2534 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 2535 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 2536 | "dev": true, 2537 | "optional": true 2538 | }, 2539 | "@esbuild/win32-x64": { 2540 | "version": "0.17.19", 2541 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 2542 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 2543 | "dev": true, 2544 | "optional": true 2545 | }, 2546 | "@eslint/eslintrc": { 2547 | "version": "1.3.1", 2548 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", 2549 | "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", 2550 | "dev": true, 2551 | "requires": { 2552 | "ajv": "^6.12.4", 2553 | "debug": "^4.3.2", 2554 | "espree": "^9.4.0", 2555 | "globals": "^13.15.0", 2556 | "ignore": "^5.2.0", 2557 | "import-fresh": "^3.2.1", 2558 | "js-yaml": "^4.1.0", 2559 | "minimatch": "^3.1.2", 2560 | "strip-json-comments": "^3.1.1" 2561 | } 2562 | }, 2563 | "@fastify/busboy": { 2564 | "version": "2.1.1", 2565 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 2566 | "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 2567 | "dev": true 2568 | }, 2569 | "@humanwhocodes/config-array": { 2570 | "version": "0.10.4", 2571 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", 2572 | "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", 2573 | "dev": true, 2574 | "requires": { 2575 | "@humanwhocodes/object-schema": "^1.2.1", 2576 | "debug": "^4.1.1", 2577 | "minimatch": "^3.0.4" 2578 | } 2579 | }, 2580 | "@humanwhocodes/gitignore-to-minimatch": { 2581 | "version": "1.0.2", 2582 | "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", 2583 | "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", 2584 | "dev": true 2585 | }, 2586 | "@humanwhocodes/module-importer": { 2587 | "version": "1.0.1", 2588 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 2589 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 2590 | "dev": true 2591 | }, 2592 | "@humanwhocodes/object-schema": { 2593 | "version": "1.2.1", 2594 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 2595 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 2596 | "dev": true 2597 | }, 2598 | "@nodelib/fs.scandir": { 2599 | "version": "2.1.5", 2600 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 2601 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 2602 | "dev": true, 2603 | "requires": { 2604 | "@nodelib/fs.stat": "2.0.5", 2605 | "run-parallel": "^1.1.9" 2606 | } 2607 | }, 2608 | "@nodelib/fs.stat": { 2609 | "version": "2.0.5", 2610 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 2611 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 2612 | "dev": true 2613 | }, 2614 | "@nodelib/fs.walk": { 2615 | "version": "1.2.8", 2616 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2617 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2618 | "dev": true, 2619 | "requires": { 2620 | "@nodelib/fs.scandir": "2.1.5", 2621 | "fastq": "^1.6.0" 2622 | } 2623 | }, 2624 | "acorn": { 2625 | "version": "8.12.1", 2626 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", 2627 | "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", 2628 | "dev": true 2629 | }, 2630 | "acorn-jsx": { 2631 | "version": "5.3.2", 2632 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2633 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2634 | "dev": true, 2635 | "requires": {} 2636 | }, 2637 | "acorn-walk": { 2638 | "version": "8.3.3", 2639 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", 2640 | "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", 2641 | "dev": true, 2642 | "requires": { 2643 | "acorn": "^8.11.0" 2644 | } 2645 | }, 2646 | "ajv": { 2647 | "version": "6.12.6", 2648 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2649 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2650 | "dev": true, 2651 | "requires": { 2652 | "fast-deep-equal": "^3.1.1", 2653 | "fast-json-stable-stringify": "^2.0.0", 2654 | "json-schema-traverse": "^0.4.1", 2655 | "uri-js": "^4.2.2" 2656 | } 2657 | }, 2658 | "ansi-regex": { 2659 | "version": "5.0.1", 2660 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2661 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2662 | "dev": true 2663 | }, 2664 | "ansi-styles": { 2665 | "version": "4.3.0", 2666 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2667 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2668 | "dev": true, 2669 | "requires": { 2670 | "color-convert": "^2.0.1" 2671 | } 2672 | }, 2673 | "anymatch": { 2674 | "version": "3.1.2", 2675 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 2676 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 2677 | "dev": true, 2678 | "requires": { 2679 | "normalize-path": "^3.0.0", 2680 | "picomatch": "^2.0.4" 2681 | } 2682 | }, 2683 | "argparse": { 2684 | "version": "2.0.1", 2685 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2686 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 2687 | "dev": true 2688 | }, 2689 | "array-union": { 2690 | "version": "2.1.0", 2691 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 2692 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 2693 | "dev": true 2694 | }, 2695 | "as-table": { 2696 | "version": "1.0.55", 2697 | "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 2698 | "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 2699 | "dev": true, 2700 | "requires": { 2701 | "printable-characters": "^1.0.42" 2702 | } 2703 | }, 2704 | "balanced-match": { 2705 | "version": "1.0.2", 2706 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2707 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 2708 | "dev": true 2709 | }, 2710 | "binary-extensions": { 2711 | "version": "2.2.0", 2712 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 2713 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 2714 | "dev": true 2715 | }, 2716 | "blake3-wasm": { 2717 | "version": "2.1.5", 2718 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 2719 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 2720 | "dev": true 2721 | }, 2722 | "brace-expansion": { 2723 | "version": "1.1.11", 2724 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2725 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2726 | "dev": true, 2727 | "requires": { 2728 | "balanced-match": "^1.0.0", 2729 | "concat-map": "0.0.1" 2730 | } 2731 | }, 2732 | "braces": { 2733 | "version": "3.0.3", 2734 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 2735 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 2736 | "dev": true, 2737 | "requires": { 2738 | "fill-range": "^7.1.1" 2739 | } 2740 | }, 2741 | "buffer-from": { 2742 | "version": "1.1.2", 2743 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 2744 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 2745 | "dev": true 2746 | }, 2747 | "callsites": { 2748 | "version": "3.1.0", 2749 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2750 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2751 | "dev": true 2752 | }, 2753 | "capnp-ts": { 2754 | "version": "0.7.0", 2755 | "resolved": "https://registry.npmjs.org/capnp-ts/-/capnp-ts-0.7.0.tgz", 2756 | "integrity": "sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==", 2757 | "dev": true, 2758 | "requires": { 2759 | "debug": "^4.3.1", 2760 | "tslib": "^2.2.0" 2761 | } 2762 | }, 2763 | "chalk": { 2764 | "version": "4.1.2", 2765 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2766 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2767 | "dev": true, 2768 | "requires": { 2769 | "ansi-styles": "^4.1.0", 2770 | "supports-color": "^7.1.0" 2771 | } 2772 | }, 2773 | "chokidar": { 2774 | "version": "3.5.3", 2775 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 2776 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 2777 | "dev": true, 2778 | "requires": { 2779 | "anymatch": "~3.1.2", 2780 | "braces": "~3.0.2", 2781 | "fsevents": "~2.3.2", 2782 | "glob-parent": "~5.1.2", 2783 | "is-binary-path": "~2.1.0", 2784 | "is-glob": "~4.0.1", 2785 | "normalize-path": "~3.0.0", 2786 | "readdirp": "~3.6.0" 2787 | } 2788 | }, 2789 | "color-convert": { 2790 | "version": "2.0.1", 2791 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2792 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2793 | "dev": true, 2794 | "requires": { 2795 | "color-name": "~1.1.4" 2796 | } 2797 | }, 2798 | "color-name": { 2799 | "version": "1.1.4", 2800 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2801 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2802 | "dev": true 2803 | }, 2804 | "concat-map": { 2805 | "version": "0.0.1", 2806 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2807 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2808 | "dev": true 2809 | }, 2810 | "cookie": { 2811 | "version": "0.7.2", 2812 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 2813 | "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 2814 | "dev": true 2815 | }, 2816 | "cross-spawn": { 2817 | "version": "7.0.3", 2818 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2819 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2820 | "dev": true, 2821 | "requires": { 2822 | "path-key": "^3.1.0", 2823 | "shebang-command": "^2.0.0", 2824 | "which": "^2.0.1" 2825 | } 2826 | }, 2827 | "data-uri-to-buffer": { 2828 | "version": "2.0.2", 2829 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 2830 | "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 2831 | "dev": true 2832 | }, 2833 | "debug": { 2834 | "version": "4.3.4", 2835 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 2836 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2837 | "dev": true, 2838 | "requires": { 2839 | "ms": "2.1.2" 2840 | } 2841 | }, 2842 | "deep-is": { 2843 | "version": "0.1.4", 2844 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2845 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2846 | "dev": true 2847 | }, 2848 | "dir-glob": { 2849 | "version": "3.0.1", 2850 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", 2851 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", 2852 | "dev": true, 2853 | "requires": { 2854 | "path-type": "^4.0.0" 2855 | } 2856 | }, 2857 | "doctrine": { 2858 | "version": "3.0.0", 2859 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 2860 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 2861 | "dev": true, 2862 | "requires": { 2863 | "esutils": "^2.0.2" 2864 | } 2865 | }, 2866 | "esbuild": { 2867 | "version": "0.17.19", 2868 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", 2869 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 2870 | "dev": true, 2871 | "requires": { 2872 | "@esbuild/android-arm": "0.17.19", 2873 | "@esbuild/android-arm64": "0.17.19", 2874 | "@esbuild/android-x64": "0.17.19", 2875 | "@esbuild/darwin-arm64": "0.17.19", 2876 | "@esbuild/darwin-x64": "0.17.19", 2877 | "@esbuild/freebsd-arm64": "0.17.19", 2878 | "@esbuild/freebsd-x64": "0.17.19", 2879 | "@esbuild/linux-arm": "0.17.19", 2880 | "@esbuild/linux-arm64": "0.17.19", 2881 | "@esbuild/linux-ia32": "0.17.19", 2882 | "@esbuild/linux-loong64": "0.17.19", 2883 | "@esbuild/linux-mips64el": "0.17.19", 2884 | "@esbuild/linux-ppc64": "0.17.19", 2885 | "@esbuild/linux-riscv64": "0.17.19", 2886 | "@esbuild/linux-s390x": "0.17.19", 2887 | "@esbuild/linux-x64": "0.17.19", 2888 | "@esbuild/netbsd-x64": "0.17.19", 2889 | "@esbuild/openbsd-x64": "0.17.19", 2890 | "@esbuild/sunos-x64": "0.17.19", 2891 | "@esbuild/win32-arm64": "0.17.19", 2892 | "@esbuild/win32-ia32": "0.17.19", 2893 | "@esbuild/win32-x64": "0.17.19" 2894 | } 2895 | }, 2896 | "escape-string-regexp": { 2897 | "version": "4.0.0", 2898 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2899 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2900 | "dev": true 2901 | }, 2902 | "eslint": { 2903 | "version": "8.23.0", 2904 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", 2905 | "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", 2906 | "dev": true, 2907 | "requires": { 2908 | "@eslint/eslintrc": "^1.3.1", 2909 | "@humanwhocodes/config-array": "^0.10.4", 2910 | "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", 2911 | "@humanwhocodes/module-importer": "^1.0.1", 2912 | "ajv": "^6.10.0", 2913 | "chalk": "^4.0.0", 2914 | "cross-spawn": "^7.0.2", 2915 | "debug": "^4.3.2", 2916 | "doctrine": "^3.0.0", 2917 | "escape-string-regexp": "^4.0.0", 2918 | "eslint-scope": "^7.1.1", 2919 | "eslint-utils": "^3.0.0", 2920 | "eslint-visitor-keys": "^3.3.0", 2921 | "espree": "^9.4.0", 2922 | "esquery": "^1.4.0", 2923 | "esutils": "^2.0.2", 2924 | "fast-deep-equal": "^3.1.3", 2925 | "file-entry-cache": "^6.0.1", 2926 | "find-up": "^5.0.0", 2927 | "functional-red-black-tree": "^1.0.1", 2928 | "glob-parent": "^6.0.1", 2929 | "globals": "^13.15.0", 2930 | "globby": "^11.1.0", 2931 | "grapheme-splitter": "^1.0.4", 2932 | "ignore": "^5.2.0", 2933 | "import-fresh": "^3.0.0", 2934 | "imurmurhash": "^0.1.4", 2935 | "is-glob": "^4.0.0", 2936 | "js-yaml": "^4.1.0", 2937 | "json-stable-stringify-without-jsonify": "^1.0.1", 2938 | "levn": "^0.4.1", 2939 | "lodash.merge": "^4.6.2", 2940 | "minimatch": "^3.1.2", 2941 | "natural-compare": "^1.4.0", 2942 | "optionator": "^0.9.1", 2943 | "regexpp": "^3.2.0", 2944 | "strip-ansi": "^6.0.1", 2945 | "strip-json-comments": "^3.1.0", 2946 | "text-table": "^0.2.0" 2947 | }, 2948 | "dependencies": { 2949 | "glob-parent": { 2950 | "version": "6.0.2", 2951 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2952 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2953 | "dev": true, 2954 | "requires": { 2955 | "is-glob": "^4.0.3" 2956 | } 2957 | } 2958 | } 2959 | }, 2960 | "eslint-config-google": { 2961 | "version": "0.14.0", 2962 | "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", 2963 | "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", 2964 | "dev": true, 2965 | "requires": {} 2966 | }, 2967 | "eslint-scope": { 2968 | "version": "7.1.1", 2969 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 2970 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 2971 | "dev": true, 2972 | "requires": { 2973 | "esrecurse": "^4.3.0", 2974 | "estraverse": "^5.2.0" 2975 | } 2976 | }, 2977 | "eslint-utils": { 2978 | "version": "3.0.0", 2979 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 2980 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 2981 | "dev": true, 2982 | "requires": { 2983 | "eslint-visitor-keys": "^2.0.0" 2984 | }, 2985 | "dependencies": { 2986 | "eslint-visitor-keys": { 2987 | "version": "2.1.0", 2988 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 2989 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 2990 | "dev": true 2991 | } 2992 | } 2993 | }, 2994 | "eslint-visitor-keys": { 2995 | "version": "3.3.0", 2996 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 2997 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 2998 | "dev": true 2999 | }, 3000 | "espree": { 3001 | "version": "9.4.0", 3002 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", 3003 | "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", 3004 | "dev": true, 3005 | "requires": { 3006 | "acorn": "^8.8.0", 3007 | "acorn-jsx": "^5.3.2", 3008 | "eslint-visitor-keys": "^3.3.0" 3009 | } 3010 | }, 3011 | "esquery": { 3012 | "version": "1.4.0", 3013 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 3014 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 3015 | "dev": true, 3016 | "requires": { 3017 | "estraverse": "^5.1.0" 3018 | } 3019 | }, 3020 | "esrecurse": { 3021 | "version": "4.3.0", 3022 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 3023 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 3024 | "dev": true, 3025 | "requires": { 3026 | "estraverse": "^5.2.0" 3027 | } 3028 | }, 3029 | "estraverse": { 3030 | "version": "5.3.0", 3031 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 3032 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 3033 | "dev": true 3034 | }, 3035 | "estree-walker": { 3036 | "version": "0.6.1", 3037 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 3038 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 3039 | "dev": true 3040 | }, 3041 | "esutils": { 3042 | "version": "2.0.3", 3043 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 3044 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 3045 | "dev": true 3046 | }, 3047 | "exit-hook": { 3048 | "version": "2.2.1", 3049 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 3050 | "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 3051 | "dev": true 3052 | }, 3053 | "fast-deep-equal": { 3054 | "version": "3.1.3", 3055 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 3056 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 3057 | "dev": true 3058 | }, 3059 | "fast-glob": { 3060 | "version": "3.2.11", 3061 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 3062 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 3063 | "dev": true, 3064 | "requires": { 3065 | "@nodelib/fs.stat": "^2.0.2", 3066 | "@nodelib/fs.walk": "^1.2.3", 3067 | "glob-parent": "^5.1.2", 3068 | "merge2": "^1.3.0", 3069 | "micromatch": "^4.0.4" 3070 | } 3071 | }, 3072 | "fast-json-stable-stringify": { 3073 | "version": "2.1.0", 3074 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 3075 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 3076 | "dev": true 3077 | }, 3078 | "fast-levenshtein": { 3079 | "version": "2.0.6", 3080 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 3081 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 3082 | "dev": true 3083 | }, 3084 | "fastq": { 3085 | "version": "1.13.0", 3086 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 3087 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 3088 | "dev": true, 3089 | "requires": { 3090 | "reusify": "^1.0.4" 3091 | } 3092 | }, 3093 | "file-entry-cache": { 3094 | "version": "6.0.1", 3095 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 3096 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 3097 | "dev": true, 3098 | "requires": { 3099 | "flat-cache": "^3.0.4" 3100 | } 3101 | }, 3102 | "fill-range": { 3103 | "version": "7.1.1", 3104 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 3105 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 3106 | "dev": true, 3107 | "requires": { 3108 | "to-regex-range": "^5.0.1" 3109 | } 3110 | }, 3111 | "find-up": { 3112 | "version": "5.0.0", 3113 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 3114 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 3115 | "dev": true, 3116 | "requires": { 3117 | "locate-path": "^6.0.0", 3118 | "path-exists": "^4.0.0" 3119 | } 3120 | }, 3121 | "flat-cache": { 3122 | "version": "3.0.4", 3123 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 3124 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 3125 | "dev": true, 3126 | "requires": { 3127 | "flatted": "^3.1.0", 3128 | "rimraf": "^3.0.2" 3129 | } 3130 | }, 3131 | "flatted": { 3132 | "version": "3.2.7", 3133 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 3134 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 3135 | "dev": true 3136 | }, 3137 | "fs.realpath": { 3138 | "version": "1.0.0", 3139 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 3140 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 3141 | "dev": true 3142 | }, 3143 | "fsevents": { 3144 | "version": "2.3.2", 3145 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 3146 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 3147 | "dev": true, 3148 | "optional": true 3149 | }, 3150 | "functional-red-black-tree": { 3151 | "version": "1.0.1", 3152 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 3153 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", 3154 | "dev": true 3155 | }, 3156 | "get-source": { 3157 | "version": "2.0.12", 3158 | "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 3159 | "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 3160 | "dev": true, 3161 | "requires": { 3162 | "data-uri-to-buffer": "^2.0.0", 3163 | "source-map": "^0.6.1" 3164 | } 3165 | }, 3166 | "glob": { 3167 | "version": "7.2.3", 3168 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 3169 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 3170 | "dev": true, 3171 | "requires": { 3172 | "fs.realpath": "^1.0.0", 3173 | "inflight": "^1.0.4", 3174 | "inherits": "2", 3175 | "minimatch": "^3.1.1", 3176 | "once": "^1.3.0", 3177 | "path-is-absolute": "^1.0.0" 3178 | } 3179 | }, 3180 | "glob-parent": { 3181 | "version": "5.1.2", 3182 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 3183 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 3184 | "dev": true, 3185 | "requires": { 3186 | "is-glob": "^4.0.1" 3187 | } 3188 | }, 3189 | "glob-to-regexp": { 3190 | "version": "0.4.1", 3191 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 3192 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 3193 | "dev": true 3194 | }, 3195 | "globals": { 3196 | "version": "13.17.0", 3197 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", 3198 | "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", 3199 | "dev": true, 3200 | "requires": { 3201 | "type-fest": "^0.20.2" 3202 | } 3203 | }, 3204 | "globby": { 3205 | "version": "11.1.0", 3206 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", 3207 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", 3208 | "dev": true, 3209 | "requires": { 3210 | "array-union": "^2.1.0", 3211 | "dir-glob": "^3.0.1", 3212 | "fast-glob": "^3.2.9", 3213 | "ignore": "^5.2.0", 3214 | "merge2": "^1.4.1", 3215 | "slash": "^3.0.0" 3216 | } 3217 | }, 3218 | "grapheme-splitter": { 3219 | "version": "1.0.4", 3220 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 3221 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 3222 | "dev": true 3223 | }, 3224 | "has-flag": { 3225 | "version": "4.0.0", 3226 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3227 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 3228 | "dev": true 3229 | }, 3230 | "ignore": { 3231 | "version": "5.2.0", 3232 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", 3233 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", 3234 | "dev": true 3235 | }, 3236 | "import-fresh": { 3237 | "version": "3.3.0", 3238 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 3239 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 3240 | "dev": true, 3241 | "requires": { 3242 | "parent-module": "^1.0.0", 3243 | "resolve-from": "^4.0.0" 3244 | } 3245 | }, 3246 | "imurmurhash": { 3247 | "version": "0.1.4", 3248 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 3249 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 3250 | "dev": true 3251 | }, 3252 | "inflight": { 3253 | "version": "1.0.6", 3254 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 3255 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 3256 | "dev": true, 3257 | "requires": { 3258 | "once": "^1.3.0", 3259 | "wrappy": "1" 3260 | } 3261 | }, 3262 | "inherits": { 3263 | "version": "2.0.4", 3264 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3265 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 3266 | "dev": true 3267 | }, 3268 | "is-binary-path": { 3269 | "version": "2.1.0", 3270 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 3271 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 3272 | "dev": true, 3273 | "requires": { 3274 | "binary-extensions": "^2.0.0" 3275 | } 3276 | }, 3277 | "is-extglob": { 3278 | "version": "2.1.1", 3279 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3280 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 3281 | "dev": true 3282 | }, 3283 | "is-glob": { 3284 | "version": "4.0.3", 3285 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3286 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3287 | "dev": true, 3288 | "requires": { 3289 | "is-extglob": "^2.1.1" 3290 | } 3291 | }, 3292 | "is-number": { 3293 | "version": "7.0.0", 3294 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3295 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3296 | "dev": true 3297 | }, 3298 | "isexe": { 3299 | "version": "2.0.0", 3300 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3301 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3302 | "dev": true 3303 | }, 3304 | "js-yaml": { 3305 | "version": "4.1.0", 3306 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 3307 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 3308 | "dev": true, 3309 | "requires": { 3310 | "argparse": "^2.0.1" 3311 | } 3312 | }, 3313 | "json-schema-traverse": { 3314 | "version": "0.4.1", 3315 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 3316 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 3317 | "dev": true 3318 | }, 3319 | "json-stable-stringify-without-jsonify": { 3320 | "version": "1.0.1", 3321 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 3322 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 3323 | "dev": true 3324 | }, 3325 | "levn": { 3326 | "version": "0.4.1", 3327 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 3328 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 3329 | "dev": true, 3330 | "requires": { 3331 | "prelude-ls": "^1.2.1", 3332 | "type-check": "~0.4.0" 3333 | } 3334 | }, 3335 | "locate-path": { 3336 | "version": "6.0.0", 3337 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 3338 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 3339 | "dev": true, 3340 | "requires": { 3341 | "p-locate": "^5.0.0" 3342 | } 3343 | }, 3344 | "lodash.merge": { 3345 | "version": "4.6.2", 3346 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 3347 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 3348 | "dev": true 3349 | }, 3350 | "magic-string": { 3351 | "version": "0.25.9", 3352 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 3353 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 3354 | "dev": true, 3355 | "requires": { 3356 | "sourcemap-codec": "^1.4.8" 3357 | } 3358 | }, 3359 | "merge2": { 3360 | "version": "1.4.1", 3361 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 3362 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 3363 | "dev": true 3364 | }, 3365 | "micromatch": { 3366 | "version": "4.0.5", 3367 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 3368 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 3369 | "dev": true, 3370 | "requires": { 3371 | "braces": "^3.0.2", 3372 | "picomatch": "^2.3.1" 3373 | } 3374 | }, 3375 | "mime": { 3376 | "version": "3.0.0", 3377 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 3378 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 3379 | "dev": true 3380 | }, 3381 | "miniflare": { 3382 | "version": "3.20231030.3", 3383 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20231030.3.tgz", 3384 | "integrity": "sha512-lquHSh0XiO8uoWDujOLHtDS9mkUTJTc5C5amiQ6A++5y0f+DWiMqbDBvvwjlYf4Dvqk6ChFya9dztk7fg2ZVxA==", 3385 | "dev": true, 3386 | "requires": { 3387 | "acorn": "^8.8.0", 3388 | "acorn-walk": "^8.2.0", 3389 | "capnp-ts": "^0.7.0", 3390 | "exit-hook": "^2.2.1", 3391 | "glob-to-regexp": "^0.4.1", 3392 | "source-map-support": "0.5.21", 3393 | "stoppable": "^1.1.0", 3394 | "undici": "^5.22.1", 3395 | "workerd": "1.20231030.0", 3396 | "ws": "^8.11.0", 3397 | "youch": "^3.2.2", 3398 | "zod": "^3.20.6" 3399 | } 3400 | }, 3401 | "minimatch": { 3402 | "version": "3.1.2", 3403 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3404 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3405 | "dev": true, 3406 | "requires": { 3407 | "brace-expansion": "^1.1.7" 3408 | } 3409 | }, 3410 | "ms": { 3411 | "version": "2.1.2", 3412 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3413 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 3414 | "dev": true 3415 | }, 3416 | "mustache": { 3417 | "version": "4.2.0", 3418 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 3419 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 3420 | "dev": true 3421 | }, 3422 | "nanoid": { 3423 | "version": "3.3.4", 3424 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 3425 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 3426 | "dev": true 3427 | }, 3428 | "natural-compare": { 3429 | "version": "1.4.0", 3430 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3431 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 3432 | "dev": true 3433 | }, 3434 | "node-forge": { 3435 | "version": "1.3.1", 3436 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", 3437 | "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", 3438 | "dev": true 3439 | }, 3440 | "normalize-path": { 3441 | "version": "3.0.0", 3442 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 3443 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 3444 | "dev": true 3445 | }, 3446 | "once": { 3447 | "version": "1.4.0", 3448 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3449 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 3450 | "dev": true, 3451 | "requires": { 3452 | "wrappy": "1" 3453 | } 3454 | }, 3455 | "optionator": { 3456 | "version": "0.9.1", 3457 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 3458 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 3459 | "dev": true, 3460 | "requires": { 3461 | "deep-is": "^0.1.3", 3462 | "fast-levenshtein": "^2.0.6", 3463 | "levn": "^0.4.1", 3464 | "prelude-ls": "^1.2.1", 3465 | "type-check": "^0.4.0", 3466 | "word-wrap": "^1.2.3" 3467 | } 3468 | }, 3469 | "p-limit": { 3470 | "version": "3.1.0", 3471 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3472 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3473 | "dev": true, 3474 | "requires": { 3475 | "yocto-queue": "^0.1.0" 3476 | } 3477 | }, 3478 | "p-locate": { 3479 | "version": "5.0.0", 3480 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3481 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3482 | "dev": true, 3483 | "requires": { 3484 | "p-limit": "^3.0.2" 3485 | } 3486 | }, 3487 | "parent-module": { 3488 | "version": "1.0.1", 3489 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3490 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3491 | "dev": true, 3492 | "requires": { 3493 | "callsites": "^3.0.0" 3494 | } 3495 | }, 3496 | "path-exists": { 3497 | "version": "4.0.0", 3498 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3499 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3500 | "dev": true 3501 | }, 3502 | "path-is-absolute": { 3503 | "version": "1.0.1", 3504 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3505 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 3506 | "dev": true 3507 | }, 3508 | "path-key": { 3509 | "version": "3.1.1", 3510 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3511 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3512 | "dev": true 3513 | }, 3514 | "path-to-regexp": { 3515 | "version": "6.2.1", 3516 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", 3517 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", 3518 | "dev": true 3519 | }, 3520 | "path-type": { 3521 | "version": "4.0.0", 3522 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 3523 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 3524 | "dev": true 3525 | }, 3526 | "picomatch": { 3527 | "version": "2.3.1", 3528 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 3529 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 3530 | "dev": true 3531 | }, 3532 | "prelude-ls": { 3533 | "version": "1.2.1", 3534 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3535 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 3536 | "dev": true 3537 | }, 3538 | "printable-characters": { 3539 | "version": "1.0.42", 3540 | "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 3541 | "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 3542 | "dev": true 3543 | }, 3544 | "punycode": { 3545 | "version": "2.1.1", 3546 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3547 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 3548 | "dev": true 3549 | }, 3550 | "queue-microtask": { 3551 | "version": "1.2.3", 3552 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3553 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 3554 | "dev": true 3555 | }, 3556 | "readdirp": { 3557 | "version": "3.6.0", 3558 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 3559 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 3560 | "dev": true, 3561 | "requires": { 3562 | "picomatch": "^2.2.1" 3563 | } 3564 | }, 3565 | "regexpp": { 3566 | "version": "3.2.0", 3567 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 3568 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 3569 | "dev": true 3570 | }, 3571 | "resolve-from": { 3572 | "version": "4.0.0", 3573 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3574 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 3575 | "dev": true 3576 | }, 3577 | "resolve.exports": { 3578 | "version": "2.0.2", 3579 | "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", 3580 | "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", 3581 | "dev": true 3582 | }, 3583 | "reusify": { 3584 | "version": "1.0.4", 3585 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 3586 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 3587 | "dev": true 3588 | }, 3589 | "rimraf": { 3590 | "version": "3.0.2", 3591 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 3592 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 3593 | "dev": true, 3594 | "requires": { 3595 | "glob": "^7.1.3" 3596 | } 3597 | }, 3598 | "rollup-plugin-inject": { 3599 | "version": "3.0.2", 3600 | "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", 3601 | "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", 3602 | "dev": true, 3603 | "requires": { 3604 | "estree-walker": "^0.6.1", 3605 | "magic-string": "^0.25.3", 3606 | "rollup-pluginutils": "^2.8.1" 3607 | } 3608 | }, 3609 | "rollup-plugin-node-polyfills": { 3610 | "version": "0.2.1", 3611 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", 3612 | "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", 3613 | "dev": true, 3614 | "requires": { 3615 | "rollup-plugin-inject": "^3.0.0" 3616 | } 3617 | }, 3618 | "rollup-pluginutils": { 3619 | "version": "2.8.2", 3620 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 3621 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 3622 | "dev": true, 3623 | "requires": { 3624 | "estree-walker": "^0.6.1" 3625 | } 3626 | }, 3627 | "run-parallel": { 3628 | "version": "1.2.0", 3629 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 3630 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 3631 | "dev": true, 3632 | "requires": { 3633 | "queue-microtask": "^1.2.2" 3634 | } 3635 | }, 3636 | "selfsigned": { 3637 | "version": "2.1.1", 3638 | "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", 3639 | "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", 3640 | "dev": true, 3641 | "requires": { 3642 | "node-forge": "^1" 3643 | } 3644 | }, 3645 | "shebang-command": { 3646 | "version": "2.0.0", 3647 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3648 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3649 | "dev": true, 3650 | "requires": { 3651 | "shebang-regex": "^3.0.0" 3652 | } 3653 | }, 3654 | "shebang-regex": { 3655 | "version": "3.0.0", 3656 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3657 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3658 | "dev": true 3659 | }, 3660 | "slash": { 3661 | "version": "3.0.0", 3662 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", 3663 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", 3664 | "dev": true 3665 | }, 3666 | "source-map": { 3667 | "version": "0.6.1", 3668 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3669 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3670 | "dev": true 3671 | }, 3672 | "source-map-support": { 3673 | "version": "0.5.21", 3674 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 3675 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 3676 | "dev": true, 3677 | "requires": { 3678 | "buffer-from": "^1.0.0", 3679 | "source-map": "^0.6.0" 3680 | } 3681 | }, 3682 | "sourcemap-codec": { 3683 | "version": "1.4.8", 3684 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 3685 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 3686 | "dev": true 3687 | }, 3688 | "stacktracey": { 3689 | "version": "2.1.8", 3690 | "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 3691 | "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 3692 | "dev": true, 3693 | "requires": { 3694 | "as-table": "^1.0.36", 3695 | "get-source": "^2.0.12" 3696 | } 3697 | }, 3698 | "stoppable": { 3699 | "version": "1.1.0", 3700 | "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 3701 | "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 3702 | "dev": true 3703 | }, 3704 | "strip-ansi": { 3705 | "version": "6.0.1", 3706 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3707 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3708 | "dev": true, 3709 | "requires": { 3710 | "ansi-regex": "^5.0.1" 3711 | } 3712 | }, 3713 | "strip-json-comments": { 3714 | "version": "3.1.1", 3715 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 3716 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 3717 | "dev": true 3718 | }, 3719 | "supports-color": { 3720 | "version": "7.2.0", 3721 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 3722 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 3723 | "dev": true, 3724 | "requires": { 3725 | "has-flag": "^4.0.0" 3726 | } 3727 | }, 3728 | "text-table": { 3729 | "version": "0.2.0", 3730 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3731 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 3732 | "dev": true 3733 | }, 3734 | "to-regex-range": { 3735 | "version": "5.0.1", 3736 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3737 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3738 | "dev": true, 3739 | "requires": { 3740 | "is-number": "^7.0.0" 3741 | } 3742 | }, 3743 | "tslib": { 3744 | "version": "2.6.3", 3745 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", 3746 | "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", 3747 | "dev": true 3748 | }, 3749 | "type-check": { 3750 | "version": "0.4.0", 3751 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3752 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 3753 | "dev": true, 3754 | "requires": { 3755 | "prelude-ls": "^1.2.1" 3756 | } 3757 | }, 3758 | "type-fest": { 3759 | "version": "0.20.2", 3760 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 3761 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 3762 | "dev": true 3763 | }, 3764 | "typescript": { 3765 | "version": "4.8.2", 3766 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", 3767 | "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", 3768 | "dev": true 3769 | }, 3770 | "undici": { 3771 | "version": "5.28.5", 3772 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz", 3773 | "integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==", 3774 | "dev": true, 3775 | "requires": { 3776 | "@fastify/busboy": "^2.0.0" 3777 | } 3778 | }, 3779 | "uri-js": { 3780 | "version": "4.4.1", 3781 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 3782 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 3783 | "dev": true, 3784 | "requires": { 3785 | "punycode": "^2.1.0" 3786 | } 3787 | }, 3788 | "which": { 3789 | "version": "2.0.2", 3790 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3791 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 3792 | "dev": true, 3793 | "requires": { 3794 | "isexe": "^2.0.0" 3795 | } 3796 | }, 3797 | "word-wrap": { 3798 | "version": "1.2.5", 3799 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 3800 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 3801 | "dev": true 3802 | }, 3803 | "workerd": { 3804 | "version": "1.20231030.0", 3805 | "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20231030.0.tgz", 3806 | "integrity": "sha512-+FSW+d31f8RrjHanFf/R9A+Z0csf3OtsvzdPmAKuwuZm/5HrBv83cvG9fFeTxl7/nI6irUUXIRF9xcj/NomQzQ==", 3807 | "dev": true, 3808 | "requires": { 3809 | "@cloudflare/workerd-darwin-64": "1.20231030.0", 3810 | "@cloudflare/workerd-darwin-arm64": "1.20231030.0", 3811 | "@cloudflare/workerd-linux-64": "1.20231030.0", 3812 | "@cloudflare/workerd-linux-arm64": "1.20231030.0", 3813 | "@cloudflare/workerd-windows-64": "1.20231030.0" 3814 | } 3815 | }, 3816 | "wrangler": { 3817 | "version": "3.19.0", 3818 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.19.0.tgz", 3819 | "integrity": "sha512-pY7xWqkQn6DJ+1vz9YHz2pCftEmK+JCTj9sqnucp0NZnlUiILDmBWegsjjCLZycgfiA62J213N7NvjLPr2LB8w==", 3820 | "dev": true, 3821 | "requires": { 3822 | "@cloudflare/kv-asset-handler": "^0.2.0", 3823 | "@esbuild-plugins/node-globals-polyfill": "^0.2.3", 3824 | "@esbuild-plugins/node-modules-polyfill": "^0.2.2", 3825 | "blake3-wasm": "^2.1.5", 3826 | "chokidar": "^3.5.3", 3827 | "esbuild": "0.17.19", 3828 | "fsevents": "~2.3.2", 3829 | "miniflare": "3.20231030.3", 3830 | "nanoid": "^3.3.3", 3831 | "path-to-regexp": "^6.2.0", 3832 | "resolve.exports": "^2.0.2", 3833 | "selfsigned": "^2.0.1", 3834 | "source-map": "0.6.1", 3835 | "source-map-support": "0.5.21", 3836 | "xxhash-wasm": "^1.0.1" 3837 | } 3838 | }, 3839 | "wrappy": { 3840 | "version": "1.0.2", 3841 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3842 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 3843 | "dev": true 3844 | }, 3845 | "ws": { 3846 | "version": "8.18.0", 3847 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 3848 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 3849 | "dev": true, 3850 | "requires": {} 3851 | }, 3852 | "xxhash-wasm": { 3853 | "version": "1.0.1", 3854 | "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.1.tgz", 3855 | "integrity": "sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==", 3856 | "dev": true 3857 | }, 3858 | "yocto-queue": { 3859 | "version": "0.1.0", 3860 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 3861 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 3862 | "dev": true 3863 | }, 3864 | "youch": { 3865 | "version": "3.3.4", 3866 | "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 3867 | "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 3868 | "dev": true, 3869 | "requires": { 3870 | "cookie": "^0.7.1", 3871 | "mustache": "^4.2.0", 3872 | "stacktracey": "^2.1.8" 3873 | } 3874 | }, 3875 | "zod": { 3876 | "version": "3.23.8", 3877 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", 3878 | "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", 3879 | "dev": true 3880 | } 3881 | } 3882 | } 3883 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cdn-worker", 3 | "author": "Salik Khan", 4 | "version": "1.0.0", 5 | "devDependencies": { 6 | "@cloudflare/workers-types": "^3.16.0", 7 | "eslint": "^8.23.0", 8 | "eslint-config-google": "^0.14.0", 9 | "typescript": "^4.8.2", 10 | "wrangler": "3.19.0" 11 | }, 12 | "private": true 13 | } 14 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | async fetch(request, env, context) { 2 | const url = new URL(request.url); 3 | const key = url.pathname.slice(1); 4 | if (!authorizeRequest(request, env, key)) { 5 | return new Response("Unauthorized.", { 6 | status: 403, 7 | }); 8 | } 9 | switch (request.method) { 10 | case "PUT": 11 | await env.bucket.put(key, request.body); 12 | return new Response(`Put ${key} successfully!`); 13 | case "GET": 14 | try { 15 | const headers = new Headers(); 16 | const cacheKey = new Request(url.toString(), request); 17 | const cache = caches.default; 18 | let response = await cache.match(cacheKey); 19 | if (response) { 20 | console.log(`Cache hit for: ${request.url}.`); 21 | return response; 22 | } 23 | console.log( 24 | `Response for request url: ${request.url} not present in cache. Fetching and caching request.` 25 | ); 26 | const object = await env.bucket.get(key); 27 | if (object === null) { 28 | return new Response("Object Not Found", { status: 404 }); 29 | } 30 | object.writeHttpMetadata(headers); 31 | headers.set("etag", object.httpEtag); 32 | headers.append("Cache-Control", "s-maxage=86400"); 33 | response = new Response(object.body, { 34 | headers, 35 | }); 36 | context.waitUntil(cache.put(cacheKey, response.clone())); 37 | return response; 38 | } catch (e) { 39 | return new Response("Error thrown " + e.message); 40 | } 41 | case "DELETE": 42 | await env.bucket.delete(key); 43 | return new Response("Deleted!"); 44 | default: 45 | return new Response("Method Not Allowed", { 46 | status: 405, 47 | headers: { 48 | Allow: "PUT, GET, DELETE", 49 | }, 50 | }); 51 | } 52 | } 53 | var hasValidHeader = (request, env) => { 54 | return request.headers.get("X-Custom-Auth-Key") === env.AUTH_KEY_SECRET; 55 | }; 56 | function authorizeRequest(request, env, key) { 57 | switch (request.method) { 58 | case "PUT": 59 | case "DELETE": 60 | return hasValidHeader(request, env); 61 | case "GET": 62 | return key; 63 | default: 64 | return false; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "YOUR_WORKER_NAME" 2 | main = "src/index.js" 3 | compatibility_date = "2022-09-02" 4 | 5 | account_id = "YOUR_ACCOUNT_ID" 6 | workers_dev = true 7 | 8 | [[r2_buckets]] 9 | binding = 'bucket' 10 | bucket_name = 'YOUR_BUCKET_NAME' 11 | --------------------------------------------------------------------------------