├── .github └── workflows │ └── deploy.yaml ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── src └── index.js ├── webpack.config.js ├── wrangler.toml └── yarn.lock /.github/workflows/deploy.yaml: -------------------------------------------------------------------------------- 1 | name: Deploy to Cloudflare Workers 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths-ignore: 8 | - '**.md' 9 | repository_dispatch: 10 | 11 | jobs: 12 | build-and-deploy: 13 | runs-on: ubuntu-latest 14 | name: Build & Deploy 15 | steps: 16 | - uses: actions/checkout@v4 17 | - name: Publish 18 | uses: cloudflare/wrangler-action@v3 19 | env: 20 | CUSTOM_DOMAIN: ${{ secrets.CUSTOM_DOMAIN || 'libcuda.so' }} 21 | with: 22 | apiToken: ${{ secrets.CF_API_TOKEN }} 23 | accountId: ${{secrets.CF_ACCOUNT_ID}} 24 | vars: 25 | CUSTOM_DOMAIN 26 | command: deploy --env production --minify src/index.js 27 | environment: production -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### cloudflare worker ### 2 | worker 3 | .wrangler 4 | 5 | # Created by https://www.toptal.com/developers/gitignore/api/osx 6 | # Edit at https://www.toptal.com/developers/gitignore?templates=osx 7 | 8 | ### OSX ### 9 | # General 10 | .DS_Store 11 | .AppleDouble 12 | .LSOverride 13 | 14 | # Icon must end with two \r 15 | Icon 16 | 17 | # Thumbnails 18 | ._* 19 | 20 | # Files that might appear in the root of a volume 21 | .DocumentRevisions-V100 22 | .fseventsd 23 | .Spotlight-V100 24 | .TemporaryItems 25 | .Trashes 26 | .VolumeIcon.icns 27 | .com.apple.timemachine.donotpresent 28 | 29 | # Directories potentially created on remote AFP share 30 | .AppleDB 31 | .AppleDesktop 32 | Network Trash Folder 33 | Temporary Items 34 | .apdisk 35 | 36 | # End of https://www.toptal.com/developers/gitignore/api/osx 37 | 38 | # Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode 39 | # Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode 40 | 41 | ### VisualStudioCode ### 42 | .vscode/* 43 | !.vscode/settings.json 44 | !.vscode/tasks.json 45 | !.vscode/launch.json 46 | !.vscode/extensions.json 47 | *.code-workspace 48 | 49 | # Local History for Visual Studio Code 50 | .history/ 51 | 52 | ### VisualStudioCode Patch ### 53 | # Ignore all local history of files 54 | .history 55 | .ionide 56 | 57 | # Support for Project snippet scope 58 | !.vscode/*.code-snippets 59 | 60 | # End of https://www.toptal.com/developers/gitignore/api/visualstudiocode 61 | 62 | # Created by https://www.toptal.com/developers/gitignore/api/node 63 | # Edit at https://www.toptal.com/developers/gitignore?templates=node 64 | 65 | ### Node ### 66 | # Logs 67 | logs 68 | *.log 69 | npm-debug.log* 70 | yarn-debug.log* 71 | yarn-error.log* 72 | lerna-debug.log* 73 | .pnpm-debug.log* 74 | 75 | # Diagnostic reports (https://nodejs.org/api/report.html) 76 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 77 | 78 | # Runtime data 79 | pids 80 | *.pid 81 | *.seed 82 | *.pid.lock 83 | 84 | # Directory for instrumented libs generated by jscoverage/JSCover 85 | lib-cov 86 | 87 | # Coverage directory used by tools like istanbul 88 | coverage 89 | *.lcov 90 | 91 | # nyc test coverage 92 | .nyc_output 93 | 94 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 95 | .grunt 96 | 97 | # Bower dependency directory (https://bower.io/) 98 | bower_components 99 | 100 | # node-waf configuration 101 | .lock-wscript 102 | 103 | # Compiled binary addons (https://nodejs.org/api/addons.html) 104 | build/Release 105 | 106 | # Dependency directories 107 | node_modules/ 108 | jspm_packages/ 109 | 110 | # Snowpack dependency directory (https://snowpack.dev/) 111 | web_modules/ 112 | 113 | # TypeScript cache 114 | *.tsbuildinfo 115 | 116 | # Optional npm cache directory 117 | .npm 118 | 119 | # Optional eslint cache 120 | .eslintcache 121 | 122 | # Microbundle cache 123 | .rpt2_cache/ 124 | .rts2_cache_cjs/ 125 | .rts2_cache_es/ 126 | .rts2_cache_umd/ 127 | 128 | # Optional REPL history 129 | .node_repl_history 130 | 131 | # Output of 'npm pack' 132 | *.tgz 133 | 134 | # Yarn Integrity file 135 | .yarn-integrity 136 | 137 | # dotenv environment variables file 138 | .env 139 | .env.test 140 | .env.production 141 | 142 | # parcel-bundler cache (https://parceljs.org/) 143 | .cache 144 | .parcel-cache 145 | 146 | # Next.js build output 147 | .next 148 | out 149 | 150 | # Nuxt.js build / generate output 151 | .nuxt 152 | dist 153 | 154 | # Gatsby files 155 | .cache/ 156 | # Comment in the public line in if your project uses Gatsby and not Next.js 157 | # https://nextjs.org/blog/next-9-1#public-directory-support 158 | # public 159 | 160 | # vuepress build output 161 | .vuepress/dist 162 | 163 | # Serverless directories 164 | .serverless/ 165 | 166 | # FuseBox cache 167 | .fusebox/ 168 | 169 | # DynamoDB Local files 170 | .dynamodb/ 171 | 172 | # TernJS port file 173 | .tern-port 174 | 175 | # Stores VSCode versions used for testing VSCode extensions 176 | .vscode-test 177 | 178 | # yarn v2 179 | .yarn/cache 180 | .yarn/unplugged 181 | .yarn/build-state.yml 182 | .yarn/install-state.gz 183 | .pnp.* 184 | 185 | ### Node Patch ### 186 | # Serverless Webpack directories 187 | .webpack/ 188 | 189 | # Optional stylelint cache 190 | .stylelintcache 191 | 192 | # SvelteKit build / generate output 193 | .svelte-kit 194 | 195 | # End of https://www.toptal.com/developers/gitignore/api/node 196 | 197 | # Created by https://www.toptal.com/developers/gitignore/api/yarn 198 | # Edit at https://www.toptal.com/developers/gitignore?templates=yarn 199 | 200 | ### yarn ### 201 | # https://yarnpkg.com/advanced/qa#which-files-should-be-gitignored 202 | 203 | .yarn/* 204 | !.yarn/releases 205 | !.yarn/plugins 206 | !.yarn/sdks 207 | !.yarn/versions 208 | 209 | # if you are NOT using Zero-installs, then: 210 | # comment the following lines 211 | !.yarn/cache 212 | 213 | # and uncomment the following lines 214 | # .pnp.* 215 | 216 | # End of https://www.toptal.com/developers/gitignore/api/yarn -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cloudflare-docker-proxy 2 | 3 | ![deploy](https://github.com/ciiiii/cloudflare-docker-proxy/actions/workflows/deploy.yaml/badge.svg) 4 | 5 | [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/ciiiii/cloudflare-docker-proxy) 6 | 7 | > If you're looking for proxy for helm, maybe you can try [cloudflare-helm-proxy](https://github.com/ciiiii/cloudflare-helm-proxy). 8 | 9 | ## Deploy 10 | 11 | 1. click the "Deploy With Workers" button 12 | 2. follow the instructions to fork and deploy 13 | 3. update routes as you requirement 14 | 15 | [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/ciiiii/cloudflare-docker-proxy) 16 | 17 | ## Routes configuration tutorial 18 | 19 | 1. use cloudflare worker host: only support proxy one registry 20 | ```javascript 21 | const routes = { 22 | "${workername}.${username}.workers.dev/": "https://registry-1.docker.io", 23 | }; 24 | ``` 25 | 2. use custom domain: support proxy multiple registries route by host 26 | - host your domain DNS on cloudflare 27 | - add `A` record of xxx.example.com to `192.0.2.1` 28 | - deploy this project to cloudflare workers 29 | - add `xxx.example.com/*` to HTTP routes of workers 30 | - add more records and modify the config as you need 31 | ```javascript 32 | const routes = { 33 | "docker.libcuda.so": "https://registry-1.docker.io", 34 | "quay.libcuda.so": "https://quay.io", 35 | "gcr.libcuda.so": "https://k8s.gcr.io", 36 | "k8s-gcr.libcuda.so": "https://k8s.gcr.io", 37 | "ghcr.libcuda.so": "https://ghcr.io", 38 | }; 39 | ``` 40 | 41 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloudflare-docker-proxy", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "cloudflare-docker-proxy", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "prettier": "^2.4.1", 13 | "webpack": "^5.65.0", 14 | "webpack-cli": "^4.9.1", 15 | "wrangler": "^3.36.0" 16 | } 17 | }, 18 | "node_modules/@cloudflare/kv-asset-handler": { 19 | "version": "0.3.4", 20 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.4.tgz", 21 | "integrity": "sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==", 22 | "dev": true, 23 | "license": "MIT OR Apache-2.0", 24 | "dependencies": { 25 | "mime": "^3.0.0" 26 | }, 27 | "engines": { 28 | "node": ">=16.13" 29 | } 30 | }, 31 | "node_modules/@cloudflare/unenv-preset": { 32 | "version": "2.0.2", 33 | "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.0.2.tgz", 34 | "integrity": "sha512-nyzYnlZjjV5xT3LizahG1Iu6mnrCaxglJ04rZLpDwlDVDZ7v46lNsfxhV3A/xtfgQuSHmLnc6SVI+KwBpc3Lwg==", 35 | "dev": true, 36 | "license": "MIT OR Apache-2.0", 37 | "peerDependencies": { 38 | "unenv": "2.0.0-rc.14", 39 | "workerd": "^1.20250124.0" 40 | }, 41 | "peerDependenciesMeta": { 42 | "workerd": { 43 | "optional": true 44 | } 45 | } 46 | }, 47 | "node_modules/@cloudflare/workerd-darwin-64": { 48 | "version": "1.20250408.0", 49 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250408.0.tgz", 50 | "integrity": "sha512-bxhIwBWxaNItZLXDNOKY2dCv0FHjDiDkfJFpwv4HvtvU5MKcrivZHVmmfDzLW85rqzfcDOmKbZeMPVfiKxdBZw==", 51 | "cpu": [ 52 | "x64" 53 | ], 54 | "dev": true, 55 | "license": "Apache-2.0", 56 | "optional": true, 57 | "os": [ 58 | "darwin" 59 | ], 60 | "engines": { 61 | "node": ">=16" 62 | } 63 | }, 64 | "node_modules/@cloudflare/workerd-darwin-arm64": { 65 | "version": "1.20250408.0", 66 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250408.0.tgz", 67 | "integrity": "sha512-5XZ2Oykr8bSo7zBmERtHh18h5BZYC/6H1YFWVxEj3PtalF3+6SHsO4KZsbGvDml9Pu7sHV277jiZE5eny8Hlyw==", 68 | "cpu": [ 69 | "arm64" 70 | ], 71 | "dev": true, 72 | "license": "Apache-2.0", 73 | "optional": true, 74 | "os": [ 75 | "darwin" 76 | ], 77 | "engines": { 78 | "node": ">=16" 79 | } 80 | }, 81 | "node_modules/@cloudflare/workerd-linux-64": { 82 | "version": "1.20250408.0", 83 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250408.0.tgz", 84 | "integrity": "sha512-WbgItXWln6G5d7GvYLWcuOzAVwafysZaWunH3UEfsm95wPuRofpYnlDD861gdWJX10IHSVgMStGESUcs7FLerQ==", 85 | "cpu": [ 86 | "x64" 87 | ], 88 | "dev": true, 89 | "license": "Apache-2.0", 90 | "optional": true, 91 | "os": [ 92 | "linux" 93 | ], 94 | "engines": { 95 | "node": ">=16" 96 | } 97 | }, 98 | "node_modules/@cloudflare/workerd-linux-arm64": { 99 | "version": "1.20250408.0", 100 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250408.0.tgz", 101 | "integrity": "sha512-pAhEywPPvr92SLylnQfZEPgXz+9pOG9G9haAPLpEatncZwYiYd9yiR6HYWhKp2erzCoNrOqKg9IlQwU3z1IDiw==", 102 | "cpu": [ 103 | "arm64" 104 | ], 105 | "dev": true, 106 | "license": "Apache-2.0", 107 | "optional": true, 108 | "os": [ 109 | "linux" 110 | ], 111 | "engines": { 112 | "node": ">=16" 113 | } 114 | }, 115 | "node_modules/@cloudflare/workerd-windows-64": { 116 | "version": "1.20250408.0", 117 | "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250408.0.tgz", 118 | "integrity": "sha512-nJ3RjMKGae2aF2rZ/CNeBvQPM+W5V1SUK0FYWG/uomyr7uQ2l4IayHna1ODg/OHHTEgIjwom0Mbn58iXb0WOcQ==", 119 | "cpu": [ 120 | "x64" 121 | ], 122 | "dev": true, 123 | "license": "Apache-2.0", 124 | "optional": true, 125 | "os": [ 126 | "win32" 127 | ], 128 | "engines": { 129 | "node": ">=16" 130 | } 131 | }, 132 | "node_modules/@cspotcode/source-map-support": { 133 | "version": "0.8.1", 134 | "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 135 | "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 136 | "dev": true, 137 | "license": "MIT", 138 | "dependencies": { 139 | "@jridgewell/trace-mapping": "0.3.9" 140 | }, 141 | "engines": { 142 | "node": ">=12" 143 | } 144 | }, 145 | "node_modules/@discoveryjs/json-ext": { 146 | "version": "0.5.7", 147 | "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", 148 | "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", 149 | "dev": true, 150 | "license": "MIT", 151 | "engines": { 152 | "node": ">=10.0.0" 153 | } 154 | }, 155 | "node_modules/@emnapi/runtime": { 156 | "version": "1.4.3", 157 | "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", 158 | "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", 159 | "dev": true, 160 | "license": "MIT", 161 | "optional": true, 162 | "dependencies": { 163 | "tslib": "^2.4.0" 164 | } 165 | }, 166 | "node_modules/@esbuild-plugins/node-globals-polyfill": { 167 | "version": "0.2.3", 168 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", 169 | "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", 170 | "dev": true, 171 | "license": "ISC", 172 | "peerDependencies": { 173 | "esbuild": "*" 174 | } 175 | }, 176 | "node_modules/@esbuild-plugins/node-modules-polyfill": { 177 | "version": "0.2.2", 178 | "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz", 179 | "integrity": "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==", 180 | "dev": true, 181 | "license": "ISC", 182 | "dependencies": { 183 | "escape-string-regexp": "^4.0.0", 184 | "rollup-plugin-node-polyfills": "^0.2.1" 185 | }, 186 | "peerDependencies": { 187 | "esbuild": "*" 188 | } 189 | }, 190 | "node_modules/@esbuild/android-arm": { 191 | "version": "0.17.19", 192 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 193 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 194 | "cpu": [ 195 | "arm" 196 | ], 197 | "dev": true, 198 | "license": "MIT", 199 | "optional": true, 200 | "os": [ 201 | "android" 202 | ], 203 | "engines": { 204 | "node": ">=12" 205 | } 206 | }, 207 | "node_modules/@esbuild/android-arm64": { 208 | "version": "0.17.19", 209 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 210 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 211 | "cpu": [ 212 | "arm64" 213 | ], 214 | "dev": true, 215 | "license": "MIT", 216 | "optional": true, 217 | "os": [ 218 | "android" 219 | ], 220 | "engines": { 221 | "node": ">=12" 222 | } 223 | }, 224 | "node_modules/@esbuild/android-x64": { 225 | "version": "0.17.19", 226 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 227 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 228 | "cpu": [ 229 | "x64" 230 | ], 231 | "dev": true, 232 | "license": "MIT", 233 | "optional": true, 234 | "os": [ 235 | "android" 236 | ], 237 | "engines": { 238 | "node": ">=12" 239 | } 240 | }, 241 | "node_modules/@esbuild/darwin-arm64": { 242 | "version": "0.17.19", 243 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 244 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 245 | "cpu": [ 246 | "arm64" 247 | ], 248 | "dev": true, 249 | "license": "MIT", 250 | "optional": true, 251 | "os": [ 252 | "darwin" 253 | ], 254 | "engines": { 255 | "node": ">=12" 256 | } 257 | }, 258 | "node_modules/@esbuild/darwin-x64": { 259 | "version": "0.17.19", 260 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 261 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 262 | "cpu": [ 263 | "x64" 264 | ], 265 | "dev": true, 266 | "license": "MIT", 267 | "optional": true, 268 | "os": [ 269 | "darwin" 270 | ], 271 | "engines": { 272 | "node": ">=12" 273 | } 274 | }, 275 | "node_modules/@esbuild/freebsd-arm64": { 276 | "version": "0.17.19", 277 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 278 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 279 | "cpu": [ 280 | "arm64" 281 | ], 282 | "dev": true, 283 | "license": "MIT", 284 | "optional": true, 285 | "os": [ 286 | "freebsd" 287 | ], 288 | "engines": { 289 | "node": ">=12" 290 | } 291 | }, 292 | "node_modules/@esbuild/freebsd-x64": { 293 | "version": "0.17.19", 294 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 295 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 296 | "cpu": [ 297 | "x64" 298 | ], 299 | "dev": true, 300 | "license": "MIT", 301 | "optional": true, 302 | "os": [ 303 | "freebsd" 304 | ], 305 | "engines": { 306 | "node": ">=12" 307 | } 308 | }, 309 | "node_modules/@esbuild/linux-arm": { 310 | "version": "0.17.19", 311 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 312 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 313 | "cpu": [ 314 | "arm" 315 | ], 316 | "dev": true, 317 | "license": "MIT", 318 | "optional": true, 319 | "os": [ 320 | "linux" 321 | ], 322 | "engines": { 323 | "node": ">=12" 324 | } 325 | }, 326 | "node_modules/@esbuild/linux-arm64": { 327 | "version": "0.17.19", 328 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 329 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 330 | "cpu": [ 331 | "arm64" 332 | ], 333 | "dev": true, 334 | "license": "MIT", 335 | "optional": true, 336 | "os": [ 337 | "linux" 338 | ], 339 | "engines": { 340 | "node": ">=12" 341 | } 342 | }, 343 | "node_modules/@esbuild/linux-ia32": { 344 | "version": "0.17.19", 345 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 346 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 347 | "cpu": [ 348 | "ia32" 349 | ], 350 | "dev": true, 351 | "license": "MIT", 352 | "optional": true, 353 | "os": [ 354 | "linux" 355 | ], 356 | "engines": { 357 | "node": ">=12" 358 | } 359 | }, 360 | "node_modules/@esbuild/linux-loong64": { 361 | "version": "0.17.19", 362 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 363 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 364 | "cpu": [ 365 | "loong64" 366 | ], 367 | "dev": true, 368 | "license": "MIT", 369 | "optional": true, 370 | "os": [ 371 | "linux" 372 | ], 373 | "engines": { 374 | "node": ">=12" 375 | } 376 | }, 377 | "node_modules/@esbuild/linux-mips64el": { 378 | "version": "0.17.19", 379 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 380 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 381 | "cpu": [ 382 | "mips64el" 383 | ], 384 | "dev": true, 385 | "license": "MIT", 386 | "optional": true, 387 | "os": [ 388 | "linux" 389 | ], 390 | "engines": { 391 | "node": ">=12" 392 | } 393 | }, 394 | "node_modules/@esbuild/linux-ppc64": { 395 | "version": "0.17.19", 396 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 397 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 398 | "cpu": [ 399 | "ppc64" 400 | ], 401 | "dev": true, 402 | "license": "MIT", 403 | "optional": true, 404 | "os": [ 405 | "linux" 406 | ], 407 | "engines": { 408 | "node": ">=12" 409 | } 410 | }, 411 | "node_modules/@esbuild/linux-riscv64": { 412 | "version": "0.17.19", 413 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 414 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 415 | "cpu": [ 416 | "riscv64" 417 | ], 418 | "dev": true, 419 | "license": "MIT", 420 | "optional": true, 421 | "os": [ 422 | "linux" 423 | ], 424 | "engines": { 425 | "node": ">=12" 426 | } 427 | }, 428 | "node_modules/@esbuild/linux-s390x": { 429 | "version": "0.17.19", 430 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 431 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 432 | "cpu": [ 433 | "s390x" 434 | ], 435 | "dev": true, 436 | "license": "MIT", 437 | "optional": true, 438 | "os": [ 439 | "linux" 440 | ], 441 | "engines": { 442 | "node": ">=12" 443 | } 444 | }, 445 | "node_modules/@esbuild/linux-x64": { 446 | "version": "0.17.19", 447 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 448 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 449 | "cpu": [ 450 | "x64" 451 | ], 452 | "dev": true, 453 | "license": "MIT", 454 | "optional": true, 455 | "os": [ 456 | "linux" 457 | ], 458 | "engines": { 459 | "node": ">=12" 460 | } 461 | }, 462 | "node_modules/@esbuild/netbsd-x64": { 463 | "version": "0.17.19", 464 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 465 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 466 | "cpu": [ 467 | "x64" 468 | ], 469 | "dev": true, 470 | "license": "MIT", 471 | "optional": true, 472 | "os": [ 473 | "netbsd" 474 | ], 475 | "engines": { 476 | "node": ">=12" 477 | } 478 | }, 479 | "node_modules/@esbuild/openbsd-x64": { 480 | "version": "0.17.19", 481 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 482 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 483 | "cpu": [ 484 | "x64" 485 | ], 486 | "dev": true, 487 | "license": "MIT", 488 | "optional": true, 489 | "os": [ 490 | "openbsd" 491 | ], 492 | "engines": { 493 | "node": ">=12" 494 | } 495 | }, 496 | "node_modules/@esbuild/sunos-x64": { 497 | "version": "0.17.19", 498 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 499 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 500 | "cpu": [ 501 | "x64" 502 | ], 503 | "dev": true, 504 | "license": "MIT", 505 | "optional": true, 506 | "os": [ 507 | "sunos" 508 | ], 509 | "engines": { 510 | "node": ">=12" 511 | } 512 | }, 513 | "node_modules/@esbuild/win32-arm64": { 514 | "version": "0.17.19", 515 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 516 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 517 | "cpu": [ 518 | "arm64" 519 | ], 520 | "dev": true, 521 | "license": "MIT", 522 | "optional": true, 523 | "os": [ 524 | "win32" 525 | ], 526 | "engines": { 527 | "node": ">=12" 528 | } 529 | }, 530 | "node_modules/@esbuild/win32-ia32": { 531 | "version": "0.17.19", 532 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 533 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 534 | "cpu": [ 535 | "ia32" 536 | ], 537 | "dev": true, 538 | "license": "MIT", 539 | "optional": true, 540 | "os": [ 541 | "win32" 542 | ], 543 | "engines": { 544 | "node": ">=12" 545 | } 546 | }, 547 | "node_modules/@esbuild/win32-x64": { 548 | "version": "0.17.19", 549 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 550 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 551 | "cpu": [ 552 | "x64" 553 | ], 554 | "dev": true, 555 | "license": "MIT", 556 | "optional": true, 557 | "os": [ 558 | "win32" 559 | ], 560 | "engines": { 561 | "node": ">=12" 562 | } 563 | }, 564 | "node_modules/@fastify/busboy": { 565 | "version": "2.1.1", 566 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", 567 | "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", 568 | "dev": true, 569 | "license": "MIT", 570 | "engines": { 571 | "node": ">=14" 572 | } 573 | }, 574 | "node_modules/@img/sharp-darwin-arm64": { 575 | "version": "0.33.5", 576 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 577 | "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 578 | "cpu": [ 579 | "arm64" 580 | ], 581 | "dev": true, 582 | "license": "Apache-2.0", 583 | "optional": true, 584 | "os": [ 585 | "darwin" 586 | ], 587 | "engines": { 588 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 589 | }, 590 | "funding": { 591 | "url": "https://opencollective.com/libvips" 592 | }, 593 | "optionalDependencies": { 594 | "@img/sharp-libvips-darwin-arm64": "1.0.4" 595 | } 596 | }, 597 | "node_modules/@img/sharp-darwin-x64": { 598 | "version": "0.33.5", 599 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 600 | "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 601 | "cpu": [ 602 | "x64" 603 | ], 604 | "dev": true, 605 | "license": "Apache-2.0", 606 | "optional": true, 607 | "os": [ 608 | "darwin" 609 | ], 610 | "engines": { 611 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 612 | }, 613 | "funding": { 614 | "url": "https://opencollective.com/libvips" 615 | }, 616 | "optionalDependencies": { 617 | "@img/sharp-libvips-darwin-x64": "1.0.4" 618 | } 619 | }, 620 | "node_modules/@img/sharp-libvips-darwin-arm64": { 621 | "version": "1.0.4", 622 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 623 | "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 624 | "cpu": [ 625 | "arm64" 626 | ], 627 | "dev": true, 628 | "license": "LGPL-3.0-or-later", 629 | "optional": true, 630 | "os": [ 631 | "darwin" 632 | ], 633 | "funding": { 634 | "url": "https://opencollective.com/libvips" 635 | } 636 | }, 637 | "node_modules/@img/sharp-libvips-darwin-x64": { 638 | "version": "1.0.4", 639 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 640 | "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 641 | "cpu": [ 642 | "x64" 643 | ], 644 | "dev": true, 645 | "license": "LGPL-3.0-or-later", 646 | "optional": true, 647 | "os": [ 648 | "darwin" 649 | ], 650 | "funding": { 651 | "url": "https://opencollective.com/libvips" 652 | } 653 | }, 654 | "node_modules/@img/sharp-libvips-linux-arm": { 655 | "version": "1.0.5", 656 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 657 | "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 658 | "cpu": [ 659 | "arm" 660 | ], 661 | "dev": true, 662 | "license": "LGPL-3.0-or-later", 663 | "optional": true, 664 | "os": [ 665 | "linux" 666 | ], 667 | "funding": { 668 | "url": "https://opencollective.com/libvips" 669 | } 670 | }, 671 | "node_modules/@img/sharp-libvips-linux-arm64": { 672 | "version": "1.0.4", 673 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 674 | "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 675 | "cpu": [ 676 | "arm64" 677 | ], 678 | "dev": true, 679 | "license": "LGPL-3.0-or-later", 680 | "optional": true, 681 | "os": [ 682 | "linux" 683 | ], 684 | "funding": { 685 | "url": "https://opencollective.com/libvips" 686 | } 687 | }, 688 | "node_modules/@img/sharp-libvips-linux-s390x": { 689 | "version": "1.0.4", 690 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 691 | "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 692 | "cpu": [ 693 | "s390x" 694 | ], 695 | "dev": true, 696 | "license": "LGPL-3.0-or-later", 697 | "optional": true, 698 | "os": [ 699 | "linux" 700 | ], 701 | "funding": { 702 | "url": "https://opencollective.com/libvips" 703 | } 704 | }, 705 | "node_modules/@img/sharp-libvips-linux-x64": { 706 | "version": "1.0.4", 707 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 708 | "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 709 | "cpu": [ 710 | "x64" 711 | ], 712 | "dev": true, 713 | "license": "LGPL-3.0-or-later", 714 | "optional": true, 715 | "os": [ 716 | "linux" 717 | ], 718 | "funding": { 719 | "url": "https://opencollective.com/libvips" 720 | } 721 | }, 722 | "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 723 | "version": "1.0.4", 724 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 725 | "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 726 | "cpu": [ 727 | "arm64" 728 | ], 729 | "dev": true, 730 | "license": "LGPL-3.0-or-later", 731 | "optional": true, 732 | "os": [ 733 | "linux" 734 | ], 735 | "funding": { 736 | "url": "https://opencollective.com/libvips" 737 | } 738 | }, 739 | "node_modules/@img/sharp-libvips-linuxmusl-x64": { 740 | "version": "1.0.4", 741 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 742 | "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 743 | "cpu": [ 744 | "x64" 745 | ], 746 | "dev": true, 747 | "license": "LGPL-3.0-or-later", 748 | "optional": true, 749 | "os": [ 750 | "linux" 751 | ], 752 | "funding": { 753 | "url": "https://opencollective.com/libvips" 754 | } 755 | }, 756 | "node_modules/@img/sharp-linux-arm": { 757 | "version": "0.33.5", 758 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 759 | "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 760 | "cpu": [ 761 | "arm" 762 | ], 763 | "dev": true, 764 | "license": "Apache-2.0", 765 | "optional": true, 766 | "os": [ 767 | "linux" 768 | ], 769 | "engines": { 770 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 771 | }, 772 | "funding": { 773 | "url": "https://opencollective.com/libvips" 774 | }, 775 | "optionalDependencies": { 776 | "@img/sharp-libvips-linux-arm": "1.0.5" 777 | } 778 | }, 779 | "node_modules/@img/sharp-linux-arm64": { 780 | "version": "0.33.5", 781 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 782 | "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 783 | "cpu": [ 784 | "arm64" 785 | ], 786 | "dev": true, 787 | "license": "Apache-2.0", 788 | "optional": true, 789 | "os": [ 790 | "linux" 791 | ], 792 | "engines": { 793 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 794 | }, 795 | "funding": { 796 | "url": "https://opencollective.com/libvips" 797 | }, 798 | "optionalDependencies": { 799 | "@img/sharp-libvips-linux-arm64": "1.0.4" 800 | } 801 | }, 802 | "node_modules/@img/sharp-linux-s390x": { 803 | "version": "0.33.5", 804 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 805 | "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 806 | "cpu": [ 807 | "s390x" 808 | ], 809 | "dev": true, 810 | "license": "Apache-2.0", 811 | "optional": true, 812 | "os": [ 813 | "linux" 814 | ], 815 | "engines": { 816 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 817 | }, 818 | "funding": { 819 | "url": "https://opencollective.com/libvips" 820 | }, 821 | "optionalDependencies": { 822 | "@img/sharp-libvips-linux-s390x": "1.0.4" 823 | } 824 | }, 825 | "node_modules/@img/sharp-linux-x64": { 826 | "version": "0.33.5", 827 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 828 | "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 829 | "cpu": [ 830 | "x64" 831 | ], 832 | "dev": true, 833 | "license": "Apache-2.0", 834 | "optional": true, 835 | "os": [ 836 | "linux" 837 | ], 838 | "engines": { 839 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 840 | }, 841 | "funding": { 842 | "url": "https://opencollective.com/libvips" 843 | }, 844 | "optionalDependencies": { 845 | "@img/sharp-libvips-linux-x64": "1.0.4" 846 | } 847 | }, 848 | "node_modules/@img/sharp-linuxmusl-arm64": { 849 | "version": "0.33.5", 850 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 851 | "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 852 | "cpu": [ 853 | "arm64" 854 | ], 855 | "dev": true, 856 | "license": "Apache-2.0", 857 | "optional": true, 858 | "os": [ 859 | "linux" 860 | ], 861 | "engines": { 862 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 863 | }, 864 | "funding": { 865 | "url": "https://opencollective.com/libvips" 866 | }, 867 | "optionalDependencies": { 868 | "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 869 | } 870 | }, 871 | "node_modules/@img/sharp-linuxmusl-x64": { 872 | "version": "0.33.5", 873 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 874 | "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 875 | "cpu": [ 876 | "x64" 877 | ], 878 | "dev": true, 879 | "license": "Apache-2.0", 880 | "optional": true, 881 | "os": [ 882 | "linux" 883 | ], 884 | "engines": { 885 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 886 | }, 887 | "funding": { 888 | "url": "https://opencollective.com/libvips" 889 | }, 890 | "optionalDependencies": { 891 | "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 892 | } 893 | }, 894 | "node_modules/@img/sharp-wasm32": { 895 | "version": "0.33.5", 896 | "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 897 | "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 898 | "cpu": [ 899 | "wasm32" 900 | ], 901 | "dev": true, 902 | "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 903 | "optional": true, 904 | "dependencies": { 905 | "@emnapi/runtime": "^1.2.0" 906 | }, 907 | "engines": { 908 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 909 | }, 910 | "funding": { 911 | "url": "https://opencollective.com/libvips" 912 | } 913 | }, 914 | "node_modules/@img/sharp-win32-ia32": { 915 | "version": "0.33.5", 916 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 917 | "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 918 | "cpu": [ 919 | "ia32" 920 | ], 921 | "dev": true, 922 | "license": "Apache-2.0 AND LGPL-3.0-or-later", 923 | "optional": true, 924 | "os": [ 925 | "win32" 926 | ], 927 | "engines": { 928 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 929 | }, 930 | "funding": { 931 | "url": "https://opencollective.com/libvips" 932 | } 933 | }, 934 | "node_modules/@img/sharp-win32-x64": { 935 | "version": "0.33.5", 936 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 937 | "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 938 | "cpu": [ 939 | "x64" 940 | ], 941 | "dev": true, 942 | "license": "Apache-2.0 AND LGPL-3.0-or-later", 943 | "optional": true, 944 | "os": [ 945 | "win32" 946 | ], 947 | "engines": { 948 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 949 | }, 950 | "funding": { 951 | "url": "https://opencollective.com/libvips" 952 | } 953 | }, 954 | "node_modules/@jridgewell/resolve-uri": { 955 | "version": "3.1.2", 956 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 957 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 958 | "dev": true, 959 | "license": "MIT", 960 | "engines": { 961 | "node": ">=6.0.0" 962 | } 963 | }, 964 | "node_modules/@jridgewell/sourcemap-codec": { 965 | "version": "1.5.0", 966 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 967 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 968 | "dev": true, 969 | "license": "MIT" 970 | }, 971 | "node_modules/@jridgewell/trace-mapping": { 972 | "version": "0.3.9", 973 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 974 | "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 975 | "dev": true, 976 | "license": "MIT", 977 | "dependencies": { 978 | "@jridgewell/resolve-uri": "^3.0.3", 979 | "@jridgewell/sourcemap-codec": "^1.4.10" 980 | } 981 | }, 982 | "node_modules/@types/eslint": { 983 | "version": "8.4.1", 984 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", 985 | "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", 986 | "dev": true, 987 | "license": "MIT", 988 | "dependencies": { 989 | "@types/estree": "*", 990 | "@types/json-schema": "*" 991 | } 992 | }, 993 | "node_modules/@types/eslint-scope": { 994 | "version": "3.7.3", 995 | "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", 996 | "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", 997 | "dev": true, 998 | "license": "MIT", 999 | "dependencies": { 1000 | "@types/eslint": "*", 1001 | "@types/estree": "*" 1002 | } 1003 | }, 1004 | "node_modules/@types/estree": { 1005 | "version": "0.0.51", 1006 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", 1007 | "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", 1008 | "dev": true, 1009 | "license": "MIT" 1010 | }, 1011 | "node_modules/@types/json-schema": { 1012 | "version": "7.0.10", 1013 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz", 1014 | "integrity": "sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==", 1015 | "dev": true, 1016 | "license": "MIT" 1017 | }, 1018 | "node_modules/@types/node": { 1019 | "version": "17.0.22", 1020 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz", 1021 | "integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==", 1022 | "dev": true, 1023 | "license": "MIT" 1024 | }, 1025 | "node_modules/@webassemblyjs/ast": { 1026 | "version": "1.11.1", 1027 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", 1028 | "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", 1029 | "dev": true, 1030 | "license": "MIT", 1031 | "dependencies": { 1032 | "@webassemblyjs/helper-numbers": "1.11.1", 1033 | "@webassemblyjs/helper-wasm-bytecode": "1.11.1" 1034 | } 1035 | }, 1036 | "node_modules/@webassemblyjs/floating-point-hex-parser": { 1037 | "version": "1.11.1", 1038 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", 1039 | "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", 1040 | "dev": true, 1041 | "license": "MIT" 1042 | }, 1043 | "node_modules/@webassemblyjs/helper-api-error": { 1044 | "version": "1.11.1", 1045 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", 1046 | "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", 1047 | "dev": true, 1048 | "license": "MIT" 1049 | }, 1050 | "node_modules/@webassemblyjs/helper-buffer": { 1051 | "version": "1.11.1", 1052 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", 1053 | "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", 1054 | "dev": true, 1055 | "license": "MIT" 1056 | }, 1057 | "node_modules/@webassemblyjs/helper-numbers": { 1058 | "version": "1.11.1", 1059 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", 1060 | "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", 1061 | "dev": true, 1062 | "license": "MIT", 1063 | "dependencies": { 1064 | "@webassemblyjs/floating-point-hex-parser": "1.11.1", 1065 | "@webassemblyjs/helper-api-error": "1.11.1", 1066 | "@xtuc/long": "4.2.2" 1067 | } 1068 | }, 1069 | "node_modules/@webassemblyjs/helper-wasm-bytecode": { 1070 | "version": "1.11.1", 1071 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", 1072 | "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", 1073 | "dev": true, 1074 | "license": "MIT" 1075 | }, 1076 | "node_modules/@webassemblyjs/helper-wasm-section": { 1077 | "version": "1.11.1", 1078 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", 1079 | "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", 1080 | "dev": true, 1081 | "license": "MIT", 1082 | "dependencies": { 1083 | "@webassemblyjs/ast": "1.11.1", 1084 | "@webassemblyjs/helper-buffer": "1.11.1", 1085 | "@webassemblyjs/helper-wasm-bytecode": "1.11.1", 1086 | "@webassemblyjs/wasm-gen": "1.11.1" 1087 | } 1088 | }, 1089 | "node_modules/@webassemblyjs/ieee754": { 1090 | "version": "1.11.1", 1091 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", 1092 | "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", 1093 | "dev": true, 1094 | "license": "MIT", 1095 | "dependencies": { 1096 | "@xtuc/ieee754": "^1.2.0" 1097 | } 1098 | }, 1099 | "node_modules/@webassemblyjs/leb128": { 1100 | "version": "1.11.1", 1101 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", 1102 | "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", 1103 | "dev": true, 1104 | "license": "Apache-2.0", 1105 | "dependencies": { 1106 | "@xtuc/long": "4.2.2" 1107 | } 1108 | }, 1109 | "node_modules/@webassemblyjs/utf8": { 1110 | "version": "1.11.1", 1111 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", 1112 | "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", 1113 | "dev": true, 1114 | "license": "MIT" 1115 | }, 1116 | "node_modules/@webassemblyjs/wasm-edit": { 1117 | "version": "1.11.1", 1118 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", 1119 | "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", 1120 | "dev": true, 1121 | "license": "MIT", 1122 | "dependencies": { 1123 | "@webassemblyjs/ast": "1.11.1", 1124 | "@webassemblyjs/helper-buffer": "1.11.1", 1125 | "@webassemblyjs/helper-wasm-bytecode": "1.11.1", 1126 | "@webassemblyjs/helper-wasm-section": "1.11.1", 1127 | "@webassemblyjs/wasm-gen": "1.11.1", 1128 | "@webassemblyjs/wasm-opt": "1.11.1", 1129 | "@webassemblyjs/wasm-parser": "1.11.1", 1130 | "@webassemblyjs/wast-printer": "1.11.1" 1131 | } 1132 | }, 1133 | "node_modules/@webassemblyjs/wasm-gen": { 1134 | "version": "1.11.1", 1135 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", 1136 | "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", 1137 | "dev": true, 1138 | "license": "MIT", 1139 | "dependencies": { 1140 | "@webassemblyjs/ast": "1.11.1", 1141 | "@webassemblyjs/helper-wasm-bytecode": "1.11.1", 1142 | "@webassemblyjs/ieee754": "1.11.1", 1143 | "@webassemblyjs/leb128": "1.11.1", 1144 | "@webassemblyjs/utf8": "1.11.1" 1145 | } 1146 | }, 1147 | "node_modules/@webassemblyjs/wasm-opt": { 1148 | "version": "1.11.1", 1149 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", 1150 | "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", 1151 | "dev": true, 1152 | "license": "MIT", 1153 | "dependencies": { 1154 | "@webassemblyjs/ast": "1.11.1", 1155 | "@webassemblyjs/helper-buffer": "1.11.1", 1156 | "@webassemblyjs/wasm-gen": "1.11.1", 1157 | "@webassemblyjs/wasm-parser": "1.11.1" 1158 | } 1159 | }, 1160 | "node_modules/@webassemblyjs/wasm-parser": { 1161 | "version": "1.11.1", 1162 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", 1163 | "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", 1164 | "dev": true, 1165 | "license": "MIT", 1166 | "dependencies": { 1167 | "@webassemblyjs/ast": "1.11.1", 1168 | "@webassemblyjs/helper-api-error": "1.11.1", 1169 | "@webassemblyjs/helper-wasm-bytecode": "1.11.1", 1170 | "@webassemblyjs/ieee754": "1.11.1", 1171 | "@webassemblyjs/leb128": "1.11.1", 1172 | "@webassemblyjs/utf8": "1.11.1" 1173 | } 1174 | }, 1175 | "node_modules/@webassemblyjs/wast-printer": { 1176 | "version": "1.11.1", 1177 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", 1178 | "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", 1179 | "dev": true, 1180 | "license": "MIT", 1181 | "dependencies": { 1182 | "@webassemblyjs/ast": "1.11.1", 1183 | "@xtuc/long": "4.2.2" 1184 | } 1185 | }, 1186 | "node_modules/@webpack-cli/configtest": { 1187 | "version": "1.1.1", 1188 | "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", 1189 | "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", 1190 | "dev": true, 1191 | "license": "MIT", 1192 | "peerDependencies": { 1193 | "webpack": "4.x.x || 5.x.x", 1194 | "webpack-cli": "4.x.x" 1195 | } 1196 | }, 1197 | "node_modules/@webpack-cli/info": { 1198 | "version": "1.4.1", 1199 | "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", 1200 | "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", 1201 | "dev": true, 1202 | "license": "MIT", 1203 | "dependencies": { 1204 | "envinfo": "^7.7.3" 1205 | }, 1206 | "peerDependencies": { 1207 | "webpack-cli": "4.x.x" 1208 | } 1209 | }, 1210 | "node_modules/@webpack-cli/serve": { 1211 | "version": "1.6.1", 1212 | "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", 1213 | "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", 1214 | "dev": true, 1215 | "license": "MIT", 1216 | "peerDependencies": { 1217 | "webpack-cli": "4.x.x" 1218 | }, 1219 | "peerDependenciesMeta": { 1220 | "webpack-dev-server": { 1221 | "optional": true 1222 | } 1223 | } 1224 | }, 1225 | "node_modules/@xtuc/ieee754": { 1226 | "version": "1.2.0", 1227 | "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", 1228 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", 1229 | "dev": true, 1230 | "license": "BSD-3-Clause" 1231 | }, 1232 | "node_modules/@xtuc/long": { 1233 | "version": "4.2.2", 1234 | "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", 1235 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", 1236 | "dev": true, 1237 | "license": "Apache-2.0" 1238 | }, 1239 | "node_modules/acorn": { 1240 | "version": "8.14.0", 1241 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 1242 | "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 1243 | "dev": true, 1244 | "license": "MIT", 1245 | "bin": { 1246 | "acorn": "bin/acorn" 1247 | }, 1248 | "engines": { 1249 | "node": ">=0.4.0" 1250 | } 1251 | }, 1252 | "node_modules/acorn-import-assertions": { 1253 | "version": "1.8.0", 1254 | "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", 1255 | "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", 1256 | "dev": true, 1257 | "license": "MIT", 1258 | "peerDependencies": { 1259 | "acorn": "^8" 1260 | } 1261 | }, 1262 | "node_modules/acorn-walk": { 1263 | "version": "8.3.2", 1264 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", 1265 | "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", 1266 | "dev": true, 1267 | "license": "MIT", 1268 | "engines": { 1269 | "node": ">=0.4.0" 1270 | } 1271 | }, 1272 | "node_modules/ajv": { 1273 | "version": "6.12.6", 1274 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 1275 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1276 | "dev": true, 1277 | "license": "MIT", 1278 | "dependencies": { 1279 | "fast-deep-equal": "^3.1.1", 1280 | "fast-json-stable-stringify": "^2.0.0", 1281 | "json-schema-traverse": "^0.4.1", 1282 | "uri-js": "^4.2.2" 1283 | }, 1284 | "funding": { 1285 | "type": "github", 1286 | "url": "https://github.com/sponsors/epoberezkin" 1287 | } 1288 | }, 1289 | "node_modules/ajv-keywords": { 1290 | "version": "3.5.2", 1291 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", 1292 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", 1293 | "dev": true, 1294 | "license": "MIT", 1295 | "peerDependencies": { 1296 | "ajv": "^6.9.1" 1297 | } 1298 | }, 1299 | "node_modules/as-table": { 1300 | "version": "1.0.55", 1301 | "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", 1302 | "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", 1303 | "dev": true, 1304 | "license": "MIT", 1305 | "dependencies": { 1306 | "printable-characters": "^1.0.42" 1307 | } 1308 | }, 1309 | "node_modules/blake3-wasm": { 1310 | "version": "2.1.5", 1311 | "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 1312 | "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 1313 | "dev": true, 1314 | "license": "MIT" 1315 | }, 1316 | "node_modules/browserslist": { 1317 | "version": "4.20.2", 1318 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", 1319 | "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", 1320 | "dev": true, 1321 | "funding": [ 1322 | { 1323 | "type": "opencollective", 1324 | "url": "https://opencollective.com/browserslist" 1325 | }, 1326 | { 1327 | "type": "tidelift", 1328 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1329 | } 1330 | ], 1331 | "license": "MIT", 1332 | "dependencies": { 1333 | "caniuse-lite": "^1.0.30001317", 1334 | "electron-to-chromium": "^1.4.84", 1335 | "escalade": "^3.1.1", 1336 | "node-releases": "^2.0.2", 1337 | "picocolors": "^1.0.0" 1338 | }, 1339 | "bin": { 1340 | "browserslist": "cli.js" 1341 | }, 1342 | "engines": { 1343 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1344 | } 1345 | }, 1346 | "node_modules/buffer-from": { 1347 | "version": "1.1.2", 1348 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 1349 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", 1350 | "dev": true, 1351 | "license": "MIT" 1352 | }, 1353 | "node_modules/caniuse-lite": { 1354 | "version": "1.0.30001319", 1355 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz", 1356 | "integrity": "sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==", 1357 | "dev": true, 1358 | "funding": [ 1359 | { 1360 | "type": "opencollective", 1361 | "url": "https://opencollective.com/browserslist" 1362 | }, 1363 | { 1364 | "type": "tidelift", 1365 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 1366 | } 1367 | ], 1368 | "license": "CC-BY-4.0" 1369 | }, 1370 | "node_modules/chrome-trace-event": { 1371 | "version": "1.0.3", 1372 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", 1373 | "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", 1374 | "dev": true, 1375 | "license": "MIT", 1376 | "engines": { 1377 | "node": ">=6.0" 1378 | } 1379 | }, 1380 | "node_modules/clone-deep": { 1381 | "version": "4.0.1", 1382 | "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", 1383 | "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", 1384 | "dev": true, 1385 | "license": "MIT", 1386 | "dependencies": { 1387 | "is-plain-object": "^2.0.4", 1388 | "kind-of": "^6.0.2", 1389 | "shallow-clone": "^3.0.0" 1390 | }, 1391 | "engines": { 1392 | "node": ">=6" 1393 | } 1394 | }, 1395 | "node_modules/color": { 1396 | "version": "4.2.3", 1397 | "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 1398 | "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 1399 | "dev": true, 1400 | "license": "MIT", 1401 | "optional": true, 1402 | "dependencies": { 1403 | "color-convert": "^2.0.1", 1404 | "color-string": "^1.9.0" 1405 | }, 1406 | "engines": { 1407 | "node": ">=12.5.0" 1408 | } 1409 | }, 1410 | "node_modules/color-convert": { 1411 | "version": "2.0.1", 1412 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1413 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1414 | "dev": true, 1415 | "license": "MIT", 1416 | "optional": true, 1417 | "dependencies": { 1418 | "color-name": "~1.1.4" 1419 | }, 1420 | "engines": { 1421 | "node": ">=7.0.0" 1422 | } 1423 | }, 1424 | "node_modules/color-name": { 1425 | "version": "1.1.4", 1426 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1427 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1428 | "dev": true, 1429 | "license": "MIT", 1430 | "optional": true 1431 | }, 1432 | "node_modules/color-string": { 1433 | "version": "1.9.1", 1434 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 1435 | "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 1436 | "dev": true, 1437 | "license": "MIT", 1438 | "optional": true, 1439 | "dependencies": { 1440 | "color-name": "^1.0.0", 1441 | "simple-swizzle": "^0.2.2" 1442 | } 1443 | }, 1444 | "node_modules/colorette": { 1445 | "version": "2.0.16", 1446 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", 1447 | "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", 1448 | "dev": true, 1449 | "license": "MIT" 1450 | }, 1451 | "node_modules/commander": { 1452 | "version": "2.20.3", 1453 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 1454 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 1455 | "dev": true, 1456 | "license": "MIT" 1457 | }, 1458 | "node_modules/cookie": { 1459 | "version": "0.7.2", 1460 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 1461 | "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 1462 | "dev": true, 1463 | "license": "MIT", 1464 | "engines": { 1465 | "node": ">= 0.6" 1466 | } 1467 | }, 1468 | "node_modules/cross-spawn": { 1469 | "version": "7.0.3", 1470 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1471 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1472 | "dev": true, 1473 | "license": "MIT", 1474 | "dependencies": { 1475 | "path-key": "^3.1.0", 1476 | "shebang-command": "^2.0.0", 1477 | "which": "^2.0.1" 1478 | }, 1479 | "engines": { 1480 | "node": ">= 8" 1481 | } 1482 | }, 1483 | "node_modules/data-uri-to-buffer": { 1484 | "version": "2.0.2", 1485 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", 1486 | "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", 1487 | "dev": true, 1488 | "license": "MIT" 1489 | }, 1490 | "node_modules/defu": { 1491 | "version": "6.1.4", 1492 | "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", 1493 | "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", 1494 | "dev": true, 1495 | "license": "MIT" 1496 | }, 1497 | "node_modules/detect-libc": { 1498 | "version": "2.0.4", 1499 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", 1500 | "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", 1501 | "dev": true, 1502 | "license": "Apache-2.0", 1503 | "optional": true, 1504 | "engines": { 1505 | "node": ">=8" 1506 | } 1507 | }, 1508 | "node_modules/electron-to-chromium": { 1509 | "version": "1.4.88", 1510 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.88.tgz", 1511 | "integrity": "sha512-oA7mzccefkvTNi9u7DXmT0LqvhnOiN2BhSrKerta7HeUC1cLoIwtbf2wL+Ah2ozh5KQd3/1njrGrwDBXx6d14Q==", 1512 | "dev": true, 1513 | "license": "ISC" 1514 | }, 1515 | "node_modules/enhanced-resolve": { 1516 | "version": "5.9.2", 1517 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", 1518 | "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", 1519 | "dev": true, 1520 | "license": "MIT", 1521 | "dependencies": { 1522 | "graceful-fs": "^4.2.4", 1523 | "tapable": "^2.2.0" 1524 | }, 1525 | "engines": { 1526 | "node": ">=10.13.0" 1527 | } 1528 | }, 1529 | "node_modules/envinfo": { 1530 | "version": "7.8.1", 1531 | "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", 1532 | "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", 1533 | "dev": true, 1534 | "license": "MIT", 1535 | "bin": { 1536 | "envinfo": "dist/cli.js" 1537 | }, 1538 | "engines": { 1539 | "node": ">=4" 1540 | } 1541 | }, 1542 | "node_modules/es-module-lexer": { 1543 | "version": "0.9.3", 1544 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", 1545 | "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", 1546 | "dev": true, 1547 | "license": "MIT" 1548 | }, 1549 | "node_modules/esbuild": { 1550 | "version": "0.17.19", 1551 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", 1552 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 1553 | "dev": true, 1554 | "hasInstallScript": true, 1555 | "license": "MIT", 1556 | "bin": { 1557 | "esbuild": "bin/esbuild" 1558 | }, 1559 | "engines": { 1560 | "node": ">=12" 1561 | }, 1562 | "optionalDependencies": { 1563 | "@esbuild/android-arm": "0.17.19", 1564 | "@esbuild/android-arm64": "0.17.19", 1565 | "@esbuild/android-x64": "0.17.19", 1566 | "@esbuild/darwin-arm64": "0.17.19", 1567 | "@esbuild/darwin-x64": "0.17.19", 1568 | "@esbuild/freebsd-arm64": "0.17.19", 1569 | "@esbuild/freebsd-x64": "0.17.19", 1570 | "@esbuild/linux-arm": "0.17.19", 1571 | "@esbuild/linux-arm64": "0.17.19", 1572 | "@esbuild/linux-ia32": "0.17.19", 1573 | "@esbuild/linux-loong64": "0.17.19", 1574 | "@esbuild/linux-mips64el": "0.17.19", 1575 | "@esbuild/linux-ppc64": "0.17.19", 1576 | "@esbuild/linux-riscv64": "0.17.19", 1577 | "@esbuild/linux-s390x": "0.17.19", 1578 | "@esbuild/linux-x64": "0.17.19", 1579 | "@esbuild/netbsd-x64": "0.17.19", 1580 | "@esbuild/openbsd-x64": "0.17.19", 1581 | "@esbuild/sunos-x64": "0.17.19", 1582 | "@esbuild/win32-arm64": "0.17.19", 1583 | "@esbuild/win32-ia32": "0.17.19", 1584 | "@esbuild/win32-x64": "0.17.19" 1585 | } 1586 | }, 1587 | "node_modules/escalade": { 1588 | "version": "3.1.1", 1589 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1590 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1591 | "dev": true, 1592 | "license": "MIT", 1593 | "engines": { 1594 | "node": ">=6" 1595 | } 1596 | }, 1597 | "node_modules/escape-string-regexp": { 1598 | "version": "4.0.0", 1599 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1600 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1601 | "dev": true, 1602 | "license": "MIT", 1603 | "engines": { 1604 | "node": ">=10" 1605 | }, 1606 | "funding": { 1607 | "url": "https://github.com/sponsors/sindresorhus" 1608 | } 1609 | }, 1610 | "node_modules/eslint-scope": { 1611 | "version": "5.1.1", 1612 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 1613 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 1614 | "dev": true, 1615 | "license": "BSD-2-Clause", 1616 | "dependencies": { 1617 | "esrecurse": "^4.3.0", 1618 | "estraverse": "^4.1.1" 1619 | }, 1620 | "engines": { 1621 | "node": ">=8.0.0" 1622 | } 1623 | }, 1624 | "node_modules/esrecurse": { 1625 | "version": "4.3.0", 1626 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1627 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1628 | "dev": true, 1629 | "license": "BSD-2-Clause", 1630 | "dependencies": { 1631 | "estraverse": "^5.2.0" 1632 | }, 1633 | "engines": { 1634 | "node": ">=4.0" 1635 | } 1636 | }, 1637 | "node_modules/esrecurse/node_modules/estraverse": { 1638 | "version": "5.3.0", 1639 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1640 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1641 | "dev": true, 1642 | "license": "BSD-2-Clause", 1643 | "engines": { 1644 | "node": ">=4.0" 1645 | } 1646 | }, 1647 | "node_modules/estraverse": { 1648 | "version": "4.3.0", 1649 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1650 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1651 | "dev": true, 1652 | "license": "BSD-2-Clause", 1653 | "engines": { 1654 | "node": ">=4.0" 1655 | } 1656 | }, 1657 | "node_modules/estree-walker": { 1658 | "version": "0.6.1", 1659 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1660 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 1661 | "dev": true, 1662 | "license": "MIT" 1663 | }, 1664 | "node_modules/events": { 1665 | "version": "3.3.0", 1666 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", 1667 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", 1668 | "dev": true, 1669 | "license": "MIT", 1670 | "engines": { 1671 | "node": ">=0.8.x" 1672 | } 1673 | }, 1674 | "node_modules/execa": { 1675 | "version": "5.1.1", 1676 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 1677 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 1678 | "dev": true, 1679 | "license": "MIT", 1680 | "dependencies": { 1681 | "cross-spawn": "^7.0.3", 1682 | "get-stream": "^6.0.0", 1683 | "human-signals": "^2.1.0", 1684 | "is-stream": "^2.0.0", 1685 | "merge-stream": "^2.0.0", 1686 | "npm-run-path": "^4.0.1", 1687 | "onetime": "^5.1.2", 1688 | "signal-exit": "^3.0.3", 1689 | "strip-final-newline": "^2.0.0" 1690 | }, 1691 | "engines": { 1692 | "node": ">=10" 1693 | }, 1694 | "funding": { 1695 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 1696 | } 1697 | }, 1698 | "node_modules/exit-hook": { 1699 | "version": "2.2.1", 1700 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 1701 | "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 1702 | "dev": true, 1703 | "license": "MIT", 1704 | "engines": { 1705 | "node": ">=6" 1706 | }, 1707 | "funding": { 1708 | "url": "https://github.com/sponsors/sindresorhus" 1709 | } 1710 | }, 1711 | "node_modules/exsolve": { 1712 | "version": "1.0.5", 1713 | "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", 1714 | "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", 1715 | "dev": true, 1716 | "license": "MIT" 1717 | }, 1718 | "node_modules/fast-deep-equal": { 1719 | "version": "3.1.3", 1720 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1721 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1722 | "dev": true, 1723 | "license": "MIT" 1724 | }, 1725 | "node_modules/fast-json-stable-stringify": { 1726 | "version": "2.1.0", 1727 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1728 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1729 | "dev": true, 1730 | "license": "MIT" 1731 | }, 1732 | "node_modules/fastest-levenshtein": { 1733 | "version": "1.0.12", 1734 | "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", 1735 | "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", 1736 | "dev": true, 1737 | "license": "MIT" 1738 | }, 1739 | "node_modules/find-up": { 1740 | "version": "4.1.0", 1741 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 1742 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 1743 | "dev": true, 1744 | "license": "MIT", 1745 | "dependencies": { 1746 | "locate-path": "^5.0.0", 1747 | "path-exists": "^4.0.0" 1748 | }, 1749 | "engines": { 1750 | "node": ">=8" 1751 | } 1752 | }, 1753 | "node_modules/fsevents": { 1754 | "version": "2.3.3", 1755 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1756 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1757 | "dev": true, 1758 | "hasInstallScript": true, 1759 | "license": "MIT", 1760 | "optional": true, 1761 | "os": [ 1762 | "darwin" 1763 | ], 1764 | "engines": { 1765 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1766 | } 1767 | }, 1768 | "node_modules/function-bind": { 1769 | "version": "1.1.1", 1770 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1771 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1772 | "dev": true, 1773 | "license": "MIT" 1774 | }, 1775 | "node_modules/get-source": { 1776 | "version": "2.0.12", 1777 | "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", 1778 | "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", 1779 | "dev": true, 1780 | "license": "Unlicense", 1781 | "dependencies": { 1782 | "data-uri-to-buffer": "^2.0.0", 1783 | "source-map": "^0.6.1" 1784 | } 1785 | }, 1786 | "node_modules/get-stream": { 1787 | "version": "6.0.1", 1788 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 1789 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 1790 | "dev": true, 1791 | "license": "MIT", 1792 | "engines": { 1793 | "node": ">=10" 1794 | }, 1795 | "funding": { 1796 | "url": "https://github.com/sponsors/sindresorhus" 1797 | } 1798 | }, 1799 | "node_modules/glob-to-regexp": { 1800 | "version": "0.4.1", 1801 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 1802 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 1803 | "dev": true, 1804 | "license": "BSD-2-Clause" 1805 | }, 1806 | "node_modules/graceful-fs": { 1807 | "version": "4.2.9", 1808 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", 1809 | "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", 1810 | "dev": true, 1811 | "license": "ISC" 1812 | }, 1813 | "node_modules/has": { 1814 | "version": "1.0.3", 1815 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1816 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1817 | "dev": true, 1818 | "license": "MIT", 1819 | "dependencies": { 1820 | "function-bind": "^1.1.1" 1821 | }, 1822 | "engines": { 1823 | "node": ">= 0.4.0" 1824 | } 1825 | }, 1826 | "node_modules/has-flag": { 1827 | "version": "4.0.0", 1828 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1829 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1830 | "dev": true, 1831 | "license": "MIT", 1832 | "engines": { 1833 | "node": ">=8" 1834 | } 1835 | }, 1836 | "node_modules/human-signals": { 1837 | "version": "2.1.0", 1838 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 1839 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 1840 | "dev": true, 1841 | "license": "Apache-2.0", 1842 | "engines": { 1843 | "node": ">=10.17.0" 1844 | } 1845 | }, 1846 | "node_modules/import-local": { 1847 | "version": "3.1.0", 1848 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", 1849 | "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", 1850 | "dev": true, 1851 | "license": "MIT", 1852 | "dependencies": { 1853 | "pkg-dir": "^4.2.0", 1854 | "resolve-cwd": "^3.0.0" 1855 | }, 1856 | "bin": { 1857 | "import-local-fixture": "fixtures/cli.js" 1858 | }, 1859 | "engines": { 1860 | "node": ">=8" 1861 | }, 1862 | "funding": { 1863 | "url": "https://github.com/sponsors/sindresorhus" 1864 | } 1865 | }, 1866 | "node_modules/interpret": { 1867 | "version": "2.2.0", 1868 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", 1869 | "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", 1870 | "dev": true, 1871 | "license": "MIT", 1872 | "engines": { 1873 | "node": ">= 0.10" 1874 | } 1875 | }, 1876 | "node_modules/is-arrayish": { 1877 | "version": "0.3.2", 1878 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 1879 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 1880 | "dev": true, 1881 | "license": "MIT", 1882 | "optional": true 1883 | }, 1884 | "node_modules/is-core-module": { 1885 | "version": "2.8.1", 1886 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 1887 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 1888 | "dev": true, 1889 | "license": "MIT", 1890 | "dependencies": { 1891 | "has": "^1.0.3" 1892 | }, 1893 | "funding": { 1894 | "url": "https://github.com/sponsors/ljharb" 1895 | } 1896 | }, 1897 | "node_modules/is-plain-object": { 1898 | "version": "2.0.4", 1899 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 1900 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 1901 | "dev": true, 1902 | "license": "MIT", 1903 | "dependencies": { 1904 | "isobject": "^3.0.1" 1905 | }, 1906 | "engines": { 1907 | "node": ">=0.10.0" 1908 | } 1909 | }, 1910 | "node_modules/is-stream": { 1911 | "version": "2.0.1", 1912 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 1913 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 1914 | "dev": true, 1915 | "license": "MIT", 1916 | "engines": { 1917 | "node": ">=8" 1918 | }, 1919 | "funding": { 1920 | "url": "https://github.com/sponsors/sindresorhus" 1921 | } 1922 | }, 1923 | "node_modules/isexe": { 1924 | "version": "2.0.0", 1925 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1926 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1927 | "dev": true, 1928 | "license": "ISC" 1929 | }, 1930 | "node_modules/isobject": { 1931 | "version": "3.0.1", 1932 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 1933 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 1934 | "dev": true, 1935 | "license": "MIT", 1936 | "engines": { 1937 | "node": ">=0.10.0" 1938 | } 1939 | }, 1940 | "node_modules/jest-worker": { 1941 | "version": "27.5.1", 1942 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", 1943 | "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", 1944 | "dev": true, 1945 | "license": "MIT", 1946 | "dependencies": { 1947 | "@types/node": "*", 1948 | "merge-stream": "^2.0.0", 1949 | "supports-color": "^8.0.0" 1950 | }, 1951 | "engines": { 1952 | "node": ">= 10.13.0" 1953 | } 1954 | }, 1955 | "node_modules/json-parse-better-errors": { 1956 | "version": "1.0.2", 1957 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 1958 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 1959 | "dev": true, 1960 | "license": "MIT" 1961 | }, 1962 | "node_modules/json-schema-traverse": { 1963 | "version": "0.4.1", 1964 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1965 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1966 | "dev": true, 1967 | "license": "MIT" 1968 | }, 1969 | "node_modules/kind-of": { 1970 | "version": "6.0.3", 1971 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 1972 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 1973 | "dev": true, 1974 | "license": "MIT", 1975 | "engines": { 1976 | "node": ">=0.10.0" 1977 | } 1978 | }, 1979 | "node_modules/loader-runner": { 1980 | "version": "4.2.0", 1981 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", 1982 | "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", 1983 | "dev": true, 1984 | "license": "MIT", 1985 | "engines": { 1986 | "node": ">=6.11.5" 1987 | } 1988 | }, 1989 | "node_modules/locate-path": { 1990 | "version": "5.0.0", 1991 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1992 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1993 | "dev": true, 1994 | "license": "MIT", 1995 | "dependencies": { 1996 | "p-locate": "^4.1.0" 1997 | }, 1998 | "engines": { 1999 | "node": ">=8" 2000 | } 2001 | }, 2002 | "node_modules/magic-string": { 2003 | "version": "0.25.9", 2004 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 2005 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 2006 | "dev": true, 2007 | "license": "MIT", 2008 | "dependencies": { 2009 | "sourcemap-codec": "^1.4.8" 2010 | } 2011 | }, 2012 | "node_modules/merge-stream": { 2013 | "version": "2.0.0", 2014 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 2015 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 2016 | "dev": true, 2017 | "license": "MIT" 2018 | }, 2019 | "node_modules/mime": { 2020 | "version": "3.0.0", 2021 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 2022 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 2023 | "dev": true, 2024 | "license": "MIT", 2025 | "bin": { 2026 | "mime": "cli.js" 2027 | }, 2028 | "engines": { 2029 | "node": ">=10.0.0" 2030 | } 2031 | }, 2032 | "node_modules/mime-db": { 2033 | "version": "1.52.0", 2034 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 2035 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 2036 | "dev": true, 2037 | "license": "MIT", 2038 | "engines": { 2039 | "node": ">= 0.6" 2040 | } 2041 | }, 2042 | "node_modules/mime-types": { 2043 | "version": "2.1.35", 2044 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 2045 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 2046 | "dev": true, 2047 | "license": "MIT", 2048 | "dependencies": { 2049 | "mime-db": "1.52.0" 2050 | }, 2051 | "engines": { 2052 | "node": ">= 0.6" 2053 | } 2054 | }, 2055 | "node_modules/mimic-fn": { 2056 | "version": "2.1.0", 2057 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 2058 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 2059 | "dev": true, 2060 | "license": "MIT", 2061 | "engines": { 2062 | "node": ">=6" 2063 | } 2064 | }, 2065 | "node_modules/miniflare": { 2066 | "version": "3.20250408.2", 2067 | "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20250408.2.tgz", 2068 | "integrity": "sha512-uTs7cGWFErgJTKtBdmtctwhuoxniuCQqDT8+xaEiJdEC8d+HsaZVYfZwIX2NuSmdAiHMe7NtbdZYjFMbIXtJsQ==", 2069 | "dev": true, 2070 | "license": "MIT", 2071 | "dependencies": { 2072 | "@cspotcode/source-map-support": "0.8.1", 2073 | "acorn": "8.14.0", 2074 | "acorn-walk": "8.3.2", 2075 | "exit-hook": "2.2.1", 2076 | "glob-to-regexp": "0.4.1", 2077 | "stoppable": "1.1.0", 2078 | "undici": "^5.28.5", 2079 | "workerd": "1.20250408.0", 2080 | "ws": "8.18.0", 2081 | "youch": "3.3.4", 2082 | "zod": "3.22.3" 2083 | }, 2084 | "bin": { 2085 | "miniflare": "bootstrap.js" 2086 | }, 2087 | "engines": { 2088 | "node": ">=16.13" 2089 | } 2090 | }, 2091 | "node_modules/mustache": { 2092 | "version": "4.2.0", 2093 | "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", 2094 | "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", 2095 | "dev": true, 2096 | "license": "MIT", 2097 | "bin": { 2098 | "mustache": "bin/mustache" 2099 | } 2100 | }, 2101 | "node_modules/neo-async": { 2102 | "version": "2.6.2", 2103 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", 2104 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", 2105 | "dev": true, 2106 | "license": "MIT" 2107 | }, 2108 | "node_modules/node-releases": { 2109 | "version": "2.0.2", 2110 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", 2111 | "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", 2112 | "dev": true, 2113 | "license": "MIT" 2114 | }, 2115 | "node_modules/npm-run-path": { 2116 | "version": "4.0.1", 2117 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 2118 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 2119 | "dev": true, 2120 | "license": "MIT", 2121 | "dependencies": { 2122 | "path-key": "^3.0.0" 2123 | }, 2124 | "engines": { 2125 | "node": ">=8" 2126 | } 2127 | }, 2128 | "node_modules/ohash": { 2129 | "version": "2.0.11", 2130 | "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", 2131 | "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 2132 | "dev": true, 2133 | "license": "MIT" 2134 | }, 2135 | "node_modules/onetime": { 2136 | "version": "5.1.2", 2137 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 2138 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 2139 | "dev": true, 2140 | "license": "MIT", 2141 | "dependencies": { 2142 | "mimic-fn": "^2.1.0" 2143 | }, 2144 | "engines": { 2145 | "node": ">=6" 2146 | }, 2147 | "funding": { 2148 | "url": "https://github.com/sponsors/sindresorhus" 2149 | } 2150 | }, 2151 | "node_modules/p-limit": { 2152 | "version": "2.3.0", 2153 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 2154 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 2155 | "dev": true, 2156 | "license": "MIT", 2157 | "dependencies": { 2158 | "p-try": "^2.0.0" 2159 | }, 2160 | "engines": { 2161 | "node": ">=6" 2162 | }, 2163 | "funding": { 2164 | "url": "https://github.com/sponsors/sindresorhus" 2165 | } 2166 | }, 2167 | "node_modules/p-locate": { 2168 | "version": "4.1.0", 2169 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 2170 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 2171 | "dev": true, 2172 | "license": "MIT", 2173 | "dependencies": { 2174 | "p-limit": "^2.2.0" 2175 | }, 2176 | "engines": { 2177 | "node": ">=8" 2178 | } 2179 | }, 2180 | "node_modules/p-try": { 2181 | "version": "2.2.0", 2182 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 2183 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 2184 | "dev": true, 2185 | "license": "MIT", 2186 | "engines": { 2187 | "node": ">=6" 2188 | } 2189 | }, 2190 | "node_modules/path-exists": { 2191 | "version": "4.0.0", 2192 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2193 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2194 | "dev": true, 2195 | "license": "MIT", 2196 | "engines": { 2197 | "node": ">=8" 2198 | } 2199 | }, 2200 | "node_modules/path-key": { 2201 | "version": "3.1.1", 2202 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2203 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2204 | "dev": true, 2205 | "license": "MIT", 2206 | "engines": { 2207 | "node": ">=8" 2208 | } 2209 | }, 2210 | "node_modules/path-parse": { 2211 | "version": "1.0.7", 2212 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2213 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2214 | "dev": true, 2215 | "license": "MIT" 2216 | }, 2217 | "node_modules/path-to-regexp": { 2218 | "version": "6.3.0", 2219 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 2220 | "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 2221 | "dev": true, 2222 | "license": "MIT" 2223 | }, 2224 | "node_modules/pathe": { 2225 | "version": "2.0.3", 2226 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 2227 | "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 2228 | "dev": true, 2229 | "license": "MIT" 2230 | }, 2231 | "node_modules/picocolors": { 2232 | "version": "1.0.0", 2233 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2234 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2235 | "dev": true, 2236 | "license": "ISC" 2237 | }, 2238 | "node_modules/pkg-dir": { 2239 | "version": "4.2.0", 2240 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 2241 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 2242 | "dev": true, 2243 | "license": "MIT", 2244 | "dependencies": { 2245 | "find-up": "^4.0.0" 2246 | }, 2247 | "engines": { 2248 | "node": ">=8" 2249 | } 2250 | }, 2251 | "node_modules/prettier": { 2252 | "version": "2.6.0", 2253 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz", 2254 | "integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==", 2255 | "dev": true, 2256 | "license": "MIT", 2257 | "bin": { 2258 | "prettier": "bin-prettier.js" 2259 | }, 2260 | "engines": { 2261 | "node": ">=10.13.0" 2262 | }, 2263 | "funding": { 2264 | "url": "https://github.com/prettier/prettier?sponsor=1" 2265 | } 2266 | }, 2267 | "node_modules/printable-characters": { 2268 | "version": "1.0.42", 2269 | "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", 2270 | "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", 2271 | "dev": true, 2272 | "license": "Unlicense" 2273 | }, 2274 | "node_modules/punycode": { 2275 | "version": "2.1.1", 2276 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2277 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2278 | "dev": true, 2279 | "license": "MIT", 2280 | "engines": { 2281 | "node": ">=6" 2282 | } 2283 | }, 2284 | "node_modules/randombytes": { 2285 | "version": "2.1.0", 2286 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 2287 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 2288 | "dev": true, 2289 | "license": "MIT", 2290 | "dependencies": { 2291 | "safe-buffer": "^5.1.0" 2292 | } 2293 | }, 2294 | "node_modules/rechoir": { 2295 | "version": "0.7.1", 2296 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", 2297 | "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", 2298 | "dev": true, 2299 | "license": "MIT", 2300 | "dependencies": { 2301 | "resolve": "^1.9.0" 2302 | }, 2303 | "engines": { 2304 | "node": ">= 0.10" 2305 | } 2306 | }, 2307 | "node_modules/resolve": { 2308 | "version": "1.22.0", 2309 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 2310 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 2311 | "dev": true, 2312 | "license": "MIT", 2313 | "dependencies": { 2314 | "is-core-module": "^2.8.1", 2315 | "path-parse": "^1.0.7", 2316 | "supports-preserve-symlinks-flag": "^1.0.0" 2317 | }, 2318 | "bin": { 2319 | "resolve": "bin/resolve" 2320 | }, 2321 | "funding": { 2322 | "url": "https://github.com/sponsors/ljharb" 2323 | } 2324 | }, 2325 | "node_modules/resolve-cwd": { 2326 | "version": "3.0.0", 2327 | "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", 2328 | "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", 2329 | "dev": true, 2330 | "license": "MIT", 2331 | "dependencies": { 2332 | "resolve-from": "^5.0.0" 2333 | }, 2334 | "engines": { 2335 | "node": ">=8" 2336 | } 2337 | }, 2338 | "node_modules/resolve-from": { 2339 | "version": "5.0.0", 2340 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 2341 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 2342 | "dev": true, 2343 | "license": "MIT", 2344 | "engines": { 2345 | "node": ">=8" 2346 | } 2347 | }, 2348 | "node_modules/rollup-plugin-inject": { 2349 | "version": "3.0.2", 2350 | "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", 2351 | "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", 2352 | "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", 2353 | "dev": true, 2354 | "license": "MIT", 2355 | "dependencies": { 2356 | "estree-walker": "^0.6.1", 2357 | "magic-string": "^0.25.3", 2358 | "rollup-pluginutils": "^2.8.1" 2359 | } 2360 | }, 2361 | "node_modules/rollup-plugin-node-polyfills": { 2362 | "version": "0.2.1", 2363 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", 2364 | "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", 2365 | "dev": true, 2366 | "license": "MIT", 2367 | "dependencies": { 2368 | "rollup-plugin-inject": "^3.0.0" 2369 | } 2370 | }, 2371 | "node_modules/rollup-pluginutils": { 2372 | "version": "2.8.2", 2373 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 2374 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 2375 | "dev": true, 2376 | "license": "MIT", 2377 | "dependencies": { 2378 | "estree-walker": "^0.6.1" 2379 | } 2380 | }, 2381 | "node_modules/safe-buffer": { 2382 | "version": "5.2.1", 2383 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2384 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 2385 | "dev": true, 2386 | "funding": [ 2387 | { 2388 | "type": "github", 2389 | "url": "https://github.com/sponsors/feross" 2390 | }, 2391 | { 2392 | "type": "patreon", 2393 | "url": "https://www.patreon.com/feross" 2394 | }, 2395 | { 2396 | "type": "consulting", 2397 | "url": "https://feross.org/support" 2398 | } 2399 | ], 2400 | "license": "MIT" 2401 | }, 2402 | "node_modules/schema-utils": { 2403 | "version": "3.1.1", 2404 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", 2405 | "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", 2406 | "dev": true, 2407 | "license": "MIT", 2408 | "dependencies": { 2409 | "@types/json-schema": "^7.0.8", 2410 | "ajv": "^6.12.5", 2411 | "ajv-keywords": "^3.5.2" 2412 | }, 2413 | "engines": { 2414 | "node": ">= 10.13.0" 2415 | }, 2416 | "funding": { 2417 | "type": "opencollective", 2418 | "url": "https://opencollective.com/webpack" 2419 | } 2420 | }, 2421 | "node_modules/semver": { 2422 | "version": "7.7.2", 2423 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", 2424 | "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", 2425 | "dev": true, 2426 | "license": "ISC", 2427 | "optional": true, 2428 | "bin": { 2429 | "semver": "bin/semver.js" 2430 | }, 2431 | "engines": { 2432 | "node": ">=10" 2433 | } 2434 | }, 2435 | "node_modules/serialize-javascript": { 2436 | "version": "6.0.0", 2437 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", 2438 | "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", 2439 | "dev": true, 2440 | "license": "BSD-3-Clause", 2441 | "dependencies": { 2442 | "randombytes": "^2.1.0" 2443 | } 2444 | }, 2445 | "node_modules/shallow-clone": { 2446 | "version": "3.0.1", 2447 | "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", 2448 | "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", 2449 | "dev": true, 2450 | "license": "MIT", 2451 | "dependencies": { 2452 | "kind-of": "^6.0.2" 2453 | }, 2454 | "engines": { 2455 | "node": ">=8" 2456 | } 2457 | }, 2458 | "node_modules/sharp": { 2459 | "version": "0.33.5", 2460 | "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 2461 | "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 2462 | "dev": true, 2463 | "hasInstallScript": true, 2464 | "license": "Apache-2.0", 2465 | "optional": true, 2466 | "dependencies": { 2467 | "color": "^4.2.3", 2468 | "detect-libc": "^2.0.3", 2469 | "semver": "^7.6.3" 2470 | }, 2471 | "engines": { 2472 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 2473 | }, 2474 | "funding": { 2475 | "url": "https://opencollective.com/libvips" 2476 | }, 2477 | "optionalDependencies": { 2478 | "@img/sharp-darwin-arm64": "0.33.5", 2479 | "@img/sharp-darwin-x64": "0.33.5", 2480 | "@img/sharp-libvips-darwin-arm64": "1.0.4", 2481 | "@img/sharp-libvips-darwin-x64": "1.0.4", 2482 | "@img/sharp-libvips-linux-arm": "1.0.5", 2483 | "@img/sharp-libvips-linux-arm64": "1.0.4", 2484 | "@img/sharp-libvips-linux-s390x": "1.0.4", 2485 | "@img/sharp-libvips-linux-x64": "1.0.4", 2486 | "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 2487 | "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 2488 | "@img/sharp-linux-arm": "0.33.5", 2489 | "@img/sharp-linux-arm64": "0.33.5", 2490 | "@img/sharp-linux-s390x": "0.33.5", 2491 | "@img/sharp-linux-x64": "0.33.5", 2492 | "@img/sharp-linuxmusl-arm64": "0.33.5", 2493 | "@img/sharp-linuxmusl-x64": "0.33.5", 2494 | "@img/sharp-wasm32": "0.33.5", 2495 | "@img/sharp-win32-ia32": "0.33.5", 2496 | "@img/sharp-win32-x64": "0.33.5" 2497 | } 2498 | }, 2499 | "node_modules/shebang-command": { 2500 | "version": "2.0.0", 2501 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2502 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2503 | "dev": true, 2504 | "license": "MIT", 2505 | "dependencies": { 2506 | "shebang-regex": "^3.0.0" 2507 | }, 2508 | "engines": { 2509 | "node": ">=8" 2510 | } 2511 | }, 2512 | "node_modules/shebang-regex": { 2513 | "version": "3.0.0", 2514 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2515 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2516 | "dev": true, 2517 | "license": "MIT", 2518 | "engines": { 2519 | "node": ">=8" 2520 | } 2521 | }, 2522 | "node_modules/signal-exit": { 2523 | "version": "3.0.7", 2524 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 2525 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 2526 | "dev": true, 2527 | "license": "ISC" 2528 | }, 2529 | "node_modules/simple-swizzle": { 2530 | "version": "0.2.2", 2531 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 2532 | "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 2533 | "dev": true, 2534 | "license": "MIT", 2535 | "optional": true, 2536 | "dependencies": { 2537 | "is-arrayish": "^0.3.1" 2538 | } 2539 | }, 2540 | "node_modules/source-map": { 2541 | "version": "0.6.1", 2542 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2543 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 2544 | "dev": true, 2545 | "license": "BSD-3-Clause", 2546 | "engines": { 2547 | "node": ">=0.10.0" 2548 | } 2549 | }, 2550 | "node_modules/source-map-support": { 2551 | "version": "0.5.21", 2552 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 2553 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 2554 | "dev": true, 2555 | "license": "MIT", 2556 | "dependencies": { 2557 | "buffer-from": "^1.0.0", 2558 | "source-map": "^0.6.0" 2559 | } 2560 | }, 2561 | "node_modules/sourcemap-codec": { 2562 | "version": "1.4.8", 2563 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 2564 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 2565 | "deprecated": "Please use @jridgewell/sourcemap-codec instead", 2566 | "dev": true, 2567 | "license": "MIT" 2568 | }, 2569 | "node_modules/stacktracey": { 2570 | "version": "2.1.8", 2571 | "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", 2572 | "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", 2573 | "dev": true, 2574 | "license": "Unlicense", 2575 | "dependencies": { 2576 | "as-table": "^1.0.36", 2577 | "get-source": "^2.0.12" 2578 | } 2579 | }, 2580 | "node_modules/stoppable": { 2581 | "version": "1.1.0", 2582 | "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 2583 | "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 2584 | "dev": true, 2585 | "license": "MIT", 2586 | "engines": { 2587 | "node": ">=4", 2588 | "npm": ">=6" 2589 | } 2590 | }, 2591 | "node_modules/strip-final-newline": { 2592 | "version": "2.0.0", 2593 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 2594 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 2595 | "dev": true, 2596 | "license": "MIT", 2597 | "engines": { 2598 | "node": ">=6" 2599 | } 2600 | }, 2601 | "node_modules/supports-color": { 2602 | "version": "8.1.1", 2603 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 2604 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 2605 | "dev": true, 2606 | "license": "MIT", 2607 | "dependencies": { 2608 | "has-flag": "^4.0.0" 2609 | }, 2610 | "engines": { 2611 | "node": ">=10" 2612 | }, 2613 | "funding": { 2614 | "url": "https://github.com/chalk/supports-color?sponsor=1" 2615 | } 2616 | }, 2617 | "node_modules/supports-preserve-symlinks-flag": { 2618 | "version": "1.0.0", 2619 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2620 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2621 | "dev": true, 2622 | "license": "MIT", 2623 | "engines": { 2624 | "node": ">= 0.4" 2625 | }, 2626 | "funding": { 2627 | "url": "https://github.com/sponsors/ljharb" 2628 | } 2629 | }, 2630 | "node_modules/tapable": { 2631 | "version": "2.2.1", 2632 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", 2633 | "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", 2634 | "dev": true, 2635 | "license": "MIT", 2636 | "engines": { 2637 | "node": ">=6" 2638 | } 2639 | }, 2640 | "node_modules/terser": { 2641 | "version": "5.12.1", 2642 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", 2643 | "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", 2644 | "dev": true, 2645 | "license": "BSD-2-Clause", 2646 | "dependencies": { 2647 | "acorn": "^8.5.0", 2648 | "commander": "^2.20.0", 2649 | "source-map": "~0.7.2", 2650 | "source-map-support": "~0.5.20" 2651 | }, 2652 | "bin": { 2653 | "terser": "bin/terser" 2654 | }, 2655 | "engines": { 2656 | "node": ">=10" 2657 | } 2658 | }, 2659 | "node_modules/terser-webpack-plugin": { 2660 | "version": "5.3.1", 2661 | "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", 2662 | "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", 2663 | "dev": true, 2664 | "license": "MIT", 2665 | "dependencies": { 2666 | "jest-worker": "^27.4.5", 2667 | "schema-utils": "^3.1.1", 2668 | "serialize-javascript": "^6.0.0", 2669 | "source-map": "^0.6.1", 2670 | "terser": "^5.7.2" 2671 | }, 2672 | "engines": { 2673 | "node": ">= 10.13.0" 2674 | }, 2675 | "funding": { 2676 | "type": "opencollective", 2677 | "url": "https://opencollective.com/webpack" 2678 | }, 2679 | "peerDependencies": { 2680 | "webpack": "^5.1.0" 2681 | }, 2682 | "peerDependenciesMeta": { 2683 | "@swc/core": { 2684 | "optional": true 2685 | }, 2686 | "esbuild": { 2687 | "optional": true 2688 | }, 2689 | "uglify-js": { 2690 | "optional": true 2691 | } 2692 | } 2693 | }, 2694 | "node_modules/terser/node_modules/source-map": { 2695 | "version": "0.7.3", 2696 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 2697 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 2698 | "dev": true, 2699 | "license": "BSD-3-Clause", 2700 | "engines": { 2701 | "node": ">= 8" 2702 | } 2703 | }, 2704 | "node_modules/tslib": { 2705 | "version": "2.8.1", 2706 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 2707 | "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 2708 | "dev": true, 2709 | "license": "0BSD", 2710 | "optional": true 2711 | }, 2712 | "node_modules/ufo": { 2713 | "version": "1.6.1", 2714 | "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", 2715 | "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", 2716 | "dev": true, 2717 | "license": "MIT" 2718 | }, 2719 | "node_modules/undici": { 2720 | "version": "5.29.0", 2721 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", 2722 | "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", 2723 | "dev": true, 2724 | "license": "MIT", 2725 | "dependencies": { 2726 | "@fastify/busboy": "^2.0.0" 2727 | }, 2728 | "engines": { 2729 | "node": ">=14.0" 2730 | } 2731 | }, 2732 | "node_modules/unenv": { 2733 | "version": "2.0.0-rc.14", 2734 | "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.14.tgz", 2735 | "integrity": "sha512-od496pShMen7nOy5VmVJCnq8rptd45vh6Nx/r2iPbrba6pa6p+tS2ywuIHRZ/OBvSbQZB0kWvpO9XBNVFXHD3Q==", 2736 | "dev": true, 2737 | "license": "MIT", 2738 | "dependencies": { 2739 | "defu": "^6.1.4", 2740 | "exsolve": "^1.0.1", 2741 | "ohash": "^2.0.10", 2742 | "pathe": "^2.0.3", 2743 | "ufo": "^1.5.4" 2744 | } 2745 | }, 2746 | "node_modules/uri-js": { 2747 | "version": "4.4.1", 2748 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 2749 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 2750 | "dev": true, 2751 | "license": "BSD-2-Clause", 2752 | "dependencies": { 2753 | "punycode": "^2.1.0" 2754 | } 2755 | }, 2756 | "node_modules/watchpack": { 2757 | "version": "2.3.1", 2758 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", 2759 | "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", 2760 | "dev": true, 2761 | "license": "MIT", 2762 | "dependencies": { 2763 | "glob-to-regexp": "^0.4.1", 2764 | "graceful-fs": "^4.1.2" 2765 | }, 2766 | "engines": { 2767 | "node": ">=10.13.0" 2768 | } 2769 | }, 2770 | "node_modules/webpack": { 2771 | "version": "5.70.0", 2772 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", 2773 | "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", 2774 | "dev": true, 2775 | "license": "MIT", 2776 | "dependencies": { 2777 | "@types/eslint-scope": "^3.7.3", 2778 | "@types/estree": "^0.0.51", 2779 | "@webassemblyjs/ast": "1.11.1", 2780 | "@webassemblyjs/wasm-edit": "1.11.1", 2781 | "@webassemblyjs/wasm-parser": "1.11.1", 2782 | "acorn": "^8.4.1", 2783 | "acorn-import-assertions": "^1.7.6", 2784 | "browserslist": "^4.14.5", 2785 | "chrome-trace-event": "^1.0.2", 2786 | "enhanced-resolve": "^5.9.2", 2787 | "es-module-lexer": "^0.9.0", 2788 | "eslint-scope": "5.1.1", 2789 | "events": "^3.2.0", 2790 | "glob-to-regexp": "^0.4.1", 2791 | "graceful-fs": "^4.2.9", 2792 | "json-parse-better-errors": "^1.0.2", 2793 | "loader-runner": "^4.2.0", 2794 | "mime-types": "^2.1.27", 2795 | "neo-async": "^2.6.2", 2796 | "schema-utils": "^3.1.0", 2797 | "tapable": "^2.1.1", 2798 | "terser-webpack-plugin": "^5.1.3", 2799 | "watchpack": "^2.3.1", 2800 | "webpack-sources": "^3.2.3" 2801 | }, 2802 | "bin": { 2803 | "webpack": "bin/webpack.js" 2804 | }, 2805 | "engines": { 2806 | "node": ">=10.13.0" 2807 | }, 2808 | "funding": { 2809 | "type": "opencollective", 2810 | "url": "https://opencollective.com/webpack" 2811 | }, 2812 | "peerDependenciesMeta": { 2813 | "webpack-cli": { 2814 | "optional": true 2815 | } 2816 | } 2817 | }, 2818 | "node_modules/webpack-cli": { 2819 | "version": "4.9.2", 2820 | "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", 2821 | "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", 2822 | "dev": true, 2823 | "license": "MIT", 2824 | "dependencies": { 2825 | "@discoveryjs/json-ext": "^0.5.0", 2826 | "@webpack-cli/configtest": "^1.1.1", 2827 | "@webpack-cli/info": "^1.4.1", 2828 | "@webpack-cli/serve": "^1.6.1", 2829 | "colorette": "^2.0.14", 2830 | "commander": "^7.0.0", 2831 | "execa": "^5.0.0", 2832 | "fastest-levenshtein": "^1.0.12", 2833 | "import-local": "^3.0.2", 2834 | "interpret": "^2.2.0", 2835 | "rechoir": "^0.7.0", 2836 | "webpack-merge": "^5.7.3" 2837 | }, 2838 | "bin": { 2839 | "webpack-cli": "bin/cli.js" 2840 | }, 2841 | "engines": { 2842 | "node": ">=10.13.0" 2843 | }, 2844 | "peerDependencies": { 2845 | "webpack": "4.x.x || 5.x.x" 2846 | }, 2847 | "peerDependenciesMeta": { 2848 | "@webpack-cli/generators": { 2849 | "optional": true 2850 | }, 2851 | "@webpack-cli/migrate": { 2852 | "optional": true 2853 | }, 2854 | "webpack-bundle-analyzer": { 2855 | "optional": true 2856 | }, 2857 | "webpack-dev-server": { 2858 | "optional": true 2859 | } 2860 | } 2861 | }, 2862 | "node_modules/webpack-cli/node_modules/commander": { 2863 | "version": "7.2.0", 2864 | "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", 2865 | "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", 2866 | "dev": true, 2867 | "license": "MIT", 2868 | "engines": { 2869 | "node": ">= 10" 2870 | } 2871 | }, 2872 | "node_modules/webpack-merge": { 2873 | "version": "5.8.0", 2874 | "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", 2875 | "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", 2876 | "dev": true, 2877 | "license": "MIT", 2878 | "dependencies": { 2879 | "clone-deep": "^4.0.1", 2880 | "wildcard": "^2.0.0" 2881 | }, 2882 | "engines": { 2883 | "node": ">=10.0.0" 2884 | } 2885 | }, 2886 | "node_modules/webpack-sources": { 2887 | "version": "3.2.3", 2888 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", 2889 | "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", 2890 | "dev": true, 2891 | "license": "MIT", 2892 | "engines": { 2893 | "node": ">=10.13.0" 2894 | } 2895 | }, 2896 | "node_modules/which": { 2897 | "version": "2.0.2", 2898 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2899 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2900 | "dev": true, 2901 | "license": "ISC", 2902 | "dependencies": { 2903 | "isexe": "^2.0.0" 2904 | }, 2905 | "bin": { 2906 | "node-which": "bin/node-which" 2907 | }, 2908 | "engines": { 2909 | "node": ">= 8" 2910 | } 2911 | }, 2912 | "node_modules/wildcard": { 2913 | "version": "2.0.0", 2914 | "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", 2915 | "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", 2916 | "dev": true, 2917 | "license": "MIT" 2918 | }, 2919 | "node_modules/workerd": { 2920 | "version": "1.20250408.0", 2921 | "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250408.0.tgz", 2922 | "integrity": "sha512-bBUX+UsvpzAqiWFNeZrlZmDGddiGZdBBbftZJz2wE6iUg/cIAJeVQYTtS/3ahaicguoLBz4nJiDo8luqM9fx1A==", 2923 | "dev": true, 2924 | "hasInstallScript": true, 2925 | "license": "Apache-2.0", 2926 | "bin": { 2927 | "workerd": "bin/workerd" 2928 | }, 2929 | "engines": { 2930 | "node": ">=16" 2931 | }, 2932 | "optionalDependencies": { 2933 | "@cloudflare/workerd-darwin-64": "1.20250408.0", 2934 | "@cloudflare/workerd-darwin-arm64": "1.20250408.0", 2935 | "@cloudflare/workerd-linux-64": "1.20250408.0", 2936 | "@cloudflare/workerd-linux-arm64": "1.20250408.0", 2937 | "@cloudflare/workerd-windows-64": "1.20250408.0" 2938 | } 2939 | }, 2940 | "node_modules/wrangler": { 2941 | "version": "3.114.9", 2942 | "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.114.9.tgz", 2943 | "integrity": "sha512-1e0gL+rxLF04kM9bW4sxoDGLXpJ1x53Rx1t18JuUm6F67qadKKPISyUAXuBeIQudWrCWEBXaTVnSdLHz0yBXbA==", 2944 | "dev": true, 2945 | "license": "MIT OR Apache-2.0", 2946 | "dependencies": { 2947 | "@cloudflare/kv-asset-handler": "0.3.4", 2948 | "@cloudflare/unenv-preset": "2.0.2", 2949 | "@esbuild-plugins/node-globals-polyfill": "0.2.3", 2950 | "@esbuild-plugins/node-modules-polyfill": "0.2.2", 2951 | "blake3-wasm": "2.1.5", 2952 | "esbuild": "0.17.19", 2953 | "miniflare": "3.20250408.2", 2954 | "path-to-regexp": "6.3.0", 2955 | "unenv": "2.0.0-rc.14", 2956 | "workerd": "1.20250408.0" 2957 | }, 2958 | "bin": { 2959 | "wrangler": "bin/wrangler.js", 2960 | "wrangler2": "bin/wrangler.js" 2961 | }, 2962 | "engines": { 2963 | "node": ">=16.17.0" 2964 | }, 2965 | "optionalDependencies": { 2966 | "fsevents": "~2.3.2", 2967 | "sharp": "^0.33.5" 2968 | }, 2969 | "peerDependencies": { 2970 | "@cloudflare/workers-types": "^4.20250408.0" 2971 | }, 2972 | "peerDependenciesMeta": { 2973 | "@cloudflare/workers-types": { 2974 | "optional": true 2975 | } 2976 | } 2977 | }, 2978 | "node_modules/ws": { 2979 | "version": "8.18.0", 2980 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 2981 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 2982 | "dev": true, 2983 | "license": "MIT", 2984 | "engines": { 2985 | "node": ">=10.0.0" 2986 | }, 2987 | "peerDependencies": { 2988 | "bufferutil": "^4.0.1", 2989 | "utf-8-validate": ">=5.0.2" 2990 | }, 2991 | "peerDependenciesMeta": { 2992 | "bufferutil": { 2993 | "optional": true 2994 | }, 2995 | "utf-8-validate": { 2996 | "optional": true 2997 | } 2998 | } 2999 | }, 3000 | "node_modules/youch": { 3001 | "version": "3.3.4", 3002 | "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz", 3003 | "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==", 3004 | "dev": true, 3005 | "license": "MIT", 3006 | "dependencies": { 3007 | "cookie": "^0.7.1", 3008 | "mustache": "^4.2.0", 3009 | "stacktracey": "^2.1.8" 3010 | } 3011 | }, 3012 | "node_modules/zod": { 3013 | "version": "3.22.3", 3014 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz", 3015 | "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==", 3016 | "dev": true, 3017 | "license": "MIT", 3018 | "funding": { 3019 | "url": "https://github.com/sponsors/colinhacks" 3020 | } 3021 | } 3022 | } 3023 | } 3024 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloudflare-docker-proxy", 3 | "private": true, 4 | "description": "", 5 | "version": "1.0.0", 6 | "author": "ciiiii ", 7 | "dependencies": {}, 8 | "devDependencies": { 9 | "prettier": "^2.4.1", 10 | "webpack": "^5.65.0", 11 | "webpack-cli": "^4.9.1", 12 | "wrangler": "^3.36.0" 13 | }, 14 | "scripts": { 15 | "format": "prettier --write '**/*.{js,css,json,md}'", 16 | "build": "webpack", 17 | "dev": "npx wrangler dev src/index.js --env dev" 18 | }, 19 | "license": "MIT", 20 | "main": "src/index.js" 21 | } 22 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | addEventListener("fetch", (event) => { 2 | event.passThroughOnException(); 3 | event.respondWith(handleRequest(event.request)); 4 | }); 5 | 6 | const dockerHub = "https://registry-1.docker.io"; 7 | 8 | const routes = { 9 | // production 10 | ["docker." + CUSTOM_DOMAIN]: dockerHub, 11 | ["quay." + CUSTOM_DOMAIN]: "https://quay.io", 12 | ["gcr." + CUSTOM_DOMAIN]: "https://gcr.io", 13 | ["k8s-gcr." + CUSTOM_DOMAIN]: "https://k8s.gcr.io", 14 | ["k8s." + CUSTOM_DOMAIN]: "https://registry.k8s.io", 15 | ["ghcr." + CUSTOM_DOMAIN]: "https://ghcr.io", 16 | ["cloudsmith." + CUSTOM_DOMAIN]: "https://docker.cloudsmith.io", 17 | ["ecr." + CUSTOM_DOMAIN]: "https://public.ecr.aws", 18 | 19 | // staging 20 | ["docker-staging." + CUSTOM_DOMAIN]: dockerHub, 21 | }; 22 | 23 | function routeByHosts(host) { 24 | if (host in routes) { 25 | return routes[host]; 26 | } 27 | if (MODE == "debug") { 28 | return TARGET_UPSTREAM; 29 | } 30 | return ""; 31 | } 32 | 33 | async function handleRequest(request) { 34 | const url = new URL(request.url); 35 | if (url.pathname == "/") { 36 | return Response.redirect(url.protocol + "//" + url.host + "/v2/", 301); 37 | } 38 | const upstream = routeByHosts(url.hostname); 39 | if (upstream === "") { 40 | return new Response( 41 | JSON.stringify({ 42 | routes: routes, 43 | }), 44 | { 45 | status: 404, 46 | } 47 | ); 48 | } 49 | const isDockerHub = upstream == dockerHub; 50 | const authorization = request.headers.get("Authorization"); 51 | if (url.pathname == "/v2/") { 52 | const newUrl = new URL(upstream + "/v2/"); 53 | const headers = new Headers(); 54 | if (authorization) { 55 | headers.set("Authorization", authorization); 56 | } 57 | // check if need to authenticate 58 | const resp = await fetch(newUrl.toString(), { 59 | method: "GET", 60 | headers: headers, 61 | redirect: "follow", 62 | }); 63 | if (resp.status === 401) { 64 | return responseUnauthorized(url); 65 | } 66 | return resp; 67 | } 68 | // get token 69 | if (url.pathname == "/v2/auth") { 70 | const newUrl = new URL(upstream + "/v2/"); 71 | const resp = await fetch(newUrl.toString(), { 72 | method: "GET", 73 | redirect: "follow", 74 | }); 75 | if (resp.status !== 401) { 76 | return resp; 77 | } 78 | const authenticateStr = resp.headers.get("WWW-Authenticate"); 79 | if (authenticateStr === null) { 80 | return resp; 81 | } 82 | const wwwAuthenticate = parseAuthenticate(authenticateStr); 83 | let scope = url.searchParams.get("scope"); 84 | // autocomplete repo part into scope for DockerHub library images 85 | // Example: repository:busybox:pull => repository:library/busybox:pull 86 | if (scope && isDockerHub) { 87 | let scopeParts = scope.split(":"); 88 | if (scopeParts.length == 3 && !scopeParts[1].includes("/")) { 89 | scopeParts[1] = "library/" + scopeParts[1]; 90 | scope = scopeParts.join(":"); 91 | } 92 | } 93 | return await fetchToken(wwwAuthenticate, scope, authorization); 94 | } 95 | // redirect for DockerHub library images 96 | // Example: /v2/busybox/manifests/latest => /v2/library/busybox/manifests/latest 97 | if (isDockerHub) { 98 | const pathParts = url.pathname.split("/"); 99 | if (pathParts.length == 5) { 100 | pathParts.splice(2, 0, "library"); 101 | const redirectUrl = new URL(url); 102 | redirectUrl.pathname = pathParts.join("/"); 103 | return Response.redirect(redirectUrl, 301); 104 | } 105 | } 106 | // foward requests 107 | const newUrl = new URL(upstream + url.pathname); 108 | const newReq = new Request(newUrl, { 109 | method: request.method, 110 | headers: request.headers, 111 | // don't follow redirect to dockerhub blob upstream 112 | redirect: isDockerHub ? "manual" : "follow", 113 | }); 114 | const resp = await fetch(newReq); 115 | if (resp.status == 401) { 116 | return responseUnauthorized(url); 117 | } 118 | // handle dockerhub blob redirect manually 119 | if (isDockerHub && resp.status == 307) { 120 | const location = new URL(resp.headers.get("Location")); 121 | const redirectResp = await fetch(location.toString(), { 122 | method: "GET", 123 | redirect: "follow", 124 | }); 125 | return redirectResp; 126 | } 127 | return resp; 128 | } 129 | 130 | function parseAuthenticate(authenticateStr) { 131 | // sample: Bearer realm="https://auth.ipv6.docker.com/token",service="registry.docker.io" 132 | // match strings after =" and before " 133 | const re = /(?<=\=")(?:\\.|[^"\\])*(?=")/g; 134 | const matches = authenticateStr.match(re); 135 | if (matches == null || matches.length < 2) { 136 | throw new Error(`invalid Www-Authenticate Header: ${authenticateStr}`); 137 | } 138 | return { 139 | realm: matches[0], 140 | service: matches[1], 141 | }; 142 | } 143 | 144 | async function fetchToken(wwwAuthenticate, scope, authorization) { 145 | const url = new URL(wwwAuthenticate.realm); 146 | if (wwwAuthenticate.service.length) { 147 | url.searchParams.set("service", wwwAuthenticate.service); 148 | } 149 | if (scope) { 150 | url.searchParams.set("scope", scope); 151 | } 152 | const headers = new Headers(); 153 | if (authorization) { 154 | headers.set("Authorization", authorization); 155 | } 156 | return await fetch(url, { method: "GET", headers: headers }); 157 | } 158 | 159 | function responseUnauthorized(url) { 160 | const headers = new Headers(); 161 | if (MODE == "debug") { 162 | headers.set( 163 | "Www-Authenticate", 164 | `Bearer realm="http://${url.host}/v2/auth",service="cloudflare-docker-proxy"` 165 | ); 166 | } else { 167 | headers.set( 168 | "Www-Authenticate", 169 | `Bearer realm="https://${url.hostname}/v2/auth",service="cloudflare-docker-proxy"` 170 | ); 171 | } 172 | return new Response(JSON.stringify({ message: "UNAUTHORIZED" }), { 173 | status: 401, 174 | headers: headers, 175 | }); 176 | } 177 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = { 4 | context: path.resolve(__dirname, "./"), 5 | target: "webworker", 6 | mode: "production", 7 | optimization: { 8 | usedExports: true, 9 | }, 10 | module: { 11 | rules: [ 12 | { 13 | include: /node_modules/, 14 | test: /\.mjs$/, 15 | type: "javascript/auto", 16 | }, 17 | ], 18 | }, 19 | }; 20 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "cloudflare-docker-proxy" 2 | compatibility_date = "2023-12-01" 3 | 4 | [dev] 5 | ip = "0.0.0.0" 6 | port = 8787 7 | local_protocol = "http" 8 | 9 | [env.vars] 10 | CUSTOM_DOMAIN = "libcuda.so" 11 | 12 | [env.dev.vars] 13 | MODE = "debug" 14 | TARGET_UPSTREAM = "https://registry-1.docker.io" 15 | CUSTOM_DOMAIN = "exmaple.com" 16 | 17 | [env.production] 18 | name = "cloudflare-docker-proxy" 19 | # routes = [ 20 | # { pattern = "docker.libcuda.so", custom_domain = true }, 21 | # { pattern = "quay.libcuda.so", custom_domain = true }, 22 | # { pattern = "gcr.libcuda.so", custom_domain = true }, 23 | # { pattern = "k8s-gcr.libcuda.so", custom_domain = true }, 24 | # { pattern = "k8s.libcuda.so", custom_domain = true }, 25 | # { pattern = "ghcr.libcuda.so", custom_domain = true }, 26 | # { pattern = "cloudsmith.libcuda.so", custom_domain = true }, 27 | # ] 28 | 29 | [env.production.vars] 30 | MODE = "production" 31 | TARGET_UPSTREAM = "" 32 | 33 | [env.staging] 34 | name = "cloudflare-docker-proxy-staging" 35 | # route = { pattern = "docker-staging.libcuda.so", custom_domain = true } 36 | 37 | [env.staging.vars] 38 | MODE = "staging" 39 | TARGET_UPSTREAM = "" 40 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@cloudflare/kv-asset-handler@0.3.4": 6 | version "0.3.4" 7 | resolved "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.3.4.tgz" 8 | integrity sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q== 9 | dependencies: 10 | mime "^3.0.0" 11 | 12 | "@cloudflare/unenv-preset@2.0.2": 13 | version "2.0.2" 14 | resolved "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.0.2.tgz" 15 | integrity sha512-nyzYnlZjjV5xT3LizahG1Iu6mnrCaxglJ04rZLpDwlDVDZ7v46lNsfxhV3A/xtfgQuSHmLnc6SVI+KwBpc3Lwg== 16 | 17 | "@cloudflare/workerd-darwin-64@1.20250408.0": 18 | version "1.20250408.0" 19 | resolved "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250408.0.tgz" 20 | integrity sha512-bxhIwBWxaNItZLXDNOKY2dCv0FHjDiDkfJFpwv4HvtvU5MKcrivZHVmmfDzLW85rqzfcDOmKbZeMPVfiKxdBZw== 21 | 22 | "@cloudflare/workerd-darwin-arm64@1.20250408.0": 23 | version "1.20250408.0" 24 | resolved "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250408.0.tgz" 25 | integrity sha512-5XZ2Oykr8bSo7zBmERtHh18h5BZYC/6H1YFWVxEj3PtalF3+6SHsO4KZsbGvDml9Pu7sHV277jiZE5eny8Hlyw== 26 | 27 | "@cloudflare/workerd-linux-64@1.20250408.0": 28 | version "1.20250408.0" 29 | resolved "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250408.0.tgz" 30 | integrity sha512-WbgItXWln6G5d7GvYLWcuOzAVwafysZaWunH3UEfsm95wPuRofpYnlDD861gdWJX10IHSVgMStGESUcs7FLerQ== 31 | 32 | "@cloudflare/workerd-linux-arm64@1.20250408.0": 33 | version "1.20250408.0" 34 | resolved "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250408.0.tgz" 35 | integrity sha512-pAhEywPPvr92SLylnQfZEPgXz+9pOG9G9haAPLpEatncZwYiYd9yiR6HYWhKp2erzCoNrOqKg9IlQwU3z1IDiw== 36 | 37 | "@cloudflare/workerd-windows-64@1.20250408.0": 38 | version "1.20250408.0" 39 | resolved "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250408.0.tgz" 40 | integrity sha512-nJ3RjMKGae2aF2rZ/CNeBvQPM+W5V1SUK0FYWG/uomyr7uQ2l4IayHna1ODg/OHHTEgIjwom0Mbn58iXb0WOcQ== 41 | 42 | "@cspotcode/source-map-support@0.8.1": 43 | version "0.8.1" 44 | resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" 45 | integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== 46 | dependencies: 47 | "@jridgewell/trace-mapping" "0.3.9" 48 | 49 | "@discoveryjs/json-ext@^0.5.0": 50 | version "0.5.7" 51 | resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" 52 | integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== 53 | 54 | "@emnapi/runtime@^1.2.0": 55 | version "1.4.3" 56 | resolved "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz" 57 | integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ== 58 | dependencies: 59 | tslib "^2.4.0" 60 | 61 | "@esbuild-plugins/node-globals-polyfill@0.2.3": 62 | version "0.2.3" 63 | resolved "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz" 64 | integrity sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw== 65 | 66 | "@esbuild-plugins/node-modules-polyfill@0.2.2": 67 | version "0.2.2" 68 | resolved "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz" 69 | integrity sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA== 70 | dependencies: 71 | escape-string-regexp "^4.0.0" 72 | rollup-plugin-node-polyfills "^0.2.1" 73 | 74 | "@esbuild/android-arm@0.17.19": 75 | version "0.17.19" 76 | resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz" 77 | integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== 78 | 79 | "@esbuild/android-arm64@0.17.19": 80 | version "0.17.19" 81 | resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz" 82 | integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== 83 | 84 | "@esbuild/android-x64@0.17.19": 85 | version "0.17.19" 86 | resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz" 87 | integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== 88 | 89 | "@esbuild/darwin-arm64@0.17.19": 90 | version "0.17.19" 91 | resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz" 92 | integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== 93 | 94 | "@esbuild/darwin-x64@0.17.19": 95 | version "0.17.19" 96 | resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz" 97 | integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== 98 | 99 | "@esbuild/freebsd-arm64@0.17.19": 100 | version "0.17.19" 101 | resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz" 102 | integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== 103 | 104 | "@esbuild/freebsd-x64@0.17.19": 105 | version "0.17.19" 106 | resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz" 107 | integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== 108 | 109 | "@esbuild/linux-arm@0.17.19": 110 | version "0.17.19" 111 | resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz" 112 | integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== 113 | 114 | "@esbuild/linux-arm64@0.17.19": 115 | version "0.17.19" 116 | resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz" 117 | integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== 118 | 119 | "@esbuild/linux-ia32@0.17.19": 120 | version "0.17.19" 121 | resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz" 122 | integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== 123 | 124 | "@esbuild/linux-loong64@0.17.19": 125 | version "0.17.19" 126 | resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz" 127 | integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== 128 | 129 | "@esbuild/linux-mips64el@0.17.19": 130 | version "0.17.19" 131 | resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz" 132 | integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== 133 | 134 | "@esbuild/linux-ppc64@0.17.19": 135 | version "0.17.19" 136 | resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz" 137 | integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== 138 | 139 | "@esbuild/linux-riscv64@0.17.19": 140 | version "0.17.19" 141 | resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz" 142 | integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== 143 | 144 | "@esbuild/linux-s390x@0.17.19": 145 | version "0.17.19" 146 | resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz" 147 | integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== 148 | 149 | "@esbuild/linux-x64@0.17.19": 150 | version "0.17.19" 151 | resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz" 152 | integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== 153 | 154 | "@esbuild/netbsd-x64@0.17.19": 155 | version "0.17.19" 156 | resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz" 157 | integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== 158 | 159 | "@esbuild/openbsd-x64@0.17.19": 160 | version "0.17.19" 161 | resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz" 162 | integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== 163 | 164 | "@esbuild/sunos-x64@0.17.19": 165 | version "0.17.19" 166 | resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz" 167 | integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== 168 | 169 | "@esbuild/win32-arm64@0.17.19": 170 | version "0.17.19" 171 | resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz" 172 | integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== 173 | 174 | "@esbuild/win32-ia32@0.17.19": 175 | version "0.17.19" 176 | resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz" 177 | integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== 178 | 179 | "@esbuild/win32-x64@0.17.19": 180 | version "0.17.19" 181 | resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz" 182 | integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== 183 | 184 | "@fastify/busboy@^2.0.0": 185 | version "2.1.1" 186 | resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" 187 | integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== 188 | 189 | "@img/sharp-darwin-arm64@0.33.5": 190 | version "0.33.5" 191 | resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz" 192 | integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== 193 | optionalDependencies: 194 | "@img/sharp-libvips-darwin-arm64" "1.0.4" 195 | 196 | "@img/sharp-darwin-x64@0.33.5": 197 | version "0.33.5" 198 | resolved "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz" 199 | integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== 200 | optionalDependencies: 201 | "@img/sharp-libvips-darwin-x64" "1.0.4" 202 | 203 | "@img/sharp-libvips-darwin-arm64@1.0.4": 204 | version "1.0.4" 205 | resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz" 206 | integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== 207 | 208 | "@img/sharp-libvips-darwin-x64@1.0.4": 209 | version "1.0.4" 210 | resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz" 211 | integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== 212 | 213 | "@img/sharp-libvips-linux-arm@1.0.5": 214 | version "1.0.5" 215 | resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz" 216 | integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== 217 | 218 | "@img/sharp-libvips-linux-arm64@1.0.4": 219 | version "1.0.4" 220 | resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz" 221 | integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== 222 | 223 | "@img/sharp-libvips-linux-s390x@1.0.4": 224 | version "1.0.4" 225 | resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz" 226 | integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== 227 | 228 | "@img/sharp-libvips-linux-x64@1.0.4": 229 | version "1.0.4" 230 | resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz" 231 | integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== 232 | 233 | "@img/sharp-libvips-linuxmusl-arm64@1.0.4": 234 | version "1.0.4" 235 | resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz" 236 | integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== 237 | 238 | "@img/sharp-libvips-linuxmusl-x64@1.0.4": 239 | version "1.0.4" 240 | resolved "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz" 241 | integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== 242 | 243 | "@img/sharp-linux-arm@0.33.5": 244 | version "0.33.5" 245 | resolved "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz" 246 | integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== 247 | optionalDependencies: 248 | "@img/sharp-libvips-linux-arm" "1.0.5" 249 | 250 | "@img/sharp-linux-arm64@0.33.5": 251 | version "0.33.5" 252 | resolved "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz" 253 | integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== 254 | optionalDependencies: 255 | "@img/sharp-libvips-linux-arm64" "1.0.4" 256 | 257 | "@img/sharp-linux-s390x@0.33.5": 258 | version "0.33.5" 259 | resolved "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz" 260 | integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== 261 | optionalDependencies: 262 | "@img/sharp-libvips-linux-s390x" "1.0.4" 263 | 264 | "@img/sharp-linux-x64@0.33.5": 265 | version "0.33.5" 266 | resolved "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz" 267 | integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== 268 | optionalDependencies: 269 | "@img/sharp-libvips-linux-x64" "1.0.4" 270 | 271 | "@img/sharp-linuxmusl-arm64@0.33.5": 272 | version "0.33.5" 273 | resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz" 274 | integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== 275 | optionalDependencies: 276 | "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" 277 | 278 | "@img/sharp-linuxmusl-x64@0.33.5": 279 | version "0.33.5" 280 | resolved "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz" 281 | integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== 282 | optionalDependencies: 283 | "@img/sharp-libvips-linuxmusl-x64" "1.0.4" 284 | 285 | "@img/sharp-wasm32@0.33.5": 286 | version "0.33.5" 287 | resolved "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz" 288 | integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== 289 | dependencies: 290 | "@emnapi/runtime" "^1.2.0" 291 | 292 | "@img/sharp-win32-ia32@0.33.5": 293 | version "0.33.5" 294 | resolved "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz" 295 | integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== 296 | 297 | "@img/sharp-win32-x64@0.33.5": 298 | version "0.33.5" 299 | resolved "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz" 300 | integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== 301 | 302 | "@jridgewell/resolve-uri@^3.0.3": 303 | version "3.1.2" 304 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" 305 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 306 | 307 | "@jridgewell/sourcemap-codec@^1.4.10": 308 | version "1.5.0" 309 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" 310 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 311 | 312 | "@jridgewell/trace-mapping@0.3.9": 313 | version "0.3.9" 314 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" 315 | integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== 316 | dependencies: 317 | "@jridgewell/resolve-uri" "^3.0.3" 318 | "@jridgewell/sourcemap-codec" "^1.4.10" 319 | 320 | "@types/eslint-scope@^3.7.3": 321 | version "3.7.3" 322 | resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz" 323 | integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== 324 | dependencies: 325 | "@types/eslint" "*" 326 | "@types/estree" "*" 327 | 328 | "@types/eslint@*": 329 | version "8.4.1" 330 | resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz" 331 | integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== 332 | dependencies: 333 | "@types/estree" "*" 334 | "@types/json-schema" "*" 335 | 336 | "@types/estree@*", "@types/estree@^0.0.51": 337 | version "0.0.51" 338 | resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" 339 | integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== 340 | 341 | "@types/json-schema@*", "@types/json-schema@^7.0.8": 342 | version "7.0.10" 343 | resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz" 344 | integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== 345 | 346 | "@types/node@*": 347 | version "17.0.22" 348 | resolved "https://registry.npmjs.org/@types/node/-/node-17.0.22.tgz" 349 | integrity sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw== 350 | 351 | "@webassemblyjs/ast@1.11.1": 352 | version "1.11.1" 353 | resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" 354 | integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== 355 | dependencies: 356 | "@webassemblyjs/helper-numbers" "1.11.1" 357 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 358 | 359 | "@webassemblyjs/floating-point-hex-parser@1.11.1": 360 | version "1.11.1" 361 | resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" 362 | integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== 363 | 364 | "@webassemblyjs/helper-api-error@1.11.1": 365 | version "1.11.1" 366 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" 367 | integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== 368 | 369 | "@webassemblyjs/helper-buffer@1.11.1": 370 | version "1.11.1" 371 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" 372 | integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== 373 | 374 | "@webassemblyjs/helper-numbers@1.11.1": 375 | version "1.11.1" 376 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" 377 | integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== 378 | dependencies: 379 | "@webassemblyjs/floating-point-hex-parser" "1.11.1" 380 | "@webassemblyjs/helper-api-error" "1.11.1" 381 | "@xtuc/long" "4.2.2" 382 | 383 | "@webassemblyjs/helper-wasm-bytecode@1.11.1": 384 | version "1.11.1" 385 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" 386 | integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== 387 | 388 | "@webassemblyjs/helper-wasm-section@1.11.1": 389 | version "1.11.1" 390 | resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" 391 | integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== 392 | dependencies: 393 | "@webassemblyjs/ast" "1.11.1" 394 | "@webassemblyjs/helper-buffer" "1.11.1" 395 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 396 | "@webassemblyjs/wasm-gen" "1.11.1" 397 | 398 | "@webassemblyjs/ieee754@1.11.1": 399 | version "1.11.1" 400 | resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" 401 | integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== 402 | dependencies: 403 | "@xtuc/ieee754" "^1.2.0" 404 | 405 | "@webassemblyjs/leb128@1.11.1": 406 | version "1.11.1" 407 | resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" 408 | integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== 409 | dependencies: 410 | "@xtuc/long" "4.2.2" 411 | 412 | "@webassemblyjs/utf8@1.11.1": 413 | version "1.11.1" 414 | resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" 415 | integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== 416 | 417 | "@webassemblyjs/wasm-edit@1.11.1": 418 | version "1.11.1" 419 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" 420 | integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== 421 | dependencies: 422 | "@webassemblyjs/ast" "1.11.1" 423 | "@webassemblyjs/helper-buffer" "1.11.1" 424 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 425 | "@webassemblyjs/helper-wasm-section" "1.11.1" 426 | "@webassemblyjs/wasm-gen" "1.11.1" 427 | "@webassemblyjs/wasm-opt" "1.11.1" 428 | "@webassemblyjs/wasm-parser" "1.11.1" 429 | "@webassemblyjs/wast-printer" "1.11.1" 430 | 431 | "@webassemblyjs/wasm-gen@1.11.1": 432 | version "1.11.1" 433 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" 434 | integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== 435 | dependencies: 436 | "@webassemblyjs/ast" "1.11.1" 437 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 438 | "@webassemblyjs/ieee754" "1.11.1" 439 | "@webassemblyjs/leb128" "1.11.1" 440 | "@webassemblyjs/utf8" "1.11.1" 441 | 442 | "@webassemblyjs/wasm-opt@1.11.1": 443 | version "1.11.1" 444 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" 445 | integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== 446 | dependencies: 447 | "@webassemblyjs/ast" "1.11.1" 448 | "@webassemblyjs/helper-buffer" "1.11.1" 449 | "@webassemblyjs/wasm-gen" "1.11.1" 450 | "@webassemblyjs/wasm-parser" "1.11.1" 451 | 452 | "@webassemblyjs/wasm-parser@1.11.1": 453 | version "1.11.1" 454 | resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" 455 | integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== 456 | dependencies: 457 | "@webassemblyjs/ast" "1.11.1" 458 | "@webassemblyjs/helper-api-error" "1.11.1" 459 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 460 | "@webassemblyjs/ieee754" "1.11.1" 461 | "@webassemblyjs/leb128" "1.11.1" 462 | "@webassemblyjs/utf8" "1.11.1" 463 | 464 | "@webassemblyjs/wast-printer@1.11.1": 465 | version "1.11.1" 466 | resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" 467 | integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== 468 | dependencies: 469 | "@webassemblyjs/ast" "1.11.1" 470 | "@xtuc/long" "4.2.2" 471 | 472 | "@webpack-cli/configtest@^1.1.1": 473 | version "1.1.1" 474 | resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz" 475 | integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg== 476 | 477 | "@webpack-cli/info@^1.4.1": 478 | version "1.4.1" 479 | resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz" 480 | integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA== 481 | dependencies: 482 | envinfo "^7.7.3" 483 | 484 | "@webpack-cli/serve@^1.6.1": 485 | version "1.6.1" 486 | resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz" 487 | integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw== 488 | 489 | "@xtuc/ieee754@^1.2.0": 490 | version "1.2.0" 491 | resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" 492 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 493 | 494 | "@xtuc/long@4.2.2": 495 | version "4.2.2" 496 | resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" 497 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 498 | 499 | acorn-import-assertions@^1.7.6: 500 | version "1.8.0" 501 | resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" 502 | integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== 503 | 504 | acorn-walk@8.3.2: 505 | version "8.3.2" 506 | resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz" 507 | integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== 508 | 509 | acorn@^8, acorn@^8.4.1, acorn@^8.5.0, acorn@8.14.0: 510 | version "8.14.0" 511 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" 512 | integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== 513 | 514 | ajv-keywords@^3.5.2: 515 | version "3.5.2" 516 | resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" 517 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 518 | 519 | ajv@^6.12.5, ajv@^6.9.1: 520 | version "6.12.6" 521 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 522 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 523 | dependencies: 524 | fast-deep-equal "^3.1.1" 525 | fast-json-stable-stringify "^2.0.0" 526 | json-schema-traverse "^0.4.1" 527 | uri-js "^4.2.2" 528 | 529 | as-table@^1.0.36: 530 | version "1.0.55" 531 | resolved "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz" 532 | integrity sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ== 533 | dependencies: 534 | printable-characters "^1.0.42" 535 | 536 | blake3-wasm@2.1.5: 537 | version "2.1.5" 538 | resolved "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz" 539 | integrity sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g== 540 | 541 | browserslist@^4.14.5: 542 | version "4.20.2" 543 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz" 544 | integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== 545 | dependencies: 546 | caniuse-lite "^1.0.30001317" 547 | electron-to-chromium "^1.4.84" 548 | escalade "^3.1.1" 549 | node-releases "^2.0.2" 550 | picocolors "^1.0.0" 551 | 552 | buffer-from@^1.0.0: 553 | version "1.1.2" 554 | resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" 555 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 556 | 557 | caniuse-lite@^1.0.30001317: 558 | version "1.0.30001319" 559 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz" 560 | integrity sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw== 561 | 562 | chrome-trace-event@^1.0.2: 563 | version "1.0.3" 564 | resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" 565 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 566 | 567 | clone-deep@^4.0.1: 568 | version "4.0.1" 569 | resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" 570 | integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== 571 | dependencies: 572 | is-plain-object "^2.0.4" 573 | kind-of "^6.0.2" 574 | shallow-clone "^3.0.0" 575 | 576 | color-convert@^2.0.1: 577 | version "2.0.1" 578 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 579 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 580 | dependencies: 581 | color-name "~1.1.4" 582 | 583 | color-name@^1.0.0, color-name@~1.1.4: 584 | version "1.1.4" 585 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 586 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 587 | 588 | color-string@^1.9.0: 589 | version "1.9.1" 590 | resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" 591 | integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== 592 | dependencies: 593 | color-name "^1.0.0" 594 | simple-swizzle "^0.2.2" 595 | 596 | color@^4.2.3: 597 | version "4.2.3" 598 | resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" 599 | integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== 600 | dependencies: 601 | color-convert "^2.0.1" 602 | color-string "^1.9.0" 603 | 604 | colorette@^2.0.14: 605 | version "2.0.16" 606 | resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" 607 | integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== 608 | 609 | commander@^2.20.0: 610 | version "2.20.3" 611 | resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" 612 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 613 | 614 | commander@^7.0.0: 615 | version "7.2.0" 616 | resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" 617 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 618 | 619 | cookie@^0.7.1: 620 | version "0.7.2" 621 | resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz" 622 | integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== 623 | 624 | cross-spawn@^7.0.3: 625 | version "7.0.3" 626 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 627 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 628 | dependencies: 629 | path-key "^3.1.0" 630 | shebang-command "^2.0.0" 631 | which "^2.0.1" 632 | 633 | data-uri-to-buffer@^2.0.0: 634 | version "2.0.2" 635 | resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz" 636 | integrity sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA== 637 | 638 | defu@^6.1.4: 639 | version "6.1.4" 640 | resolved "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz" 641 | integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== 642 | 643 | detect-libc@^2.0.3: 644 | version "2.0.4" 645 | resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz" 646 | integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA== 647 | 648 | electron-to-chromium@^1.4.84: 649 | version "1.4.88" 650 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.88.tgz" 651 | integrity sha512-oA7mzccefkvTNi9u7DXmT0LqvhnOiN2BhSrKerta7HeUC1cLoIwtbf2wL+Ah2ozh5KQd3/1njrGrwDBXx6d14Q== 652 | 653 | enhanced-resolve@^5.9.2: 654 | version "5.9.2" 655 | resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz" 656 | integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA== 657 | dependencies: 658 | graceful-fs "^4.2.4" 659 | tapable "^2.2.0" 660 | 661 | envinfo@^7.7.3: 662 | version "7.8.1" 663 | resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" 664 | integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== 665 | 666 | es-module-lexer@^0.9.0: 667 | version "0.9.3" 668 | resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" 669 | integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== 670 | 671 | esbuild@*, esbuild@0.17.19: 672 | version "0.17.19" 673 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz" 674 | integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== 675 | optionalDependencies: 676 | "@esbuild/android-arm" "0.17.19" 677 | "@esbuild/android-arm64" "0.17.19" 678 | "@esbuild/android-x64" "0.17.19" 679 | "@esbuild/darwin-arm64" "0.17.19" 680 | "@esbuild/darwin-x64" "0.17.19" 681 | "@esbuild/freebsd-arm64" "0.17.19" 682 | "@esbuild/freebsd-x64" "0.17.19" 683 | "@esbuild/linux-arm" "0.17.19" 684 | "@esbuild/linux-arm64" "0.17.19" 685 | "@esbuild/linux-ia32" "0.17.19" 686 | "@esbuild/linux-loong64" "0.17.19" 687 | "@esbuild/linux-mips64el" "0.17.19" 688 | "@esbuild/linux-ppc64" "0.17.19" 689 | "@esbuild/linux-riscv64" "0.17.19" 690 | "@esbuild/linux-s390x" "0.17.19" 691 | "@esbuild/linux-x64" "0.17.19" 692 | "@esbuild/netbsd-x64" "0.17.19" 693 | "@esbuild/openbsd-x64" "0.17.19" 694 | "@esbuild/sunos-x64" "0.17.19" 695 | "@esbuild/win32-arm64" "0.17.19" 696 | "@esbuild/win32-ia32" "0.17.19" 697 | "@esbuild/win32-x64" "0.17.19" 698 | 699 | escalade@^3.1.1: 700 | version "3.1.1" 701 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" 702 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 703 | 704 | escape-string-regexp@^4.0.0: 705 | version "4.0.0" 706 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 707 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 708 | 709 | eslint-scope@5.1.1: 710 | version "5.1.1" 711 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" 712 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 713 | dependencies: 714 | esrecurse "^4.3.0" 715 | estraverse "^4.1.1" 716 | 717 | esrecurse@^4.3.0: 718 | version "4.3.0" 719 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 720 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 721 | dependencies: 722 | estraverse "^5.2.0" 723 | 724 | estraverse@^4.1.1: 725 | version "4.3.0" 726 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" 727 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 728 | 729 | estraverse@^5.2.0: 730 | version "5.3.0" 731 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 732 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 733 | 734 | estree-walker@^0.6.1: 735 | version "0.6.1" 736 | resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz" 737 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 738 | 739 | events@^3.2.0: 740 | version "3.3.0" 741 | resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" 742 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 743 | 744 | execa@^5.0.0: 745 | version "5.1.1" 746 | resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" 747 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 748 | dependencies: 749 | cross-spawn "^7.0.3" 750 | get-stream "^6.0.0" 751 | human-signals "^2.1.0" 752 | is-stream "^2.0.0" 753 | merge-stream "^2.0.0" 754 | npm-run-path "^4.0.1" 755 | onetime "^5.1.2" 756 | signal-exit "^3.0.3" 757 | strip-final-newline "^2.0.0" 758 | 759 | exit-hook@2.2.1: 760 | version "2.2.1" 761 | resolved "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz" 762 | integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== 763 | 764 | exsolve@^1.0.1: 765 | version "1.0.5" 766 | resolved "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz" 767 | integrity sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg== 768 | 769 | fast-deep-equal@^3.1.1: 770 | version "3.1.3" 771 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 772 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 773 | 774 | fast-json-stable-stringify@^2.0.0: 775 | version "2.1.0" 776 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 777 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 778 | 779 | fastest-levenshtein@^1.0.12: 780 | version "1.0.12" 781 | resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" 782 | integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== 783 | 784 | find-up@^4.0.0: 785 | version "4.1.0" 786 | resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 787 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 788 | dependencies: 789 | locate-path "^5.0.0" 790 | path-exists "^4.0.0" 791 | 792 | fsevents@~2.3.2: 793 | version "2.3.3" 794 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" 795 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 796 | 797 | function-bind@^1.1.1: 798 | version "1.1.1" 799 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 800 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 801 | 802 | get-source@^2.0.12: 803 | version "2.0.12" 804 | resolved "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz" 805 | integrity sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w== 806 | dependencies: 807 | data-uri-to-buffer "^2.0.0" 808 | source-map "^0.6.1" 809 | 810 | get-stream@^6.0.0: 811 | version "6.0.1" 812 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" 813 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 814 | 815 | glob-to-regexp@^0.4.1, glob-to-regexp@0.4.1: 816 | version "0.4.1" 817 | resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" 818 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 819 | 820 | graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 821 | version "4.2.9" 822 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" 823 | integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== 824 | 825 | has-flag@^4.0.0: 826 | version "4.0.0" 827 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 828 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 829 | 830 | has@^1.0.3: 831 | version "1.0.3" 832 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 833 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 834 | dependencies: 835 | function-bind "^1.1.1" 836 | 837 | human-signals@^2.1.0: 838 | version "2.1.0" 839 | resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" 840 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 841 | 842 | import-local@^3.0.2: 843 | version "3.1.0" 844 | resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" 845 | integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== 846 | dependencies: 847 | pkg-dir "^4.2.0" 848 | resolve-cwd "^3.0.0" 849 | 850 | interpret@^2.2.0: 851 | version "2.2.0" 852 | resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" 853 | integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== 854 | 855 | is-arrayish@^0.3.1: 856 | version "0.3.2" 857 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" 858 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== 859 | 860 | is-core-module@^2.8.1: 861 | version "2.8.1" 862 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz" 863 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== 864 | dependencies: 865 | has "^1.0.3" 866 | 867 | is-plain-object@^2.0.4: 868 | version "2.0.4" 869 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" 870 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 871 | dependencies: 872 | isobject "^3.0.1" 873 | 874 | is-stream@^2.0.0: 875 | version "2.0.1" 876 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" 877 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 878 | 879 | isexe@^2.0.0: 880 | version "2.0.0" 881 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 882 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 883 | 884 | isobject@^3.0.1: 885 | version "3.0.1" 886 | resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" 887 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 888 | 889 | jest-worker@^27.4.5: 890 | version "27.5.1" 891 | resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" 892 | integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== 893 | dependencies: 894 | "@types/node" "*" 895 | merge-stream "^2.0.0" 896 | supports-color "^8.0.0" 897 | 898 | json-parse-better-errors@^1.0.2: 899 | version "1.0.2" 900 | resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" 901 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 902 | 903 | json-schema-traverse@^0.4.1: 904 | version "0.4.1" 905 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 906 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 907 | 908 | kind-of@^6.0.2: 909 | version "6.0.3" 910 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" 911 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 912 | 913 | loader-runner@^4.2.0: 914 | version "4.2.0" 915 | resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" 916 | integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== 917 | 918 | locate-path@^5.0.0: 919 | version "5.0.0" 920 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" 921 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 922 | dependencies: 923 | p-locate "^4.1.0" 924 | 925 | magic-string@^0.25.3: 926 | version "0.25.9" 927 | resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" 928 | integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== 929 | dependencies: 930 | sourcemap-codec "^1.4.8" 931 | 932 | merge-stream@^2.0.0: 933 | version "2.0.0" 934 | resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" 935 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 936 | 937 | mime-db@1.52.0: 938 | version "1.52.0" 939 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 940 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 941 | 942 | mime-types@^2.1.27: 943 | version "2.1.35" 944 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 945 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 946 | dependencies: 947 | mime-db "1.52.0" 948 | 949 | mime@^3.0.0: 950 | version "3.0.0" 951 | resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz" 952 | integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== 953 | 954 | mimic-fn@^2.1.0: 955 | version "2.1.0" 956 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" 957 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 958 | 959 | miniflare@3.20250408.2: 960 | version "3.20250408.2" 961 | resolved "https://registry.npmjs.org/miniflare/-/miniflare-3.20250408.2.tgz" 962 | integrity sha512-uTs7cGWFErgJTKtBdmtctwhuoxniuCQqDT8+xaEiJdEC8d+HsaZVYfZwIX2NuSmdAiHMe7NtbdZYjFMbIXtJsQ== 963 | dependencies: 964 | "@cspotcode/source-map-support" "0.8.1" 965 | acorn "8.14.0" 966 | acorn-walk "8.3.2" 967 | exit-hook "2.2.1" 968 | glob-to-regexp "0.4.1" 969 | stoppable "1.1.0" 970 | undici "^5.28.5" 971 | workerd "1.20250408.0" 972 | ws "8.18.0" 973 | youch "3.3.4" 974 | zod "3.22.3" 975 | 976 | mustache@^4.2.0: 977 | version "4.2.0" 978 | resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz" 979 | integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== 980 | 981 | neo-async@^2.6.2: 982 | version "2.6.2" 983 | resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" 984 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 985 | 986 | node-releases@^2.0.2: 987 | version "2.0.2" 988 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz" 989 | integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== 990 | 991 | npm-run-path@^4.0.1: 992 | version "4.0.1" 993 | resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" 994 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 995 | dependencies: 996 | path-key "^3.0.0" 997 | 998 | ohash@^2.0.10: 999 | version "2.0.11" 1000 | resolved "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz" 1001 | integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== 1002 | 1003 | onetime@^5.1.2: 1004 | version "5.1.2" 1005 | resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" 1006 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 1007 | dependencies: 1008 | mimic-fn "^2.1.0" 1009 | 1010 | p-limit@^2.2.0: 1011 | version "2.3.0" 1012 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" 1013 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1014 | dependencies: 1015 | p-try "^2.0.0" 1016 | 1017 | p-locate@^4.1.0: 1018 | version "4.1.0" 1019 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" 1020 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 1021 | dependencies: 1022 | p-limit "^2.2.0" 1023 | 1024 | p-try@^2.0.0: 1025 | version "2.2.0" 1026 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" 1027 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1028 | 1029 | path-exists@^4.0.0: 1030 | version "4.0.0" 1031 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 1032 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1033 | 1034 | path-key@^3.0.0, path-key@^3.1.0: 1035 | version "3.1.1" 1036 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 1037 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1038 | 1039 | path-parse@^1.0.7: 1040 | version "1.0.7" 1041 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 1042 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1043 | 1044 | path-to-regexp@6.3.0: 1045 | version "6.3.0" 1046 | resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz" 1047 | integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ== 1048 | 1049 | pathe@^2.0.3: 1050 | version "2.0.3" 1051 | resolved "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz" 1052 | integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== 1053 | 1054 | picocolors@^1.0.0: 1055 | version "1.0.0" 1056 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" 1057 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1058 | 1059 | pkg-dir@^4.2.0: 1060 | version "4.2.0" 1061 | resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" 1062 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 1063 | dependencies: 1064 | find-up "^4.0.0" 1065 | 1066 | prettier@^2.4.1: 1067 | version "2.6.0" 1068 | resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz" 1069 | integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== 1070 | 1071 | printable-characters@^1.0.42: 1072 | version "1.0.42" 1073 | resolved "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz" 1074 | integrity sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ== 1075 | 1076 | punycode@^2.1.0: 1077 | version "2.1.1" 1078 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 1079 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1080 | 1081 | randombytes@^2.1.0: 1082 | version "2.1.0" 1083 | resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" 1084 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1085 | dependencies: 1086 | safe-buffer "^5.1.0" 1087 | 1088 | rechoir@^0.7.0: 1089 | version "0.7.1" 1090 | resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz" 1091 | integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== 1092 | dependencies: 1093 | resolve "^1.9.0" 1094 | 1095 | resolve-cwd@^3.0.0: 1096 | version "3.0.0" 1097 | resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" 1098 | integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== 1099 | dependencies: 1100 | resolve-from "^5.0.0" 1101 | 1102 | resolve-from@^5.0.0: 1103 | version "5.0.0" 1104 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" 1105 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1106 | 1107 | resolve@^1.9.0: 1108 | version "1.22.0" 1109 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" 1110 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== 1111 | dependencies: 1112 | is-core-module "^2.8.1" 1113 | path-parse "^1.0.7" 1114 | supports-preserve-symlinks-flag "^1.0.0" 1115 | 1116 | rollup-plugin-inject@^3.0.0: 1117 | version "3.0.2" 1118 | resolved "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz" 1119 | integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== 1120 | dependencies: 1121 | estree-walker "^0.6.1" 1122 | magic-string "^0.25.3" 1123 | rollup-pluginutils "^2.8.1" 1124 | 1125 | rollup-plugin-node-polyfills@^0.2.1: 1126 | version "0.2.1" 1127 | resolved "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz" 1128 | integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== 1129 | dependencies: 1130 | rollup-plugin-inject "^3.0.0" 1131 | 1132 | rollup-pluginutils@^2.8.1: 1133 | version "2.8.2" 1134 | resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz" 1135 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 1136 | dependencies: 1137 | estree-walker "^0.6.1" 1138 | 1139 | safe-buffer@^5.1.0: 1140 | version "5.2.1" 1141 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 1142 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1143 | 1144 | schema-utils@^3.1.0, schema-utils@^3.1.1: 1145 | version "3.1.1" 1146 | resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" 1147 | integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== 1148 | dependencies: 1149 | "@types/json-schema" "^7.0.8" 1150 | ajv "^6.12.5" 1151 | ajv-keywords "^3.5.2" 1152 | 1153 | semver@^7.6.3: 1154 | version "7.7.2" 1155 | resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" 1156 | integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== 1157 | 1158 | serialize-javascript@^6.0.0: 1159 | version "6.0.0" 1160 | resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" 1161 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 1162 | dependencies: 1163 | randombytes "^2.1.0" 1164 | 1165 | shallow-clone@^3.0.0: 1166 | version "3.0.1" 1167 | resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" 1168 | integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== 1169 | dependencies: 1170 | kind-of "^6.0.2" 1171 | 1172 | sharp@^0.33.5: 1173 | version "0.33.5" 1174 | resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz" 1175 | integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== 1176 | dependencies: 1177 | color "^4.2.3" 1178 | detect-libc "^2.0.3" 1179 | semver "^7.6.3" 1180 | optionalDependencies: 1181 | "@img/sharp-darwin-arm64" "0.33.5" 1182 | "@img/sharp-darwin-x64" "0.33.5" 1183 | "@img/sharp-libvips-darwin-arm64" "1.0.4" 1184 | "@img/sharp-libvips-darwin-x64" "1.0.4" 1185 | "@img/sharp-libvips-linux-arm" "1.0.5" 1186 | "@img/sharp-libvips-linux-arm64" "1.0.4" 1187 | "@img/sharp-libvips-linux-s390x" "1.0.4" 1188 | "@img/sharp-libvips-linux-x64" "1.0.4" 1189 | "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" 1190 | "@img/sharp-libvips-linuxmusl-x64" "1.0.4" 1191 | "@img/sharp-linux-arm" "0.33.5" 1192 | "@img/sharp-linux-arm64" "0.33.5" 1193 | "@img/sharp-linux-s390x" "0.33.5" 1194 | "@img/sharp-linux-x64" "0.33.5" 1195 | "@img/sharp-linuxmusl-arm64" "0.33.5" 1196 | "@img/sharp-linuxmusl-x64" "0.33.5" 1197 | "@img/sharp-wasm32" "0.33.5" 1198 | "@img/sharp-win32-ia32" "0.33.5" 1199 | "@img/sharp-win32-x64" "0.33.5" 1200 | 1201 | shebang-command@^2.0.0: 1202 | version "2.0.0" 1203 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 1204 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1205 | dependencies: 1206 | shebang-regex "^3.0.0" 1207 | 1208 | shebang-regex@^3.0.0: 1209 | version "3.0.0" 1210 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 1211 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1212 | 1213 | signal-exit@^3.0.3: 1214 | version "3.0.7" 1215 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" 1216 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 1217 | 1218 | simple-swizzle@^0.2.2: 1219 | version "0.2.2" 1220 | resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" 1221 | integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== 1222 | dependencies: 1223 | is-arrayish "^0.3.1" 1224 | 1225 | source-map-support@~0.5.20: 1226 | version "0.5.21" 1227 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" 1228 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1229 | dependencies: 1230 | buffer-from "^1.0.0" 1231 | source-map "^0.6.0" 1232 | 1233 | source-map@^0.6.0, source-map@^0.6.1: 1234 | version "0.6.1" 1235 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" 1236 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1237 | 1238 | source-map@~0.7.2: 1239 | version "0.7.3" 1240 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" 1241 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 1242 | 1243 | sourcemap-codec@^1.4.8: 1244 | version "1.4.8" 1245 | resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" 1246 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1247 | 1248 | stacktracey@^2.1.8: 1249 | version "2.1.8" 1250 | resolved "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz" 1251 | integrity sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw== 1252 | dependencies: 1253 | as-table "^1.0.36" 1254 | get-source "^2.0.12" 1255 | 1256 | stoppable@1.1.0: 1257 | version "1.1.0" 1258 | resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz" 1259 | integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== 1260 | 1261 | strip-final-newline@^2.0.0: 1262 | version "2.0.0" 1263 | resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" 1264 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 1265 | 1266 | supports-color@^8.0.0: 1267 | version "8.1.1" 1268 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" 1269 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1270 | dependencies: 1271 | has-flag "^4.0.0" 1272 | 1273 | supports-preserve-symlinks-flag@^1.0.0: 1274 | version "1.0.0" 1275 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" 1276 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1277 | 1278 | tapable@^2.1.1, tapable@^2.2.0: 1279 | version "2.2.1" 1280 | resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" 1281 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 1282 | 1283 | terser-webpack-plugin@^5.1.3: 1284 | version "5.3.1" 1285 | resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz" 1286 | integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== 1287 | dependencies: 1288 | jest-worker "^27.4.5" 1289 | schema-utils "^3.1.1" 1290 | serialize-javascript "^6.0.0" 1291 | source-map "^0.6.1" 1292 | terser "^5.7.2" 1293 | 1294 | terser@^5.7.2: 1295 | version "5.12.1" 1296 | resolved "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz" 1297 | integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ== 1298 | dependencies: 1299 | acorn "^8.5.0" 1300 | commander "^2.20.0" 1301 | source-map "~0.7.2" 1302 | source-map-support "~0.5.20" 1303 | 1304 | tslib@^2.4.0: 1305 | version "2.8.1" 1306 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" 1307 | integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== 1308 | 1309 | ufo@^1.5.4: 1310 | version "1.6.1" 1311 | resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz" 1312 | integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== 1313 | 1314 | undici@^5.28.5: 1315 | version "5.29.0" 1316 | resolved "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz" 1317 | integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg== 1318 | dependencies: 1319 | "@fastify/busboy" "^2.0.0" 1320 | 1321 | unenv@2.0.0-rc.14: 1322 | version "2.0.0-rc.14" 1323 | resolved "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.14.tgz" 1324 | integrity sha512-od496pShMen7nOy5VmVJCnq8rptd45vh6Nx/r2iPbrba6pa6p+tS2ywuIHRZ/OBvSbQZB0kWvpO9XBNVFXHD3Q== 1325 | dependencies: 1326 | defu "^6.1.4" 1327 | exsolve "^1.0.1" 1328 | ohash "^2.0.10" 1329 | pathe "^2.0.3" 1330 | ufo "^1.5.4" 1331 | 1332 | uri-js@^4.2.2: 1333 | version "4.4.1" 1334 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 1335 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1336 | dependencies: 1337 | punycode "^2.1.0" 1338 | 1339 | watchpack@^2.3.1: 1340 | version "2.3.1" 1341 | resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz" 1342 | integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== 1343 | dependencies: 1344 | glob-to-regexp "^0.4.1" 1345 | graceful-fs "^4.1.2" 1346 | 1347 | webpack-cli@^4.9.1, webpack-cli@4.x.x: 1348 | version "4.9.2" 1349 | resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz" 1350 | integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== 1351 | dependencies: 1352 | "@discoveryjs/json-ext" "^0.5.0" 1353 | "@webpack-cli/configtest" "^1.1.1" 1354 | "@webpack-cli/info" "^1.4.1" 1355 | "@webpack-cli/serve" "^1.6.1" 1356 | colorette "^2.0.14" 1357 | commander "^7.0.0" 1358 | execa "^5.0.0" 1359 | fastest-levenshtein "^1.0.12" 1360 | import-local "^3.0.2" 1361 | interpret "^2.2.0" 1362 | rechoir "^0.7.0" 1363 | webpack-merge "^5.7.3" 1364 | 1365 | webpack-merge@^5.7.3: 1366 | version "5.8.0" 1367 | resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" 1368 | integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== 1369 | dependencies: 1370 | clone-deep "^4.0.1" 1371 | wildcard "^2.0.0" 1372 | 1373 | webpack-sources@^3.2.3: 1374 | version "3.2.3" 1375 | resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" 1376 | integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== 1377 | 1378 | webpack@^5.1.0, webpack@^5.65.0, "webpack@4.x.x || 5.x.x": 1379 | version "5.70.0" 1380 | resolved "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz" 1381 | integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== 1382 | dependencies: 1383 | "@types/eslint-scope" "^3.7.3" 1384 | "@types/estree" "^0.0.51" 1385 | "@webassemblyjs/ast" "1.11.1" 1386 | "@webassemblyjs/wasm-edit" "1.11.1" 1387 | "@webassemblyjs/wasm-parser" "1.11.1" 1388 | acorn "^8.4.1" 1389 | acorn-import-assertions "^1.7.6" 1390 | browserslist "^4.14.5" 1391 | chrome-trace-event "^1.0.2" 1392 | enhanced-resolve "^5.9.2" 1393 | es-module-lexer "^0.9.0" 1394 | eslint-scope "5.1.1" 1395 | events "^3.2.0" 1396 | glob-to-regexp "^0.4.1" 1397 | graceful-fs "^4.2.9" 1398 | json-parse-better-errors "^1.0.2" 1399 | loader-runner "^4.2.0" 1400 | mime-types "^2.1.27" 1401 | neo-async "^2.6.2" 1402 | schema-utils "^3.1.0" 1403 | tapable "^2.1.1" 1404 | terser-webpack-plugin "^5.1.3" 1405 | watchpack "^2.3.1" 1406 | webpack-sources "^3.2.3" 1407 | 1408 | which@^2.0.1: 1409 | version "2.0.2" 1410 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 1411 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1412 | dependencies: 1413 | isexe "^2.0.0" 1414 | 1415 | wildcard@^2.0.0: 1416 | version "2.0.0" 1417 | resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" 1418 | integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== 1419 | 1420 | workerd@^1.20250124.0, workerd@1.20250408.0: 1421 | version "1.20250408.0" 1422 | resolved "https://registry.npmjs.org/workerd/-/workerd-1.20250408.0.tgz" 1423 | integrity sha512-bBUX+UsvpzAqiWFNeZrlZmDGddiGZdBBbftZJz2wE6iUg/cIAJeVQYTtS/3ahaicguoLBz4nJiDo8luqM9fx1A== 1424 | optionalDependencies: 1425 | "@cloudflare/workerd-darwin-64" "1.20250408.0" 1426 | "@cloudflare/workerd-darwin-arm64" "1.20250408.0" 1427 | "@cloudflare/workerd-linux-64" "1.20250408.0" 1428 | "@cloudflare/workerd-linux-arm64" "1.20250408.0" 1429 | "@cloudflare/workerd-windows-64" "1.20250408.0" 1430 | 1431 | wrangler@^3.36.0: 1432 | version "3.114.9" 1433 | resolved "https://registry.npmjs.org/wrangler/-/wrangler-3.114.9.tgz" 1434 | integrity sha512-1e0gL+rxLF04kM9bW4sxoDGLXpJ1x53Rx1t18JuUm6F67qadKKPISyUAXuBeIQudWrCWEBXaTVnSdLHz0yBXbA== 1435 | dependencies: 1436 | "@cloudflare/kv-asset-handler" "0.3.4" 1437 | "@cloudflare/unenv-preset" "2.0.2" 1438 | "@esbuild-plugins/node-globals-polyfill" "0.2.3" 1439 | "@esbuild-plugins/node-modules-polyfill" "0.2.2" 1440 | blake3-wasm "2.1.5" 1441 | esbuild "0.17.19" 1442 | miniflare "3.20250408.2" 1443 | path-to-regexp "6.3.0" 1444 | unenv "2.0.0-rc.14" 1445 | workerd "1.20250408.0" 1446 | optionalDependencies: 1447 | fsevents "~2.3.2" 1448 | sharp "^0.33.5" 1449 | 1450 | ws@8.18.0: 1451 | version "8.18.0" 1452 | resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" 1453 | integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== 1454 | 1455 | youch@3.3.4: 1456 | version "3.3.4" 1457 | resolved "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz" 1458 | integrity sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg== 1459 | dependencies: 1460 | cookie "^0.7.1" 1461 | mustache "^4.2.0" 1462 | stacktracey "^2.1.8" 1463 | 1464 | zod@3.22.3: 1465 | version "3.22.3" 1466 | resolved "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz" 1467 | integrity sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug== 1468 | --------------------------------------------------------------------------------