+172
avatar/.gitignore
+172
avatar/.gitignore
···
1
+
# Logs
2
+
3
+
logs
4
+
_.log
5
+
npm-debug.log_
6
+
yarn-debug.log*
7
+
yarn-error.log*
8
+
lerna-debug.log*
9
+
.pnpm-debug.log*
10
+
11
+
# Diagnostic reports (https://nodejs.org/api/report.html)
12
+
13
+
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
14
+
15
+
# Runtime data
16
+
17
+
pids
18
+
_.pid
19
+
_.seed
20
+
\*.pid.lock
21
+
22
+
# Directory for instrumented libs generated by jscoverage/JSCover
23
+
24
+
lib-cov
25
+
26
+
# Coverage directory used by tools like istanbul
27
+
28
+
coverage
29
+
\*.lcov
30
+
31
+
# nyc test coverage
32
+
33
+
.nyc_output
34
+
35
+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
36
+
37
+
.grunt
38
+
39
+
# Bower dependency directory (https://bower.io/)
40
+
41
+
bower_components
42
+
43
+
# node-waf configuration
44
+
45
+
.lock-wscript
46
+
47
+
# Compiled binary addons (https://nodejs.org/api/addons.html)
48
+
49
+
build/Release
50
+
51
+
# Dependency directories
52
+
53
+
node_modules/
54
+
jspm_packages/
55
+
56
+
# Snowpack dependency directory (https://snowpack.dev/)
57
+
58
+
web_modules/
59
+
60
+
# TypeScript cache
61
+
62
+
\*.tsbuildinfo
63
+
64
+
# Optional npm cache directory
65
+
66
+
.npm
67
+
68
+
# Optional eslint cache
69
+
70
+
.eslintcache
71
+
72
+
# Optional stylelint cache
73
+
74
+
.stylelintcache
75
+
76
+
# Microbundle cache
77
+
78
+
.rpt2_cache/
79
+
.rts2_cache_cjs/
80
+
.rts2_cache_es/
81
+
.rts2_cache_umd/
82
+
83
+
# Optional REPL history
84
+
85
+
.node_repl_history
86
+
87
+
# Output of 'npm pack'
88
+
89
+
\*.tgz
90
+
91
+
# Yarn Integrity file
92
+
93
+
.yarn-integrity
94
+
95
+
# dotenv environment variable files
96
+
97
+
.env
98
+
.env.development.local
99
+
.env.test.local
100
+
.env.production.local
101
+
.env.local
102
+
103
+
# parcel-bundler cache (https://parceljs.org/)
104
+
105
+
.cache
106
+
.parcel-cache
107
+
108
+
# Next.js build output
109
+
110
+
.next
111
+
out
112
+
113
+
# Nuxt.js build / generate output
114
+
115
+
.nuxt
116
+
dist
117
+
118
+
# Gatsby files
119
+
120
+
.cache/
121
+
122
+
# Comment in the public line in if your project uses Gatsby and not Next.js
123
+
124
+
# https://nextjs.org/blog/next-9-1#public-directory-support
125
+
126
+
# public
127
+
128
+
# vuepress build output
129
+
130
+
.vuepress/dist
131
+
132
+
# vuepress v2.x temp and cache directory
133
+
134
+
.temp
135
+
.cache
136
+
137
+
# Docusaurus cache and generated files
138
+
139
+
.docusaurus
140
+
141
+
# Serverless directories
142
+
143
+
.serverless/
144
+
145
+
# FuseBox cache
146
+
147
+
.fusebox/
148
+
149
+
# DynamoDB Local files
150
+
151
+
.dynamodb/
152
+
153
+
# TernJS port file
154
+
155
+
.tern-port
156
+
157
+
# Stores VSCode versions used for testing VSCode extensions
158
+
159
+
.vscode-test
160
+
161
+
# yarn v2
162
+
163
+
.yarn/cache
164
+
.yarn/unplugged
165
+
.yarn/build-state.yml
166
+
.yarn/install-state.gz
167
+
.pnp.\*
168
+
169
+
# wrangler project
170
+
171
+
.dev.vars
172
+
.wrangler/
+3024
avatar/package-lock.json
+3024
avatar/package-lock.json
···
1
+
{
2
+
"name": "avatar",
3
+
"version": "0.0.0",
4
+
"lockfileVersion": 3,
5
+
"requires": true,
6
+
"packages": {
7
+
"": {
8
+
"name": "avatar",
9
+
"version": "0.0.0",
10
+
"devDependencies": {
11
+
"@cloudflare/vitest-pool-workers": "^0.8.19",
12
+
"vitest": "~3.0.7",
13
+
"wrangler": "^4.14.1"
14
+
}
15
+
},
16
+
"node_modules/@cloudflare/kv-asset-handler": {
17
+
"version": "0.4.0",
18
+
"resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz",
19
+
"integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==",
20
+
"dev": true,
21
+
"license": "MIT OR Apache-2.0",
22
+
"dependencies": {
23
+
"mime": "^3.0.0"
24
+
},
25
+
"engines": {
26
+
"node": ">=18.0.0"
27
+
}
28
+
},
29
+
"node_modules/@cloudflare/unenv-preset": {
30
+
"version": "2.3.1",
31
+
"resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.3.1.tgz",
32
+
"integrity": "sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg==",
33
+
"dev": true,
34
+
"license": "MIT OR Apache-2.0",
35
+
"peerDependencies": {
36
+
"unenv": "2.0.0-rc.15",
37
+
"workerd": "^1.20250320.0"
38
+
},
39
+
"peerDependenciesMeta": {
40
+
"workerd": {
41
+
"optional": true
42
+
}
43
+
}
44
+
},
45
+
"node_modules/@cloudflare/vitest-pool-workers": {
46
+
"version": "0.8.24",
47
+
"resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.8.24.tgz",
48
+
"integrity": "sha512-wT2PABJQ9YLYWrVu4CRZOjvmjHkdbMyLTZPU9n/7JEMM3pgG8dY41F1Rj31UsXRQaXX39A/CTPGlk58dcMUysA==",
49
+
"dev": true,
50
+
"license": "MIT",
51
+
"dependencies": {
52
+
"birpc": "0.2.14",
53
+
"cjs-module-lexer": "^1.2.3",
54
+
"devalue": "^4.3.0",
55
+
"miniflare": "4.20250428.1",
56
+
"semver": "^7.7.1",
57
+
"wrangler": "4.14.1",
58
+
"zod": "^3.22.3"
59
+
},
60
+
"peerDependencies": {
61
+
"@vitest/runner": "2.0.x - 3.1.x",
62
+
"@vitest/snapshot": "2.0.x - 3.1.x",
63
+
"vitest": "2.0.x - 3.1.x"
64
+
}
65
+
},
66
+
"node_modules/@cloudflare/workerd-darwin-64": {
67
+
"version": "1.20250428.0",
68
+
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250428.0.tgz",
69
+
"integrity": "sha512-6nVe9oV4Hdec6ctzMtW80TiDvNTd2oFPi3VsKqSDVaJSJbL+4b6seyJ7G/UEPI+si6JhHBSLV2/9lNXNGLjClA==",
70
+
"cpu": [
71
+
"x64"
72
+
],
73
+
"dev": true,
74
+
"license": "Apache-2.0",
75
+
"optional": true,
76
+
"os": [
77
+
"darwin"
78
+
],
79
+
"engines": {
80
+
"node": ">=16"
81
+
}
82
+
},
83
+
"node_modules/@cloudflare/workerd-darwin-arm64": {
84
+
"version": "1.20250428.0",
85
+
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250428.0.tgz",
86
+
"integrity": "sha512-/TB7bh7SIJ5f+6r4PHsAz7+9Qal/TK1cJuKFkUno1kqGlZbdrMwH0ATYwlWC/nBFeu2FB3NUolsTntEuy23hnQ==",
87
+
"cpu": [
88
+
"arm64"
89
+
],
90
+
"dev": true,
91
+
"license": "Apache-2.0",
92
+
"optional": true,
93
+
"os": [
94
+
"darwin"
95
+
],
96
+
"engines": {
97
+
"node": ">=16"
98
+
}
99
+
},
100
+
"node_modules/@cloudflare/workerd-linux-64": {
101
+
"version": "1.20250428.0",
102
+
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250428.0.tgz",
103
+
"integrity": "sha512-9eCbj+R3CKqpiXP6DfAA20DxKge+OTj7Hyw3ZewiEhWH9INIHiJwJQYybu4iq9kJEGjnGvxgguLFjSCWm26hgg==",
104
+
"cpu": [
105
+
"x64"
106
+
],
107
+
"dev": true,
108
+
"license": "Apache-2.0",
109
+
"optional": true,
110
+
"os": [
111
+
"linux"
112
+
],
113
+
"engines": {
114
+
"node": ">=16"
115
+
}
116
+
},
117
+
"node_modules/@cloudflare/workerd-linux-arm64": {
118
+
"version": "1.20250428.0",
119
+
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250428.0.tgz",
120
+
"integrity": "sha512-D9NRBnW46nl1EQsP13qfkYb5lbt4C6nxl38SBKY/NOcZAUoHzNB5K0GaK8LxvpkM7X/97ySojlMfR5jh5DNXYQ==",
121
+
"cpu": [
122
+
"arm64"
123
+
],
124
+
"dev": true,
125
+
"license": "Apache-2.0",
126
+
"optional": true,
127
+
"os": [
128
+
"linux"
129
+
],
130
+
"engines": {
131
+
"node": ">=16"
132
+
}
133
+
},
134
+
"node_modules/@cloudflare/workerd-windows-64": {
135
+
"version": "1.20250428.0",
136
+
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250428.0.tgz",
137
+
"integrity": "sha512-RQCRj28eitjKD0tmei6iFOuWqMuHMHdNGEigRmbkmuTlpbWHNAoHikgCzZQ/dkKDdatA76TmcpbyECNf31oaTA==",
138
+
"cpu": [
139
+
"x64"
140
+
],
141
+
"dev": true,
142
+
"license": "Apache-2.0",
143
+
"optional": true,
144
+
"os": [
145
+
"win32"
146
+
],
147
+
"engines": {
148
+
"node": ">=16"
149
+
}
150
+
},
151
+
"node_modules/@cspotcode/source-map-support": {
152
+
"version": "0.8.1",
153
+
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
154
+
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
155
+
"dev": true,
156
+
"license": "MIT",
157
+
"dependencies": {
158
+
"@jridgewell/trace-mapping": "0.3.9"
159
+
},
160
+
"engines": {
161
+
"node": ">=12"
162
+
}
163
+
},
164
+
"node_modules/@emnapi/runtime": {
165
+
"version": "1.4.3",
166
+
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
167
+
"integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
168
+
"dev": true,
169
+
"license": "MIT",
170
+
"optional": true,
171
+
"dependencies": {
172
+
"tslib": "^2.4.0"
173
+
}
174
+
},
175
+
"node_modules/@esbuild/aix-ppc64": {
176
+
"version": "0.25.3",
177
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz",
178
+
"integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==",
179
+
"cpu": [
180
+
"ppc64"
181
+
],
182
+
"dev": true,
183
+
"license": "MIT",
184
+
"optional": true,
185
+
"os": [
186
+
"aix"
187
+
],
188
+
"engines": {
189
+
"node": ">=18"
190
+
}
191
+
},
192
+
"node_modules/@esbuild/android-arm": {
193
+
"version": "0.25.3",
194
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz",
195
+
"integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==",
196
+
"cpu": [
197
+
"arm"
198
+
],
199
+
"dev": true,
200
+
"license": "MIT",
201
+
"optional": true,
202
+
"os": [
203
+
"android"
204
+
],
205
+
"engines": {
206
+
"node": ">=18"
207
+
}
208
+
},
209
+
"node_modules/@esbuild/android-arm64": {
210
+
"version": "0.25.3",
211
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz",
212
+
"integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==",
213
+
"cpu": [
214
+
"arm64"
215
+
],
216
+
"dev": true,
217
+
"license": "MIT",
218
+
"optional": true,
219
+
"os": [
220
+
"android"
221
+
],
222
+
"engines": {
223
+
"node": ">=18"
224
+
}
225
+
},
226
+
"node_modules/@esbuild/android-x64": {
227
+
"version": "0.25.3",
228
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz",
229
+
"integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==",
230
+
"cpu": [
231
+
"x64"
232
+
],
233
+
"dev": true,
234
+
"license": "MIT",
235
+
"optional": true,
236
+
"os": [
237
+
"android"
238
+
],
239
+
"engines": {
240
+
"node": ">=18"
241
+
}
242
+
},
243
+
"node_modules/@esbuild/darwin-arm64": {
244
+
"version": "0.25.3",
245
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz",
246
+
"integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==",
247
+
"cpu": [
248
+
"arm64"
249
+
],
250
+
"dev": true,
251
+
"license": "MIT",
252
+
"optional": true,
253
+
"os": [
254
+
"darwin"
255
+
],
256
+
"engines": {
257
+
"node": ">=18"
258
+
}
259
+
},
260
+
"node_modules/@esbuild/darwin-x64": {
261
+
"version": "0.25.3",
262
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz",
263
+
"integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==",
264
+
"cpu": [
265
+
"x64"
266
+
],
267
+
"dev": true,
268
+
"license": "MIT",
269
+
"optional": true,
270
+
"os": [
271
+
"darwin"
272
+
],
273
+
"engines": {
274
+
"node": ">=18"
275
+
}
276
+
},
277
+
"node_modules/@esbuild/freebsd-arm64": {
278
+
"version": "0.25.3",
279
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz",
280
+
"integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==",
281
+
"cpu": [
282
+
"arm64"
283
+
],
284
+
"dev": true,
285
+
"license": "MIT",
286
+
"optional": true,
287
+
"os": [
288
+
"freebsd"
289
+
],
290
+
"engines": {
291
+
"node": ">=18"
292
+
}
293
+
},
294
+
"node_modules/@esbuild/freebsd-x64": {
295
+
"version": "0.25.3",
296
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz",
297
+
"integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==",
298
+
"cpu": [
299
+
"x64"
300
+
],
301
+
"dev": true,
302
+
"license": "MIT",
303
+
"optional": true,
304
+
"os": [
305
+
"freebsd"
306
+
],
307
+
"engines": {
308
+
"node": ">=18"
309
+
}
310
+
},
311
+
"node_modules/@esbuild/linux-arm": {
312
+
"version": "0.25.3",
313
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz",
314
+
"integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==",
315
+
"cpu": [
316
+
"arm"
317
+
],
318
+
"dev": true,
319
+
"license": "MIT",
320
+
"optional": true,
321
+
"os": [
322
+
"linux"
323
+
],
324
+
"engines": {
325
+
"node": ">=18"
326
+
}
327
+
},
328
+
"node_modules/@esbuild/linux-arm64": {
329
+
"version": "0.25.3",
330
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz",
331
+
"integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==",
332
+
"cpu": [
333
+
"arm64"
334
+
],
335
+
"dev": true,
336
+
"license": "MIT",
337
+
"optional": true,
338
+
"os": [
339
+
"linux"
340
+
],
341
+
"engines": {
342
+
"node": ">=18"
343
+
}
344
+
},
345
+
"node_modules/@esbuild/linux-ia32": {
346
+
"version": "0.25.3",
347
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz",
348
+
"integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==",
349
+
"cpu": [
350
+
"ia32"
351
+
],
352
+
"dev": true,
353
+
"license": "MIT",
354
+
"optional": true,
355
+
"os": [
356
+
"linux"
357
+
],
358
+
"engines": {
359
+
"node": ">=18"
360
+
}
361
+
},
362
+
"node_modules/@esbuild/linux-loong64": {
363
+
"version": "0.25.3",
364
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz",
365
+
"integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==",
366
+
"cpu": [
367
+
"loong64"
368
+
],
369
+
"dev": true,
370
+
"license": "MIT",
371
+
"optional": true,
372
+
"os": [
373
+
"linux"
374
+
],
375
+
"engines": {
376
+
"node": ">=18"
377
+
}
378
+
},
379
+
"node_modules/@esbuild/linux-mips64el": {
380
+
"version": "0.25.3",
381
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz",
382
+
"integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==",
383
+
"cpu": [
384
+
"mips64el"
385
+
],
386
+
"dev": true,
387
+
"license": "MIT",
388
+
"optional": true,
389
+
"os": [
390
+
"linux"
391
+
],
392
+
"engines": {
393
+
"node": ">=18"
394
+
}
395
+
},
396
+
"node_modules/@esbuild/linux-ppc64": {
397
+
"version": "0.25.3",
398
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz",
399
+
"integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==",
400
+
"cpu": [
401
+
"ppc64"
402
+
],
403
+
"dev": true,
404
+
"license": "MIT",
405
+
"optional": true,
406
+
"os": [
407
+
"linux"
408
+
],
409
+
"engines": {
410
+
"node": ">=18"
411
+
}
412
+
},
413
+
"node_modules/@esbuild/linux-riscv64": {
414
+
"version": "0.25.3",
415
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz",
416
+
"integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==",
417
+
"cpu": [
418
+
"riscv64"
419
+
],
420
+
"dev": true,
421
+
"license": "MIT",
422
+
"optional": true,
423
+
"os": [
424
+
"linux"
425
+
],
426
+
"engines": {
427
+
"node": ">=18"
428
+
}
429
+
},
430
+
"node_modules/@esbuild/linux-s390x": {
431
+
"version": "0.25.3",
432
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz",
433
+
"integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==",
434
+
"cpu": [
435
+
"s390x"
436
+
],
437
+
"dev": true,
438
+
"license": "MIT",
439
+
"optional": true,
440
+
"os": [
441
+
"linux"
442
+
],
443
+
"engines": {
444
+
"node": ">=18"
445
+
}
446
+
},
447
+
"node_modules/@esbuild/linux-x64": {
448
+
"version": "0.25.3",
449
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz",
450
+
"integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==",
451
+
"cpu": [
452
+
"x64"
453
+
],
454
+
"dev": true,
455
+
"license": "MIT",
456
+
"optional": true,
457
+
"os": [
458
+
"linux"
459
+
],
460
+
"engines": {
461
+
"node": ">=18"
462
+
}
463
+
},
464
+
"node_modules/@esbuild/netbsd-arm64": {
465
+
"version": "0.25.3",
466
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz",
467
+
"integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==",
468
+
"cpu": [
469
+
"arm64"
470
+
],
471
+
"dev": true,
472
+
"license": "MIT",
473
+
"optional": true,
474
+
"os": [
475
+
"netbsd"
476
+
],
477
+
"engines": {
478
+
"node": ">=18"
479
+
}
480
+
},
481
+
"node_modules/@esbuild/netbsd-x64": {
482
+
"version": "0.25.3",
483
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz",
484
+
"integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==",
485
+
"cpu": [
486
+
"x64"
487
+
],
488
+
"dev": true,
489
+
"license": "MIT",
490
+
"optional": true,
491
+
"os": [
492
+
"netbsd"
493
+
],
494
+
"engines": {
495
+
"node": ">=18"
496
+
}
497
+
},
498
+
"node_modules/@esbuild/openbsd-arm64": {
499
+
"version": "0.25.3",
500
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz",
501
+
"integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==",
502
+
"cpu": [
503
+
"arm64"
504
+
],
505
+
"dev": true,
506
+
"license": "MIT",
507
+
"optional": true,
508
+
"os": [
509
+
"openbsd"
510
+
],
511
+
"engines": {
512
+
"node": ">=18"
513
+
}
514
+
},
515
+
"node_modules/@esbuild/openbsd-x64": {
516
+
"version": "0.25.3",
517
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz",
518
+
"integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==",
519
+
"cpu": [
520
+
"x64"
521
+
],
522
+
"dev": true,
523
+
"license": "MIT",
524
+
"optional": true,
525
+
"os": [
526
+
"openbsd"
527
+
],
528
+
"engines": {
529
+
"node": ">=18"
530
+
}
531
+
},
532
+
"node_modules/@esbuild/sunos-x64": {
533
+
"version": "0.25.3",
534
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz",
535
+
"integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==",
536
+
"cpu": [
537
+
"x64"
538
+
],
539
+
"dev": true,
540
+
"license": "MIT",
541
+
"optional": true,
542
+
"os": [
543
+
"sunos"
544
+
],
545
+
"engines": {
546
+
"node": ">=18"
547
+
}
548
+
},
549
+
"node_modules/@esbuild/win32-arm64": {
550
+
"version": "0.25.3",
551
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz",
552
+
"integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==",
553
+
"cpu": [
554
+
"arm64"
555
+
],
556
+
"dev": true,
557
+
"license": "MIT",
558
+
"optional": true,
559
+
"os": [
560
+
"win32"
561
+
],
562
+
"engines": {
563
+
"node": ">=18"
564
+
}
565
+
},
566
+
"node_modules/@esbuild/win32-ia32": {
567
+
"version": "0.25.3",
568
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz",
569
+
"integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==",
570
+
"cpu": [
571
+
"ia32"
572
+
],
573
+
"dev": true,
574
+
"license": "MIT",
575
+
"optional": true,
576
+
"os": [
577
+
"win32"
578
+
],
579
+
"engines": {
580
+
"node": ">=18"
581
+
}
582
+
},
583
+
"node_modules/@esbuild/win32-x64": {
584
+
"version": "0.25.3",
585
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz",
586
+
"integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==",
587
+
"cpu": [
588
+
"x64"
589
+
],
590
+
"dev": true,
591
+
"license": "MIT",
592
+
"optional": true,
593
+
"os": [
594
+
"win32"
595
+
],
596
+
"engines": {
597
+
"node": ">=18"
598
+
}
599
+
},
600
+
"node_modules/@fastify/busboy": {
601
+
"version": "2.1.1",
602
+
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
603
+
"integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
604
+
"dev": true,
605
+
"license": "MIT",
606
+
"engines": {
607
+
"node": ">=14"
608
+
}
609
+
},
610
+
"node_modules/@img/sharp-darwin-arm64": {
611
+
"version": "0.33.5",
612
+
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
613
+
"integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
614
+
"cpu": [
615
+
"arm64"
616
+
],
617
+
"dev": true,
618
+
"license": "Apache-2.0",
619
+
"optional": true,
620
+
"os": [
621
+
"darwin"
622
+
],
623
+
"engines": {
624
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
625
+
},
626
+
"funding": {
627
+
"url": "https://opencollective.com/libvips"
628
+
},
629
+
"optionalDependencies": {
630
+
"@img/sharp-libvips-darwin-arm64": "1.0.4"
631
+
}
632
+
},
633
+
"node_modules/@img/sharp-darwin-x64": {
634
+
"version": "0.33.5",
635
+
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
636
+
"integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
637
+
"cpu": [
638
+
"x64"
639
+
],
640
+
"dev": true,
641
+
"license": "Apache-2.0",
642
+
"optional": true,
643
+
"os": [
644
+
"darwin"
645
+
],
646
+
"engines": {
647
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
648
+
},
649
+
"funding": {
650
+
"url": "https://opencollective.com/libvips"
651
+
},
652
+
"optionalDependencies": {
653
+
"@img/sharp-libvips-darwin-x64": "1.0.4"
654
+
}
655
+
},
656
+
"node_modules/@img/sharp-libvips-darwin-arm64": {
657
+
"version": "1.0.4",
658
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
659
+
"integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
660
+
"cpu": [
661
+
"arm64"
662
+
],
663
+
"dev": true,
664
+
"license": "LGPL-3.0-or-later",
665
+
"optional": true,
666
+
"os": [
667
+
"darwin"
668
+
],
669
+
"funding": {
670
+
"url": "https://opencollective.com/libvips"
671
+
}
672
+
},
673
+
"node_modules/@img/sharp-libvips-darwin-x64": {
674
+
"version": "1.0.4",
675
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
676
+
"integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
677
+
"cpu": [
678
+
"x64"
679
+
],
680
+
"dev": true,
681
+
"license": "LGPL-3.0-or-later",
682
+
"optional": true,
683
+
"os": [
684
+
"darwin"
685
+
],
686
+
"funding": {
687
+
"url": "https://opencollective.com/libvips"
688
+
}
689
+
},
690
+
"node_modules/@img/sharp-libvips-linux-arm": {
691
+
"version": "1.0.5",
692
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
693
+
"integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
694
+
"cpu": [
695
+
"arm"
696
+
],
697
+
"dev": true,
698
+
"license": "LGPL-3.0-or-later",
699
+
"optional": true,
700
+
"os": [
701
+
"linux"
702
+
],
703
+
"funding": {
704
+
"url": "https://opencollective.com/libvips"
705
+
}
706
+
},
707
+
"node_modules/@img/sharp-libvips-linux-arm64": {
708
+
"version": "1.0.4",
709
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
710
+
"integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
711
+
"cpu": [
712
+
"arm64"
713
+
],
714
+
"dev": true,
715
+
"license": "LGPL-3.0-or-later",
716
+
"optional": true,
717
+
"os": [
718
+
"linux"
719
+
],
720
+
"funding": {
721
+
"url": "https://opencollective.com/libvips"
722
+
}
723
+
},
724
+
"node_modules/@img/sharp-libvips-linux-s390x": {
725
+
"version": "1.0.4",
726
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz",
727
+
"integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==",
728
+
"cpu": [
729
+
"s390x"
730
+
],
731
+
"dev": true,
732
+
"license": "LGPL-3.0-or-later",
733
+
"optional": true,
734
+
"os": [
735
+
"linux"
736
+
],
737
+
"funding": {
738
+
"url": "https://opencollective.com/libvips"
739
+
}
740
+
},
741
+
"node_modules/@img/sharp-libvips-linux-x64": {
742
+
"version": "1.0.4",
743
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
744
+
"integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
745
+
"cpu": [
746
+
"x64"
747
+
],
748
+
"dev": true,
749
+
"license": "LGPL-3.0-or-later",
750
+
"optional": true,
751
+
"os": [
752
+
"linux"
753
+
],
754
+
"funding": {
755
+
"url": "https://opencollective.com/libvips"
756
+
}
757
+
},
758
+
"node_modules/@img/sharp-libvips-linuxmusl-arm64": {
759
+
"version": "1.0.4",
760
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz",
761
+
"integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==",
762
+
"cpu": [
763
+
"arm64"
764
+
],
765
+
"dev": true,
766
+
"license": "LGPL-3.0-or-later",
767
+
"optional": true,
768
+
"os": [
769
+
"linux"
770
+
],
771
+
"funding": {
772
+
"url": "https://opencollective.com/libvips"
773
+
}
774
+
},
775
+
"node_modules/@img/sharp-libvips-linuxmusl-x64": {
776
+
"version": "1.0.4",
777
+
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz",
778
+
"integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==",
779
+
"cpu": [
780
+
"x64"
781
+
],
782
+
"dev": true,
783
+
"license": "LGPL-3.0-or-later",
784
+
"optional": true,
785
+
"os": [
786
+
"linux"
787
+
],
788
+
"funding": {
789
+
"url": "https://opencollective.com/libvips"
790
+
}
791
+
},
792
+
"node_modules/@img/sharp-linux-arm": {
793
+
"version": "0.33.5",
794
+
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
795
+
"integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
796
+
"cpu": [
797
+
"arm"
798
+
],
799
+
"dev": true,
800
+
"license": "Apache-2.0",
801
+
"optional": true,
802
+
"os": [
803
+
"linux"
804
+
],
805
+
"engines": {
806
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
807
+
},
808
+
"funding": {
809
+
"url": "https://opencollective.com/libvips"
810
+
},
811
+
"optionalDependencies": {
812
+
"@img/sharp-libvips-linux-arm": "1.0.5"
813
+
}
814
+
},
815
+
"node_modules/@img/sharp-linux-arm64": {
816
+
"version": "0.33.5",
817
+
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
818
+
"integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
819
+
"cpu": [
820
+
"arm64"
821
+
],
822
+
"dev": true,
823
+
"license": "Apache-2.0",
824
+
"optional": true,
825
+
"os": [
826
+
"linux"
827
+
],
828
+
"engines": {
829
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
830
+
},
831
+
"funding": {
832
+
"url": "https://opencollective.com/libvips"
833
+
},
834
+
"optionalDependencies": {
835
+
"@img/sharp-libvips-linux-arm64": "1.0.4"
836
+
}
837
+
},
838
+
"node_modules/@img/sharp-linux-s390x": {
839
+
"version": "0.33.5",
840
+
"resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz",
841
+
"integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==",
842
+
"cpu": [
843
+
"s390x"
844
+
],
845
+
"dev": true,
846
+
"license": "Apache-2.0",
847
+
"optional": true,
848
+
"os": [
849
+
"linux"
850
+
],
851
+
"engines": {
852
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
853
+
},
854
+
"funding": {
855
+
"url": "https://opencollective.com/libvips"
856
+
},
857
+
"optionalDependencies": {
858
+
"@img/sharp-libvips-linux-s390x": "1.0.4"
859
+
}
860
+
},
861
+
"node_modules/@img/sharp-linux-x64": {
862
+
"version": "0.33.5",
863
+
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
864
+
"integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
865
+
"cpu": [
866
+
"x64"
867
+
],
868
+
"dev": true,
869
+
"license": "Apache-2.0",
870
+
"optional": true,
871
+
"os": [
872
+
"linux"
873
+
],
874
+
"engines": {
875
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
876
+
},
877
+
"funding": {
878
+
"url": "https://opencollective.com/libvips"
879
+
},
880
+
"optionalDependencies": {
881
+
"@img/sharp-libvips-linux-x64": "1.0.4"
882
+
}
883
+
},
884
+
"node_modules/@img/sharp-linuxmusl-arm64": {
885
+
"version": "0.33.5",
886
+
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz",
887
+
"integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==",
888
+
"cpu": [
889
+
"arm64"
890
+
],
891
+
"dev": true,
892
+
"license": "Apache-2.0",
893
+
"optional": true,
894
+
"os": [
895
+
"linux"
896
+
],
897
+
"engines": {
898
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
899
+
},
900
+
"funding": {
901
+
"url": "https://opencollective.com/libvips"
902
+
},
903
+
"optionalDependencies": {
904
+
"@img/sharp-libvips-linuxmusl-arm64": "1.0.4"
905
+
}
906
+
},
907
+
"node_modules/@img/sharp-linuxmusl-x64": {
908
+
"version": "0.33.5",
909
+
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz",
910
+
"integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==",
911
+
"cpu": [
912
+
"x64"
913
+
],
914
+
"dev": true,
915
+
"license": "Apache-2.0",
916
+
"optional": true,
917
+
"os": [
918
+
"linux"
919
+
],
920
+
"engines": {
921
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
922
+
},
923
+
"funding": {
924
+
"url": "https://opencollective.com/libvips"
925
+
},
926
+
"optionalDependencies": {
927
+
"@img/sharp-libvips-linuxmusl-x64": "1.0.4"
928
+
}
929
+
},
930
+
"node_modules/@img/sharp-wasm32": {
931
+
"version": "0.33.5",
932
+
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz",
933
+
"integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==",
934
+
"cpu": [
935
+
"wasm32"
936
+
],
937
+
"dev": true,
938
+
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
939
+
"optional": true,
940
+
"dependencies": {
941
+
"@emnapi/runtime": "^1.2.0"
942
+
},
943
+
"engines": {
944
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
945
+
},
946
+
"funding": {
947
+
"url": "https://opencollective.com/libvips"
948
+
}
949
+
},
950
+
"node_modules/@img/sharp-win32-ia32": {
951
+
"version": "0.33.5",
952
+
"resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz",
953
+
"integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==",
954
+
"cpu": [
955
+
"ia32"
956
+
],
957
+
"dev": true,
958
+
"license": "Apache-2.0 AND LGPL-3.0-or-later",
959
+
"optional": true,
960
+
"os": [
961
+
"win32"
962
+
],
963
+
"engines": {
964
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
965
+
},
966
+
"funding": {
967
+
"url": "https://opencollective.com/libvips"
968
+
}
969
+
},
970
+
"node_modules/@img/sharp-win32-x64": {
971
+
"version": "0.33.5",
972
+
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
973
+
"integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
974
+
"cpu": [
975
+
"x64"
976
+
],
977
+
"dev": true,
978
+
"license": "Apache-2.0 AND LGPL-3.0-or-later",
979
+
"optional": true,
980
+
"os": [
981
+
"win32"
982
+
],
983
+
"engines": {
984
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
985
+
},
986
+
"funding": {
987
+
"url": "https://opencollective.com/libvips"
988
+
}
989
+
},
990
+
"node_modules/@jridgewell/resolve-uri": {
991
+
"version": "3.1.2",
992
+
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
993
+
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
994
+
"dev": true,
995
+
"license": "MIT",
996
+
"engines": {
997
+
"node": ">=6.0.0"
998
+
}
999
+
},
1000
+
"node_modules/@jridgewell/sourcemap-codec": {
1001
+
"version": "1.5.0",
1002
+
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
1003
+
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
1004
+
"dev": true,
1005
+
"license": "MIT"
1006
+
},
1007
+
"node_modules/@jridgewell/trace-mapping": {
1008
+
"version": "0.3.9",
1009
+
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
1010
+
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
1011
+
"dev": true,
1012
+
"license": "MIT",
1013
+
"dependencies": {
1014
+
"@jridgewell/resolve-uri": "^3.0.3",
1015
+
"@jridgewell/sourcemap-codec": "^1.4.10"
1016
+
}
1017
+
},
1018
+
"node_modules/@rollup/rollup-android-arm-eabi": {
1019
+
"version": "4.40.1",
1020
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz",
1021
+
"integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==",
1022
+
"cpu": [
1023
+
"arm"
1024
+
],
1025
+
"dev": true,
1026
+
"license": "MIT",
1027
+
"optional": true,
1028
+
"os": [
1029
+
"android"
1030
+
]
1031
+
},
1032
+
"node_modules/@rollup/rollup-android-arm64": {
1033
+
"version": "4.40.1",
1034
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz",
1035
+
"integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==",
1036
+
"cpu": [
1037
+
"arm64"
1038
+
],
1039
+
"dev": true,
1040
+
"license": "MIT",
1041
+
"optional": true,
1042
+
"os": [
1043
+
"android"
1044
+
]
1045
+
},
1046
+
"node_modules/@rollup/rollup-darwin-arm64": {
1047
+
"version": "4.40.1",
1048
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz",
1049
+
"integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==",
1050
+
"cpu": [
1051
+
"arm64"
1052
+
],
1053
+
"dev": true,
1054
+
"license": "MIT",
1055
+
"optional": true,
1056
+
"os": [
1057
+
"darwin"
1058
+
]
1059
+
},
1060
+
"node_modules/@rollup/rollup-darwin-x64": {
1061
+
"version": "4.40.1",
1062
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz",
1063
+
"integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==",
1064
+
"cpu": [
1065
+
"x64"
1066
+
],
1067
+
"dev": true,
1068
+
"license": "MIT",
1069
+
"optional": true,
1070
+
"os": [
1071
+
"darwin"
1072
+
]
1073
+
},
1074
+
"node_modules/@rollup/rollup-freebsd-arm64": {
1075
+
"version": "4.40.1",
1076
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz",
1077
+
"integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==",
1078
+
"cpu": [
1079
+
"arm64"
1080
+
],
1081
+
"dev": true,
1082
+
"license": "MIT",
1083
+
"optional": true,
1084
+
"os": [
1085
+
"freebsd"
1086
+
]
1087
+
},
1088
+
"node_modules/@rollup/rollup-freebsd-x64": {
1089
+
"version": "4.40.1",
1090
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz",
1091
+
"integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==",
1092
+
"cpu": [
1093
+
"x64"
1094
+
],
1095
+
"dev": true,
1096
+
"license": "MIT",
1097
+
"optional": true,
1098
+
"os": [
1099
+
"freebsd"
1100
+
]
1101
+
},
1102
+
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
1103
+
"version": "4.40.1",
1104
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz",
1105
+
"integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==",
1106
+
"cpu": [
1107
+
"arm"
1108
+
],
1109
+
"dev": true,
1110
+
"license": "MIT",
1111
+
"optional": true,
1112
+
"os": [
1113
+
"linux"
1114
+
]
1115
+
},
1116
+
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
1117
+
"version": "4.40.1",
1118
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz",
1119
+
"integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==",
1120
+
"cpu": [
1121
+
"arm"
1122
+
],
1123
+
"dev": true,
1124
+
"license": "MIT",
1125
+
"optional": true,
1126
+
"os": [
1127
+
"linux"
1128
+
]
1129
+
},
1130
+
"node_modules/@rollup/rollup-linux-arm64-gnu": {
1131
+
"version": "4.40.1",
1132
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz",
1133
+
"integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==",
1134
+
"cpu": [
1135
+
"arm64"
1136
+
],
1137
+
"dev": true,
1138
+
"license": "MIT",
1139
+
"optional": true,
1140
+
"os": [
1141
+
"linux"
1142
+
]
1143
+
},
1144
+
"node_modules/@rollup/rollup-linux-arm64-musl": {
1145
+
"version": "4.40.1",
1146
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz",
1147
+
"integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==",
1148
+
"cpu": [
1149
+
"arm64"
1150
+
],
1151
+
"dev": true,
1152
+
"license": "MIT",
1153
+
"optional": true,
1154
+
"os": [
1155
+
"linux"
1156
+
]
1157
+
},
1158
+
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
1159
+
"version": "4.40.1",
1160
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz",
1161
+
"integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==",
1162
+
"cpu": [
1163
+
"loong64"
1164
+
],
1165
+
"dev": true,
1166
+
"license": "MIT",
1167
+
"optional": true,
1168
+
"os": [
1169
+
"linux"
1170
+
]
1171
+
},
1172
+
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
1173
+
"version": "4.40.1",
1174
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz",
1175
+
"integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==",
1176
+
"cpu": [
1177
+
"ppc64"
1178
+
],
1179
+
"dev": true,
1180
+
"license": "MIT",
1181
+
"optional": true,
1182
+
"os": [
1183
+
"linux"
1184
+
]
1185
+
},
1186
+
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
1187
+
"version": "4.40.1",
1188
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz",
1189
+
"integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==",
1190
+
"cpu": [
1191
+
"riscv64"
1192
+
],
1193
+
"dev": true,
1194
+
"license": "MIT",
1195
+
"optional": true,
1196
+
"os": [
1197
+
"linux"
1198
+
]
1199
+
},
1200
+
"node_modules/@rollup/rollup-linux-riscv64-musl": {
1201
+
"version": "4.40.1",
1202
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz",
1203
+
"integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==",
1204
+
"cpu": [
1205
+
"riscv64"
1206
+
],
1207
+
"dev": true,
1208
+
"license": "MIT",
1209
+
"optional": true,
1210
+
"os": [
1211
+
"linux"
1212
+
]
1213
+
},
1214
+
"node_modules/@rollup/rollup-linux-s390x-gnu": {
1215
+
"version": "4.40.1",
1216
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz",
1217
+
"integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==",
1218
+
"cpu": [
1219
+
"s390x"
1220
+
],
1221
+
"dev": true,
1222
+
"license": "MIT",
1223
+
"optional": true,
1224
+
"os": [
1225
+
"linux"
1226
+
]
1227
+
},
1228
+
"node_modules/@rollup/rollup-linux-x64-gnu": {
1229
+
"version": "4.40.1",
1230
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz",
1231
+
"integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==",
1232
+
"cpu": [
1233
+
"x64"
1234
+
],
1235
+
"dev": true,
1236
+
"license": "MIT",
1237
+
"optional": true,
1238
+
"os": [
1239
+
"linux"
1240
+
]
1241
+
},
1242
+
"node_modules/@rollup/rollup-linux-x64-musl": {
1243
+
"version": "4.40.1",
1244
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz",
1245
+
"integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==",
1246
+
"cpu": [
1247
+
"x64"
1248
+
],
1249
+
"dev": true,
1250
+
"license": "MIT",
1251
+
"optional": true,
1252
+
"os": [
1253
+
"linux"
1254
+
]
1255
+
},
1256
+
"node_modules/@rollup/rollup-win32-arm64-msvc": {
1257
+
"version": "4.40.1",
1258
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz",
1259
+
"integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==",
1260
+
"cpu": [
1261
+
"arm64"
1262
+
],
1263
+
"dev": true,
1264
+
"license": "MIT",
1265
+
"optional": true,
1266
+
"os": [
1267
+
"win32"
1268
+
]
1269
+
},
1270
+
"node_modules/@rollup/rollup-win32-ia32-msvc": {
1271
+
"version": "4.40.1",
1272
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz",
1273
+
"integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==",
1274
+
"cpu": [
1275
+
"ia32"
1276
+
],
1277
+
"dev": true,
1278
+
"license": "MIT",
1279
+
"optional": true,
1280
+
"os": [
1281
+
"win32"
1282
+
]
1283
+
},
1284
+
"node_modules/@rollup/rollup-win32-x64-msvc": {
1285
+
"version": "4.40.1",
1286
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz",
1287
+
"integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==",
1288
+
"cpu": [
1289
+
"x64"
1290
+
],
1291
+
"dev": true,
1292
+
"license": "MIT",
1293
+
"optional": true,
1294
+
"os": [
1295
+
"win32"
1296
+
]
1297
+
},
1298
+
"node_modules/@types/estree": {
1299
+
"version": "1.0.7",
1300
+
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
1301
+
"integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
1302
+
"dev": true,
1303
+
"license": "MIT"
1304
+
},
1305
+
"node_modules/@vitest/expect": {
1306
+
"version": "3.0.9",
1307
+
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.9.tgz",
1308
+
"integrity": "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==",
1309
+
"dev": true,
1310
+
"license": "MIT",
1311
+
"dependencies": {
1312
+
"@vitest/spy": "3.0.9",
1313
+
"@vitest/utils": "3.0.9",
1314
+
"chai": "^5.2.0",
1315
+
"tinyrainbow": "^2.0.0"
1316
+
},
1317
+
"funding": {
1318
+
"url": "https://opencollective.com/vitest"
1319
+
}
1320
+
},
1321
+
"node_modules/@vitest/mocker": {
1322
+
"version": "3.0.9",
1323
+
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.9.tgz",
1324
+
"integrity": "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==",
1325
+
"dev": true,
1326
+
"license": "MIT",
1327
+
"dependencies": {
1328
+
"@vitest/spy": "3.0.9",
1329
+
"estree-walker": "^3.0.3",
1330
+
"magic-string": "^0.30.17"
1331
+
},
1332
+
"funding": {
1333
+
"url": "https://opencollective.com/vitest"
1334
+
},
1335
+
"peerDependencies": {
1336
+
"msw": "^2.4.9",
1337
+
"vite": "^5.0.0 || ^6.0.0"
1338
+
},
1339
+
"peerDependenciesMeta": {
1340
+
"msw": {
1341
+
"optional": true
1342
+
},
1343
+
"vite": {
1344
+
"optional": true
1345
+
}
1346
+
}
1347
+
},
1348
+
"node_modules/@vitest/pretty-format": {
1349
+
"version": "3.1.2",
1350
+
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.2.tgz",
1351
+
"integrity": "sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w==",
1352
+
"dev": true,
1353
+
"license": "MIT",
1354
+
"dependencies": {
1355
+
"tinyrainbow": "^2.0.0"
1356
+
},
1357
+
"funding": {
1358
+
"url": "https://opencollective.com/vitest"
1359
+
}
1360
+
},
1361
+
"node_modules/@vitest/runner": {
1362
+
"version": "3.0.9",
1363
+
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.9.tgz",
1364
+
"integrity": "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==",
1365
+
"dev": true,
1366
+
"license": "MIT",
1367
+
"dependencies": {
1368
+
"@vitest/utils": "3.0.9",
1369
+
"pathe": "^2.0.3"
1370
+
},
1371
+
"funding": {
1372
+
"url": "https://opencollective.com/vitest"
1373
+
}
1374
+
},
1375
+
"node_modules/@vitest/snapshot": {
1376
+
"version": "3.0.9",
1377
+
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.9.tgz",
1378
+
"integrity": "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==",
1379
+
"dev": true,
1380
+
"license": "MIT",
1381
+
"dependencies": {
1382
+
"@vitest/pretty-format": "3.0.9",
1383
+
"magic-string": "^0.30.17",
1384
+
"pathe": "^2.0.3"
1385
+
},
1386
+
"funding": {
1387
+
"url": "https://opencollective.com/vitest"
1388
+
}
1389
+
},
1390
+
"node_modules/@vitest/snapshot/node_modules/@vitest/pretty-format": {
1391
+
"version": "3.0.9",
1392
+
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz",
1393
+
"integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==",
1394
+
"dev": true,
1395
+
"license": "MIT",
1396
+
"dependencies": {
1397
+
"tinyrainbow": "^2.0.0"
1398
+
},
1399
+
"funding": {
1400
+
"url": "https://opencollective.com/vitest"
1401
+
}
1402
+
},
1403
+
"node_modules/@vitest/spy": {
1404
+
"version": "3.0.9",
1405
+
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz",
1406
+
"integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==",
1407
+
"dev": true,
1408
+
"license": "MIT",
1409
+
"dependencies": {
1410
+
"tinyspy": "^3.0.2"
1411
+
},
1412
+
"funding": {
1413
+
"url": "https://opencollective.com/vitest"
1414
+
}
1415
+
},
1416
+
"node_modules/@vitest/utils": {
1417
+
"version": "3.0.9",
1418
+
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz",
1419
+
"integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==",
1420
+
"dev": true,
1421
+
"license": "MIT",
1422
+
"dependencies": {
1423
+
"@vitest/pretty-format": "3.0.9",
1424
+
"loupe": "^3.1.3",
1425
+
"tinyrainbow": "^2.0.0"
1426
+
},
1427
+
"funding": {
1428
+
"url": "https://opencollective.com/vitest"
1429
+
}
1430
+
},
1431
+
"node_modules/@vitest/utils/node_modules/@vitest/pretty-format": {
1432
+
"version": "3.0.9",
1433
+
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz",
1434
+
"integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==",
1435
+
"dev": true,
1436
+
"license": "MIT",
1437
+
"dependencies": {
1438
+
"tinyrainbow": "^2.0.0"
1439
+
},
1440
+
"funding": {
1441
+
"url": "https://opencollective.com/vitest"
1442
+
}
1443
+
},
1444
+
"node_modules/acorn": {
1445
+
"version": "8.14.0",
1446
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
1447
+
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
1448
+
"dev": true,
1449
+
"license": "MIT",
1450
+
"bin": {
1451
+
"acorn": "bin/acorn"
1452
+
},
1453
+
"engines": {
1454
+
"node": ">=0.4.0"
1455
+
}
1456
+
},
1457
+
"node_modules/acorn-walk": {
1458
+
"version": "8.3.2",
1459
+
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
1460
+
"integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
1461
+
"dev": true,
1462
+
"license": "MIT",
1463
+
"engines": {
1464
+
"node": ">=0.4.0"
1465
+
}
1466
+
},
1467
+
"node_modules/as-table": {
1468
+
"version": "1.0.55",
1469
+
"resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz",
1470
+
"integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==",
1471
+
"dev": true,
1472
+
"license": "MIT",
1473
+
"dependencies": {
1474
+
"printable-characters": "^1.0.42"
1475
+
}
1476
+
},
1477
+
"node_modules/assertion-error": {
1478
+
"version": "2.0.1",
1479
+
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
1480
+
"integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
1481
+
"dev": true,
1482
+
"license": "MIT",
1483
+
"engines": {
1484
+
"node": ">=12"
1485
+
}
1486
+
},
1487
+
"node_modules/birpc": {
1488
+
"version": "0.2.14",
1489
+
"resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.14.tgz",
1490
+
"integrity": "sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA==",
1491
+
"dev": true,
1492
+
"license": "MIT",
1493
+
"funding": {
1494
+
"url": "https://github.com/sponsors/antfu"
1495
+
}
1496
+
},
1497
+
"node_modules/blake3-wasm": {
1498
+
"version": "2.1.5",
1499
+
"resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz",
1500
+
"integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==",
1501
+
"dev": true,
1502
+
"license": "MIT"
1503
+
},
1504
+
"node_modules/cac": {
1505
+
"version": "6.7.14",
1506
+
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
1507
+
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
1508
+
"dev": true,
1509
+
"license": "MIT",
1510
+
"engines": {
1511
+
"node": ">=8"
1512
+
}
1513
+
},
1514
+
"node_modules/chai": {
1515
+
"version": "5.2.0",
1516
+
"resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
1517
+
"integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
1518
+
"dev": true,
1519
+
"license": "MIT",
1520
+
"dependencies": {
1521
+
"assertion-error": "^2.0.1",
1522
+
"check-error": "^2.1.1",
1523
+
"deep-eql": "^5.0.1",
1524
+
"loupe": "^3.1.0",
1525
+
"pathval": "^2.0.0"
1526
+
},
1527
+
"engines": {
1528
+
"node": ">=12"
1529
+
}
1530
+
},
1531
+
"node_modules/check-error": {
1532
+
"version": "2.1.1",
1533
+
"resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
1534
+
"integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
1535
+
"dev": true,
1536
+
"license": "MIT",
1537
+
"engines": {
1538
+
"node": ">= 16"
1539
+
}
1540
+
},
1541
+
"node_modules/cjs-module-lexer": {
1542
+
"version": "1.4.3",
1543
+
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
1544
+
"integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
1545
+
"dev": true,
1546
+
"license": "MIT"
1547
+
},
1548
+
"node_modules/color": {
1549
+
"version": "4.2.3",
1550
+
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
1551
+
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
1552
+
"dev": true,
1553
+
"license": "MIT",
1554
+
"optional": true,
1555
+
"dependencies": {
1556
+
"color-convert": "^2.0.1",
1557
+
"color-string": "^1.9.0"
1558
+
},
1559
+
"engines": {
1560
+
"node": ">=12.5.0"
1561
+
}
1562
+
},
1563
+
"node_modules/color-convert": {
1564
+
"version": "2.0.1",
1565
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1566
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1567
+
"dev": true,
1568
+
"license": "MIT",
1569
+
"optional": true,
1570
+
"dependencies": {
1571
+
"color-name": "~1.1.4"
1572
+
},
1573
+
"engines": {
1574
+
"node": ">=7.0.0"
1575
+
}
1576
+
},
1577
+
"node_modules/color-name": {
1578
+
"version": "1.1.4",
1579
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1580
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1581
+
"dev": true,
1582
+
"license": "MIT",
1583
+
"optional": true
1584
+
},
1585
+
"node_modules/color-string": {
1586
+
"version": "1.9.1",
1587
+
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
1588
+
"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
1589
+
"dev": true,
1590
+
"license": "MIT",
1591
+
"optional": true,
1592
+
"dependencies": {
1593
+
"color-name": "^1.0.0",
1594
+
"simple-swizzle": "^0.2.2"
1595
+
}
1596
+
},
1597
+
"node_modules/cookie": {
1598
+
"version": "0.7.2",
1599
+
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
1600
+
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
1601
+
"dev": true,
1602
+
"license": "MIT",
1603
+
"engines": {
1604
+
"node": ">= 0.6"
1605
+
}
1606
+
},
1607
+
"node_modules/data-uri-to-buffer": {
1608
+
"version": "2.0.2",
1609
+
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz",
1610
+
"integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==",
1611
+
"dev": true,
1612
+
"license": "MIT"
1613
+
},
1614
+
"node_modules/debug": {
1615
+
"version": "4.4.0",
1616
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
1617
+
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
1618
+
"dev": true,
1619
+
"license": "MIT",
1620
+
"dependencies": {
1621
+
"ms": "^2.1.3"
1622
+
},
1623
+
"engines": {
1624
+
"node": ">=6.0"
1625
+
},
1626
+
"peerDependenciesMeta": {
1627
+
"supports-color": {
1628
+
"optional": true
1629
+
}
1630
+
}
1631
+
},
1632
+
"node_modules/deep-eql": {
1633
+
"version": "5.0.2",
1634
+
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
1635
+
"integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
1636
+
"dev": true,
1637
+
"license": "MIT",
1638
+
"engines": {
1639
+
"node": ">=6"
1640
+
}
1641
+
},
1642
+
"node_modules/defu": {
1643
+
"version": "6.1.4",
1644
+
"resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
1645
+
"integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
1646
+
"dev": true,
1647
+
"license": "MIT"
1648
+
},
1649
+
"node_modules/detect-libc": {
1650
+
"version": "2.0.4",
1651
+
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
1652
+
"integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
1653
+
"dev": true,
1654
+
"license": "Apache-2.0",
1655
+
"optional": true,
1656
+
"engines": {
1657
+
"node": ">=8"
1658
+
}
1659
+
},
1660
+
"node_modules/devalue": {
1661
+
"version": "4.3.3",
1662
+
"resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz",
1663
+
"integrity": "sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==",
1664
+
"dev": true,
1665
+
"license": "MIT"
1666
+
},
1667
+
"node_modules/es-module-lexer": {
1668
+
"version": "1.7.0",
1669
+
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
1670
+
"integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
1671
+
"dev": true,
1672
+
"license": "MIT"
1673
+
},
1674
+
"node_modules/esbuild": {
1675
+
"version": "0.25.3",
1676
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz",
1677
+
"integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==",
1678
+
"dev": true,
1679
+
"hasInstallScript": true,
1680
+
"license": "MIT",
1681
+
"bin": {
1682
+
"esbuild": "bin/esbuild"
1683
+
},
1684
+
"engines": {
1685
+
"node": ">=18"
1686
+
},
1687
+
"optionalDependencies": {
1688
+
"@esbuild/aix-ppc64": "0.25.3",
1689
+
"@esbuild/android-arm": "0.25.3",
1690
+
"@esbuild/android-arm64": "0.25.3",
1691
+
"@esbuild/android-x64": "0.25.3",
1692
+
"@esbuild/darwin-arm64": "0.25.3",
1693
+
"@esbuild/darwin-x64": "0.25.3",
1694
+
"@esbuild/freebsd-arm64": "0.25.3",
1695
+
"@esbuild/freebsd-x64": "0.25.3",
1696
+
"@esbuild/linux-arm": "0.25.3",
1697
+
"@esbuild/linux-arm64": "0.25.3",
1698
+
"@esbuild/linux-ia32": "0.25.3",
1699
+
"@esbuild/linux-loong64": "0.25.3",
1700
+
"@esbuild/linux-mips64el": "0.25.3",
1701
+
"@esbuild/linux-ppc64": "0.25.3",
1702
+
"@esbuild/linux-riscv64": "0.25.3",
1703
+
"@esbuild/linux-s390x": "0.25.3",
1704
+
"@esbuild/linux-x64": "0.25.3",
1705
+
"@esbuild/netbsd-arm64": "0.25.3",
1706
+
"@esbuild/netbsd-x64": "0.25.3",
1707
+
"@esbuild/openbsd-arm64": "0.25.3",
1708
+
"@esbuild/openbsd-x64": "0.25.3",
1709
+
"@esbuild/sunos-x64": "0.25.3",
1710
+
"@esbuild/win32-arm64": "0.25.3",
1711
+
"@esbuild/win32-ia32": "0.25.3",
1712
+
"@esbuild/win32-x64": "0.25.3"
1713
+
}
1714
+
},
1715
+
"node_modules/estree-walker": {
1716
+
"version": "3.0.3",
1717
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
1718
+
"integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
1719
+
"dev": true,
1720
+
"license": "MIT",
1721
+
"dependencies": {
1722
+
"@types/estree": "^1.0.0"
1723
+
}
1724
+
},
1725
+
"node_modules/exit-hook": {
1726
+
"version": "2.2.1",
1727
+
"resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz",
1728
+
"integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==",
1729
+
"dev": true,
1730
+
"license": "MIT",
1731
+
"engines": {
1732
+
"node": ">=6"
1733
+
},
1734
+
"funding": {
1735
+
"url": "https://github.com/sponsors/sindresorhus"
1736
+
}
1737
+
},
1738
+
"node_modules/expect-type": {
1739
+
"version": "1.2.1",
1740
+
"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz",
1741
+
"integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==",
1742
+
"dev": true,
1743
+
"license": "Apache-2.0",
1744
+
"engines": {
1745
+
"node": ">=12.0.0"
1746
+
}
1747
+
},
1748
+
"node_modules/exsolve": {
1749
+
"version": "1.0.5",
1750
+
"resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz",
1751
+
"integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==",
1752
+
"dev": true,
1753
+
"license": "MIT"
1754
+
},
1755
+
"node_modules/fdir": {
1756
+
"version": "6.4.4",
1757
+
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
1758
+
"integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
1759
+
"dev": true,
1760
+
"license": "MIT",
1761
+
"peerDependencies": {
1762
+
"picomatch": "^3 || ^4"
1763
+
},
1764
+
"peerDependenciesMeta": {
1765
+
"picomatch": {
1766
+
"optional": true
1767
+
}
1768
+
}
1769
+
},
1770
+
"node_modules/fsevents": {
1771
+
"version": "2.3.3",
1772
+
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1773
+
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1774
+
"dev": true,
1775
+
"hasInstallScript": true,
1776
+
"license": "MIT",
1777
+
"optional": true,
1778
+
"os": [
1779
+
"darwin"
1780
+
],
1781
+
"engines": {
1782
+
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1783
+
}
1784
+
},
1785
+
"node_modules/get-source": {
1786
+
"version": "2.0.12",
1787
+
"resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz",
1788
+
"integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==",
1789
+
"dev": true,
1790
+
"license": "Unlicense",
1791
+
"dependencies": {
1792
+
"data-uri-to-buffer": "^2.0.0",
1793
+
"source-map": "^0.6.1"
1794
+
}
1795
+
},
1796
+
"node_modules/glob-to-regexp": {
1797
+
"version": "0.4.1",
1798
+
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
1799
+
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
1800
+
"dev": true,
1801
+
"license": "BSD-2-Clause"
1802
+
},
1803
+
"node_modules/is-arrayish": {
1804
+
"version": "0.3.2",
1805
+
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
1806
+
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
1807
+
"dev": true,
1808
+
"license": "MIT",
1809
+
"optional": true
1810
+
},
1811
+
"node_modules/loupe": {
1812
+
"version": "3.1.3",
1813
+
"resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
1814
+
"integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
1815
+
"dev": true,
1816
+
"license": "MIT"
1817
+
},
1818
+
"node_modules/magic-string": {
1819
+
"version": "0.30.17",
1820
+
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
1821
+
"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
1822
+
"dev": true,
1823
+
"license": "MIT",
1824
+
"dependencies": {
1825
+
"@jridgewell/sourcemap-codec": "^1.5.0"
1826
+
}
1827
+
},
1828
+
"node_modules/mime": {
1829
+
"version": "3.0.0",
1830
+
"resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
1831
+
"integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
1832
+
"dev": true,
1833
+
"license": "MIT",
1834
+
"bin": {
1835
+
"mime": "cli.js"
1836
+
},
1837
+
"engines": {
1838
+
"node": ">=10.0.0"
1839
+
}
1840
+
},
1841
+
"node_modules/miniflare": {
1842
+
"version": "4.20250428.1",
1843
+
"resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250428.1.tgz",
1844
+
"integrity": "sha512-M3qcJXjeAEimHrEeWXEhrJiC3YHB5M3QSqqK67pOTI+lHn0QyVG/2iFUjVJ/nv+i10uxeAEva8GRGeu+tKRCmQ==",
1845
+
"dev": true,
1846
+
"license": "MIT",
1847
+
"dependencies": {
1848
+
"@cspotcode/source-map-support": "0.8.1",
1849
+
"acorn": "8.14.0",
1850
+
"acorn-walk": "8.3.2",
1851
+
"exit-hook": "2.2.1",
1852
+
"glob-to-regexp": "0.4.1",
1853
+
"stoppable": "1.1.0",
1854
+
"undici": "^5.28.5",
1855
+
"workerd": "1.20250428.0",
1856
+
"ws": "8.18.0",
1857
+
"youch": "3.3.4",
1858
+
"zod": "3.22.3"
1859
+
},
1860
+
"bin": {
1861
+
"miniflare": "bootstrap.js"
1862
+
},
1863
+
"engines": {
1864
+
"node": ">=18.0.0"
1865
+
}
1866
+
},
1867
+
"node_modules/miniflare/node_modules/zod": {
1868
+
"version": "3.22.3",
1869
+
"resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz",
1870
+
"integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==",
1871
+
"dev": true,
1872
+
"license": "MIT",
1873
+
"funding": {
1874
+
"url": "https://github.com/sponsors/colinhacks"
1875
+
}
1876
+
},
1877
+
"node_modules/ms": {
1878
+
"version": "2.1.3",
1879
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1880
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1881
+
"dev": true,
1882
+
"license": "MIT"
1883
+
},
1884
+
"node_modules/mustache": {
1885
+
"version": "4.2.0",
1886
+
"resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
1887
+
"integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
1888
+
"dev": true,
1889
+
"license": "MIT",
1890
+
"bin": {
1891
+
"mustache": "bin/mustache"
1892
+
}
1893
+
},
1894
+
"node_modules/nanoid": {
1895
+
"version": "3.3.11",
1896
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
1897
+
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
1898
+
"dev": true,
1899
+
"funding": [
1900
+
{
1901
+
"type": "github",
1902
+
"url": "https://github.com/sponsors/ai"
1903
+
}
1904
+
],
1905
+
"license": "MIT",
1906
+
"bin": {
1907
+
"nanoid": "bin/nanoid.cjs"
1908
+
},
1909
+
"engines": {
1910
+
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1911
+
}
1912
+
},
1913
+
"node_modules/ohash": {
1914
+
"version": "2.0.11",
1915
+
"resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz",
1916
+
"integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
1917
+
"dev": true,
1918
+
"license": "MIT"
1919
+
},
1920
+
"node_modules/path-to-regexp": {
1921
+
"version": "6.3.0",
1922
+
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
1923
+
"integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
1924
+
"dev": true,
1925
+
"license": "MIT"
1926
+
},
1927
+
"node_modules/pathe": {
1928
+
"version": "2.0.3",
1929
+
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
1930
+
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
1931
+
"dev": true,
1932
+
"license": "MIT"
1933
+
},
1934
+
"node_modules/pathval": {
1935
+
"version": "2.0.0",
1936
+
"resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
1937
+
"integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
1938
+
"dev": true,
1939
+
"license": "MIT",
1940
+
"engines": {
1941
+
"node": ">= 14.16"
1942
+
}
1943
+
},
1944
+
"node_modules/picocolors": {
1945
+
"version": "1.1.1",
1946
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1947
+
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1948
+
"dev": true,
1949
+
"license": "ISC"
1950
+
},
1951
+
"node_modules/picomatch": {
1952
+
"version": "4.0.2",
1953
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
1954
+
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
1955
+
"dev": true,
1956
+
"license": "MIT",
1957
+
"engines": {
1958
+
"node": ">=12"
1959
+
},
1960
+
"funding": {
1961
+
"url": "https://github.com/sponsors/jonschlinkert"
1962
+
}
1963
+
},
1964
+
"node_modules/postcss": {
1965
+
"version": "8.5.3",
1966
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
1967
+
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
1968
+
"dev": true,
1969
+
"funding": [
1970
+
{
1971
+
"type": "opencollective",
1972
+
"url": "https://opencollective.com/postcss/"
1973
+
},
1974
+
{
1975
+
"type": "tidelift",
1976
+
"url": "https://tidelift.com/funding/github/npm/postcss"
1977
+
},
1978
+
{
1979
+
"type": "github",
1980
+
"url": "https://github.com/sponsors/ai"
1981
+
}
1982
+
],
1983
+
"license": "MIT",
1984
+
"dependencies": {
1985
+
"nanoid": "^3.3.8",
1986
+
"picocolors": "^1.1.1",
1987
+
"source-map-js": "^1.2.1"
1988
+
},
1989
+
"engines": {
1990
+
"node": "^10 || ^12 || >=14"
1991
+
}
1992
+
},
1993
+
"node_modules/printable-characters": {
1994
+
"version": "1.0.42",
1995
+
"resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz",
1996
+
"integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==",
1997
+
"dev": true,
1998
+
"license": "Unlicense"
1999
+
},
2000
+
"node_modules/rollup": {
2001
+
"version": "4.40.1",
2002
+
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz",
2003
+
"integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==",
2004
+
"dev": true,
2005
+
"license": "MIT",
2006
+
"dependencies": {
2007
+
"@types/estree": "1.0.7"
2008
+
},
2009
+
"bin": {
2010
+
"rollup": "dist/bin/rollup"
2011
+
},
2012
+
"engines": {
2013
+
"node": ">=18.0.0",
2014
+
"npm": ">=8.0.0"
2015
+
},
2016
+
"optionalDependencies": {
2017
+
"@rollup/rollup-android-arm-eabi": "4.40.1",
2018
+
"@rollup/rollup-android-arm64": "4.40.1",
2019
+
"@rollup/rollup-darwin-arm64": "4.40.1",
2020
+
"@rollup/rollup-darwin-x64": "4.40.1",
2021
+
"@rollup/rollup-freebsd-arm64": "4.40.1",
2022
+
"@rollup/rollup-freebsd-x64": "4.40.1",
2023
+
"@rollup/rollup-linux-arm-gnueabihf": "4.40.1",
2024
+
"@rollup/rollup-linux-arm-musleabihf": "4.40.1",
2025
+
"@rollup/rollup-linux-arm64-gnu": "4.40.1",
2026
+
"@rollup/rollup-linux-arm64-musl": "4.40.1",
2027
+
"@rollup/rollup-linux-loongarch64-gnu": "4.40.1",
2028
+
"@rollup/rollup-linux-powerpc64le-gnu": "4.40.1",
2029
+
"@rollup/rollup-linux-riscv64-gnu": "4.40.1",
2030
+
"@rollup/rollup-linux-riscv64-musl": "4.40.1",
2031
+
"@rollup/rollup-linux-s390x-gnu": "4.40.1",
2032
+
"@rollup/rollup-linux-x64-gnu": "4.40.1",
2033
+
"@rollup/rollup-linux-x64-musl": "4.40.1",
2034
+
"@rollup/rollup-win32-arm64-msvc": "4.40.1",
2035
+
"@rollup/rollup-win32-ia32-msvc": "4.40.1",
2036
+
"@rollup/rollup-win32-x64-msvc": "4.40.1",
2037
+
"fsevents": "~2.3.2"
2038
+
}
2039
+
},
2040
+
"node_modules/semver": {
2041
+
"version": "7.7.1",
2042
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
2043
+
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
2044
+
"dev": true,
2045
+
"license": "ISC",
2046
+
"bin": {
2047
+
"semver": "bin/semver.js"
2048
+
},
2049
+
"engines": {
2050
+
"node": ">=10"
2051
+
}
2052
+
},
2053
+
"node_modules/sharp": {
2054
+
"version": "0.33.5",
2055
+
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
2056
+
"integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==",
2057
+
"dev": true,
2058
+
"hasInstallScript": true,
2059
+
"license": "Apache-2.0",
2060
+
"optional": true,
2061
+
"dependencies": {
2062
+
"color": "^4.2.3",
2063
+
"detect-libc": "^2.0.3",
2064
+
"semver": "^7.6.3"
2065
+
},
2066
+
"engines": {
2067
+
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
2068
+
},
2069
+
"funding": {
2070
+
"url": "https://opencollective.com/libvips"
2071
+
},
2072
+
"optionalDependencies": {
2073
+
"@img/sharp-darwin-arm64": "0.33.5",
2074
+
"@img/sharp-darwin-x64": "0.33.5",
2075
+
"@img/sharp-libvips-darwin-arm64": "1.0.4",
2076
+
"@img/sharp-libvips-darwin-x64": "1.0.4",
2077
+
"@img/sharp-libvips-linux-arm": "1.0.5",
2078
+
"@img/sharp-libvips-linux-arm64": "1.0.4",
2079
+
"@img/sharp-libvips-linux-s390x": "1.0.4",
2080
+
"@img/sharp-libvips-linux-x64": "1.0.4",
2081
+
"@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
2082
+
"@img/sharp-libvips-linuxmusl-x64": "1.0.4",
2083
+
"@img/sharp-linux-arm": "0.33.5",
2084
+
"@img/sharp-linux-arm64": "0.33.5",
2085
+
"@img/sharp-linux-s390x": "0.33.5",
2086
+
"@img/sharp-linux-x64": "0.33.5",
2087
+
"@img/sharp-linuxmusl-arm64": "0.33.5",
2088
+
"@img/sharp-linuxmusl-x64": "0.33.5",
2089
+
"@img/sharp-wasm32": "0.33.5",
2090
+
"@img/sharp-win32-ia32": "0.33.5",
2091
+
"@img/sharp-win32-x64": "0.33.5"
2092
+
}
2093
+
},
2094
+
"node_modules/siginfo": {
2095
+
"version": "2.0.0",
2096
+
"resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
2097
+
"integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
2098
+
"dev": true,
2099
+
"license": "ISC"
2100
+
},
2101
+
"node_modules/simple-swizzle": {
2102
+
"version": "0.2.2",
2103
+
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
2104
+
"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
2105
+
"dev": true,
2106
+
"license": "MIT",
2107
+
"optional": true,
2108
+
"dependencies": {
2109
+
"is-arrayish": "^0.3.1"
2110
+
}
2111
+
},
2112
+
"node_modules/source-map": {
2113
+
"version": "0.6.1",
2114
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2115
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2116
+
"dev": true,
2117
+
"license": "BSD-3-Clause",
2118
+
"engines": {
2119
+
"node": ">=0.10.0"
2120
+
}
2121
+
},
2122
+
"node_modules/source-map-js": {
2123
+
"version": "1.2.1",
2124
+
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2125
+
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2126
+
"dev": true,
2127
+
"license": "BSD-3-Clause",
2128
+
"engines": {
2129
+
"node": ">=0.10.0"
2130
+
}
2131
+
},
2132
+
"node_modules/stackback": {
2133
+
"version": "0.0.2",
2134
+
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
2135
+
"integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
2136
+
"dev": true,
2137
+
"license": "MIT"
2138
+
},
2139
+
"node_modules/stacktracey": {
2140
+
"version": "2.1.8",
2141
+
"resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz",
2142
+
"integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==",
2143
+
"dev": true,
2144
+
"license": "Unlicense",
2145
+
"dependencies": {
2146
+
"as-table": "^1.0.36",
2147
+
"get-source": "^2.0.12"
2148
+
}
2149
+
},
2150
+
"node_modules/std-env": {
2151
+
"version": "3.9.0",
2152
+
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
2153
+
"integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
2154
+
"dev": true,
2155
+
"license": "MIT"
2156
+
},
2157
+
"node_modules/stoppable": {
2158
+
"version": "1.1.0",
2159
+
"resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
2160
+
"integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
2161
+
"dev": true,
2162
+
"license": "MIT",
2163
+
"engines": {
2164
+
"node": ">=4",
2165
+
"npm": ">=6"
2166
+
}
2167
+
},
2168
+
"node_modules/tinybench": {
2169
+
"version": "2.9.0",
2170
+
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
2171
+
"integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
2172
+
"dev": true,
2173
+
"license": "MIT"
2174
+
},
2175
+
"node_modules/tinyexec": {
2176
+
"version": "0.3.2",
2177
+
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
2178
+
"integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
2179
+
"dev": true,
2180
+
"license": "MIT"
2181
+
},
2182
+
"node_modules/tinyglobby": {
2183
+
"version": "0.2.13",
2184
+
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
2185
+
"integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
2186
+
"dev": true,
2187
+
"license": "MIT",
2188
+
"dependencies": {
2189
+
"fdir": "^6.4.4",
2190
+
"picomatch": "^4.0.2"
2191
+
},
2192
+
"engines": {
2193
+
"node": ">=12.0.0"
2194
+
},
2195
+
"funding": {
2196
+
"url": "https://github.com/sponsors/SuperchupuDev"
2197
+
}
2198
+
},
2199
+
"node_modules/tinypool": {
2200
+
"version": "1.0.2",
2201
+
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
2202
+
"integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
2203
+
"dev": true,
2204
+
"license": "MIT",
2205
+
"engines": {
2206
+
"node": "^18.0.0 || >=20.0.0"
2207
+
}
2208
+
},
2209
+
"node_modules/tinyrainbow": {
2210
+
"version": "2.0.0",
2211
+
"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
2212
+
"integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
2213
+
"dev": true,
2214
+
"license": "MIT",
2215
+
"engines": {
2216
+
"node": ">=14.0.0"
2217
+
}
2218
+
},
2219
+
"node_modules/tinyspy": {
2220
+
"version": "3.0.2",
2221
+
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
2222
+
"integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
2223
+
"dev": true,
2224
+
"license": "MIT",
2225
+
"engines": {
2226
+
"node": ">=14.0.0"
2227
+
}
2228
+
},
2229
+
"node_modules/tslib": {
2230
+
"version": "2.8.1",
2231
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
2232
+
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
2233
+
"dev": true,
2234
+
"license": "0BSD",
2235
+
"optional": true
2236
+
},
2237
+
"node_modules/ufo": {
2238
+
"version": "1.6.1",
2239
+
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
2240
+
"integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
2241
+
"dev": true,
2242
+
"license": "MIT"
2243
+
},
2244
+
"node_modules/undici": {
2245
+
"version": "5.29.0",
2246
+
"resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
2247
+
"integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==",
2248
+
"dev": true,
2249
+
"license": "MIT",
2250
+
"dependencies": {
2251
+
"@fastify/busboy": "^2.0.0"
2252
+
},
2253
+
"engines": {
2254
+
"node": ">=14.0"
2255
+
}
2256
+
},
2257
+
"node_modules/unenv": {
2258
+
"version": "2.0.0-rc.15",
2259
+
"resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.15.tgz",
2260
+
"integrity": "sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA==",
2261
+
"dev": true,
2262
+
"license": "MIT",
2263
+
"dependencies": {
2264
+
"defu": "^6.1.4",
2265
+
"exsolve": "^1.0.4",
2266
+
"ohash": "^2.0.11",
2267
+
"pathe": "^2.0.3",
2268
+
"ufo": "^1.5.4"
2269
+
}
2270
+
},
2271
+
"node_modules/vite": {
2272
+
"version": "6.3.4",
2273
+
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz",
2274
+
"integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==",
2275
+
"dev": true,
2276
+
"license": "MIT",
2277
+
"dependencies": {
2278
+
"esbuild": "^0.25.0",
2279
+
"fdir": "^6.4.4",
2280
+
"picomatch": "^4.0.2",
2281
+
"postcss": "^8.5.3",
2282
+
"rollup": "^4.34.9",
2283
+
"tinyglobby": "^0.2.13"
2284
+
},
2285
+
"bin": {
2286
+
"vite": "bin/vite.js"
2287
+
},
2288
+
"engines": {
2289
+
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2290
+
},
2291
+
"funding": {
2292
+
"url": "https://github.com/vitejs/vite?sponsor=1"
2293
+
},
2294
+
"optionalDependencies": {
2295
+
"fsevents": "~2.3.3"
2296
+
},
2297
+
"peerDependencies": {
2298
+
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
2299
+
"jiti": ">=1.21.0",
2300
+
"less": "*",
2301
+
"lightningcss": "^1.21.0",
2302
+
"sass": "*",
2303
+
"sass-embedded": "*",
2304
+
"stylus": "*",
2305
+
"sugarss": "*",
2306
+
"terser": "^5.16.0",
2307
+
"tsx": "^4.8.1",
2308
+
"yaml": "^2.4.2"
2309
+
},
2310
+
"peerDependenciesMeta": {
2311
+
"@types/node": {
2312
+
"optional": true
2313
+
},
2314
+
"jiti": {
2315
+
"optional": true
2316
+
},
2317
+
"less": {
2318
+
"optional": true
2319
+
},
2320
+
"lightningcss": {
2321
+
"optional": true
2322
+
},
2323
+
"sass": {
2324
+
"optional": true
2325
+
},
2326
+
"sass-embedded": {
2327
+
"optional": true
2328
+
},
2329
+
"stylus": {
2330
+
"optional": true
2331
+
},
2332
+
"sugarss": {
2333
+
"optional": true
2334
+
},
2335
+
"terser": {
2336
+
"optional": true
2337
+
},
2338
+
"tsx": {
2339
+
"optional": true
2340
+
},
2341
+
"yaml": {
2342
+
"optional": true
2343
+
}
2344
+
}
2345
+
},
2346
+
"node_modules/vite-node": {
2347
+
"version": "3.0.9",
2348
+
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.9.tgz",
2349
+
"integrity": "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==",
2350
+
"dev": true,
2351
+
"license": "MIT",
2352
+
"dependencies": {
2353
+
"cac": "^6.7.14",
2354
+
"debug": "^4.4.0",
2355
+
"es-module-lexer": "^1.6.0",
2356
+
"pathe": "^2.0.3",
2357
+
"vite": "^5.0.0 || ^6.0.0"
2358
+
},
2359
+
"bin": {
2360
+
"vite-node": "vite-node.mjs"
2361
+
},
2362
+
"engines": {
2363
+
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2364
+
},
2365
+
"funding": {
2366
+
"url": "https://opencollective.com/vitest"
2367
+
}
2368
+
},
2369
+
"node_modules/vitest": {
2370
+
"version": "3.0.9",
2371
+
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.9.tgz",
2372
+
"integrity": "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==",
2373
+
"dev": true,
2374
+
"license": "MIT",
2375
+
"dependencies": {
2376
+
"@vitest/expect": "3.0.9",
2377
+
"@vitest/mocker": "3.0.9",
2378
+
"@vitest/pretty-format": "^3.0.9",
2379
+
"@vitest/runner": "3.0.9",
2380
+
"@vitest/snapshot": "3.0.9",
2381
+
"@vitest/spy": "3.0.9",
2382
+
"@vitest/utils": "3.0.9",
2383
+
"chai": "^5.2.0",
2384
+
"debug": "^4.4.0",
2385
+
"expect-type": "^1.1.0",
2386
+
"magic-string": "^0.30.17",
2387
+
"pathe": "^2.0.3",
2388
+
"std-env": "^3.8.0",
2389
+
"tinybench": "^2.9.0",
2390
+
"tinyexec": "^0.3.2",
2391
+
"tinypool": "^1.0.2",
2392
+
"tinyrainbow": "^2.0.0",
2393
+
"vite": "^5.0.0 || ^6.0.0",
2394
+
"vite-node": "3.0.9",
2395
+
"why-is-node-running": "^2.3.0"
2396
+
},
2397
+
"bin": {
2398
+
"vitest": "vitest.mjs"
2399
+
},
2400
+
"engines": {
2401
+
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2402
+
},
2403
+
"funding": {
2404
+
"url": "https://opencollective.com/vitest"
2405
+
},
2406
+
"peerDependencies": {
2407
+
"@edge-runtime/vm": "*",
2408
+
"@types/debug": "^4.1.12",
2409
+
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
2410
+
"@vitest/browser": "3.0.9",
2411
+
"@vitest/ui": "3.0.9",
2412
+
"happy-dom": "*",
2413
+
"jsdom": "*"
2414
+
},
2415
+
"peerDependenciesMeta": {
2416
+
"@edge-runtime/vm": {
2417
+
"optional": true
2418
+
},
2419
+
"@types/debug": {
2420
+
"optional": true
2421
+
},
2422
+
"@types/node": {
2423
+
"optional": true
2424
+
},
2425
+
"@vitest/browser": {
2426
+
"optional": true
2427
+
},
2428
+
"@vitest/ui": {
2429
+
"optional": true
2430
+
},
2431
+
"happy-dom": {
2432
+
"optional": true
2433
+
},
2434
+
"jsdom": {
2435
+
"optional": true
2436
+
}
2437
+
}
2438
+
},
2439
+
"node_modules/why-is-node-running": {
2440
+
"version": "2.3.0",
2441
+
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
2442
+
"integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
2443
+
"dev": true,
2444
+
"license": "MIT",
2445
+
"dependencies": {
2446
+
"siginfo": "^2.0.0",
2447
+
"stackback": "0.0.2"
2448
+
},
2449
+
"bin": {
2450
+
"why-is-node-running": "cli.js"
2451
+
},
2452
+
"engines": {
2453
+
"node": ">=8"
2454
+
}
2455
+
},
2456
+
"node_modules/workerd": {
2457
+
"version": "1.20250428.0",
2458
+
"resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250428.0.tgz",
2459
+
"integrity": "sha512-JJNWkHkwPQKQdvtM9UORijgYdcdJsihA4SfYjwh02IUQsdMyZ9jizV1sX9yWi9B9ptlohTW8UNHJEATuphGgdg==",
2460
+
"dev": true,
2461
+
"hasInstallScript": true,
2462
+
"license": "Apache-2.0",
2463
+
"bin": {
2464
+
"workerd": "bin/workerd"
2465
+
},
2466
+
"engines": {
2467
+
"node": ">=16"
2468
+
},
2469
+
"optionalDependencies": {
2470
+
"@cloudflare/workerd-darwin-64": "1.20250428.0",
2471
+
"@cloudflare/workerd-darwin-arm64": "1.20250428.0",
2472
+
"@cloudflare/workerd-linux-64": "1.20250428.0",
2473
+
"@cloudflare/workerd-linux-arm64": "1.20250428.0",
2474
+
"@cloudflare/workerd-windows-64": "1.20250428.0"
2475
+
}
2476
+
},
2477
+
"node_modules/wrangler": {
2478
+
"version": "4.14.1",
2479
+
"resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.14.1.tgz",
2480
+
"integrity": "sha512-EU7IThP7i68TBftJJSveogvWZ5k/WRijcJh3UclDWiWWhDZTPbL6LOJEFhHKqFzHOaC4Y2Aewt48rfTz0e7oCw==",
2481
+
"dev": true,
2482
+
"license": "MIT OR Apache-2.0",
2483
+
"dependencies": {
2484
+
"@cloudflare/kv-asset-handler": "0.4.0",
2485
+
"@cloudflare/unenv-preset": "2.3.1",
2486
+
"blake3-wasm": "2.1.5",
2487
+
"esbuild": "0.25.2",
2488
+
"miniflare": "4.20250428.1",
2489
+
"path-to-regexp": "6.3.0",
2490
+
"unenv": "2.0.0-rc.15",
2491
+
"workerd": "1.20250428.0"
2492
+
},
2493
+
"bin": {
2494
+
"wrangler": "bin/wrangler.js",
2495
+
"wrangler2": "bin/wrangler.js"
2496
+
},
2497
+
"engines": {
2498
+
"node": ">=18.0.0"
2499
+
},
2500
+
"optionalDependencies": {
2501
+
"fsevents": "~2.3.2",
2502
+
"sharp": "^0.33.5"
2503
+
},
2504
+
"peerDependencies": {
2505
+
"@cloudflare/workers-types": "^4.20250428.0"
2506
+
},
2507
+
"peerDependenciesMeta": {
2508
+
"@cloudflare/workers-types": {
2509
+
"optional": true
2510
+
}
2511
+
}
2512
+
},
2513
+
"node_modules/wrangler/node_modules/@esbuild/aix-ppc64": {
2514
+
"version": "0.25.2",
2515
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz",
2516
+
"integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==",
2517
+
"cpu": [
2518
+
"ppc64"
2519
+
],
2520
+
"dev": true,
2521
+
"license": "MIT",
2522
+
"optional": true,
2523
+
"os": [
2524
+
"aix"
2525
+
],
2526
+
"engines": {
2527
+
"node": ">=18"
2528
+
}
2529
+
},
2530
+
"node_modules/wrangler/node_modules/@esbuild/android-arm": {
2531
+
"version": "0.25.2",
2532
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz",
2533
+
"integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==",
2534
+
"cpu": [
2535
+
"arm"
2536
+
],
2537
+
"dev": true,
2538
+
"license": "MIT",
2539
+
"optional": true,
2540
+
"os": [
2541
+
"android"
2542
+
],
2543
+
"engines": {
2544
+
"node": ">=18"
2545
+
}
2546
+
},
2547
+
"node_modules/wrangler/node_modules/@esbuild/android-arm64": {
2548
+
"version": "0.25.2",
2549
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz",
2550
+
"integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==",
2551
+
"cpu": [
2552
+
"arm64"
2553
+
],
2554
+
"dev": true,
2555
+
"license": "MIT",
2556
+
"optional": true,
2557
+
"os": [
2558
+
"android"
2559
+
],
2560
+
"engines": {
2561
+
"node": ">=18"
2562
+
}
2563
+
},
2564
+
"node_modules/wrangler/node_modules/@esbuild/android-x64": {
2565
+
"version": "0.25.2",
2566
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz",
2567
+
"integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==",
2568
+
"cpu": [
2569
+
"x64"
2570
+
],
2571
+
"dev": true,
2572
+
"license": "MIT",
2573
+
"optional": true,
2574
+
"os": [
2575
+
"android"
2576
+
],
2577
+
"engines": {
2578
+
"node": ">=18"
2579
+
}
2580
+
},
2581
+
"node_modules/wrangler/node_modules/@esbuild/darwin-arm64": {
2582
+
"version": "0.25.2",
2583
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz",
2584
+
"integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==",
2585
+
"cpu": [
2586
+
"arm64"
2587
+
],
2588
+
"dev": true,
2589
+
"license": "MIT",
2590
+
"optional": true,
2591
+
"os": [
2592
+
"darwin"
2593
+
],
2594
+
"engines": {
2595
+
"node": ">=18"
2596
+
}
2597
+
},
2598
+
"node_modules/wrangler/node_modules/@esbuild/darwin-x64": {
2599
+
"version": "0.25.2",
2600
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz",
2601
+
"integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==",
2602
+
"cpu": [
2603
+
"x64"
2604
+
],
2605
+
"dev": true,
2606
+
"license": "MIT",
2607
+
"optional": true,
2608
+
"os": [
2609
+
"darwin"
2610
+
],
2611
+
"engines": {
2612
+
"node": ">=18"
2613
+
}
2614
+
},
2615
+
"node_modules/wrangler/node_modules/@esbuild/freebsd-arm64": {
2616
+
"version": "0.25.2",
2617
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz",
2618
+
"integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==",
2619
+
"cpu": [
2620
+
"arm64"
2621
+
],
2622
+
"dev": true,
2623
+
"license": "MIT",
2624
+
"optional": true,
2625
+
"os": [
2626
+
"freebsd"
2627
+
],
2628
+
"engines": {
2629
+
"node": ">=18"
2630
+
}
2631
+
},
2632
+
"node_modules/wrangler/node_modules/@esbuild/freebsd-x64": {
2633
+
"version": "0.25.2",
2634
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz",
2635
+
"integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==",
2636
+
"cpu": [
2637
+
"x64"
2638
+
],
2639
+
"dev": true,
2640
+
"license": "MIT",
2641
+
"optional": true,
2642
+
"os": [
2643
+
"freebsd"
2644
+
],
2645
+
"engines": {
2646
+
"node": ">=18"
2647
+
}
2648
+
},
2649
+
"node_modules/wrangler/node_modules/@esbuild/linux-arm": {
2650
+
"version": "0.25.2",
2651
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz",
2652
+
"integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==",
2653
+
"cpu": [
2654
+
"arm"
2655
+
],
2656
+
"dev": true,
2657
+
"license": "MIT",
2658
+
"optional": true,
2659
+
"os": [
2660
+
"linux"
2661
+
],
2662
+
"engines": {
2663
+
"node": ">=18"
2664
+
}
2665
+
},
2666
+
"node_modules/wrangler/node_modules/@esbuild/linux-arm64": {
2667
+
"version": "0.25.2",
2668
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz",
2669
+
"integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==",
2670
+
"cpu": [
2671
+
"arm64"
2672
+
],
2673
+
"dev": true,
2674
+
"license": "MIT",
2675
+
"optional": true,
2676
+
"os": [
2677
+
"linux"
2678
+
],
2679
+
"engines": {
2680
+
"node": ">=18"
2681
+
}
2682
+
},
2683
+
"node_modules/wrangler/node_modules/@esbuild/linux-ia32": {
2684
+
"version": "0.25.2",
2685
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz",
2686
+
"integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==",
2687
+
"cpu": [
2688
+
"ia32"
2689
+
],
2690
+
"dev": true,
2691
+
"license": "MIT",
2692
+
"optional": true,
2693
+
"os": [
2694
+
"linux"
2695
+
],
2696
+
"engines": {
2697
+
"node": ">=18"
2698
+
}
2699
+
},
2700
+
"node_modules/wrangler/node_modules/@esbuild/linux-loong64": {
2701
+
"version": "0.25.2",
2702
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz",
2703
+
"integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==",
2704
+
"cpu": [
2705
+
"loong64"
2706
+
],
2707
+
"dev": true,
2708
+
"license": "MIT",
2709
+
"optional": true,
2710
+
"os": [
2711
+
"linux"
2712
+
],
2713
+
"engines": {
2714
+
"node": ">=18"
2715
+
}
2716
+
},
2717
+
"node_modules/wrangler/node_modules/@esbuild/linux-mips64el": {
2718
+
"version": "0.25.2",
2719
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz",
2720
+
"integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==",
2721
+
"cpu": [
2722
+
"mips64el"
2723
+
],
2724
+
"dev": true,
2725
+
"license": "MIT",
2726
+
"optional": true,
2727
+
"os": [
2728
+
"linux"
2729
+
],
2730
+
"engines": {
2731
+
"node": ">=18"
2732
+
}
2733
+
},
2734
+
"node_modules/wrangler/node_modules/@esbuild/linux-ppc64": {
2735
+
"version": "0.25.2",
2736
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz",
2737
+
"integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==",
2738
+
"cpu": [
2739
+
"ppc64"
2740
+
],
2741
+
"dev": true,
2742
+
"license": "MIT",
2743
+
"optional": true,
2744
+
"os": [
2745
+
"linux"
2746
+
],
2747
+
"engines": {
2748
+
"node": ">=18"
2749
+
}
2750
+
},
2751
+
"node_modules/wrangler/node_modules/@esbuild/linux-riscv64": {
2752
+
"version": "0.25.2",
2753
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz",
2754
+
"integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==",
2755
+
"cpu": [
2756
+
"riscv64"
2757
+
],
2758
+
"dev": true,
2759
+
"license": "MIT",
2760
+
"optional": true,
2761
+
"os": [
2762
+
"linux"
2763
+
],
2764
+
"engines": {
2765
+
"node": ">=18"
2766
+
}
2767
+
},
2768
+
"node_modules/wrangler/node_modules/@esbuild/linux-s390x": {
2769
+
"version": "0.25.2",
2770
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz",
2771
+
"integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==",
2772
+
"cpu": [
2773
+
"s390x"
2774
+
],
2775
+
"dev": true,
2776
+
"license": "MIT",
2777
+
"optional": true,
2778
+
"os": [
2779
+
"linux"
2780
+
],
2781
+
"engines": {
2782
+
"node": ">=18"
2783
+
}
2784
+
},
2785
+
"node_modules/wrangler/node_modules/@esbuild/linux-x64": {
2786
+
"version": "0.25.2",
2787
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz",
2788
+
"integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==",
2789
+
"cpu": [
2790
+
"x64"
2791
+
],
2792
+
"dev": true,
2793
+
"license": "MIT",
2794
+
"optional": true,
2795
+
"os": [
2796
+
"linux"
2797
+
],
2798
+
"engines": {
2799
+
"node": ">=18"
2800
+
}
2801
+
},
2802
+
"node_modules/wrangler/node_modules/@esbuild/netbsd-arm64": {
2803
+
"version": "0.25.2",
2804
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz",
2805
+
"integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==",
2806
+
"cpu": [
2807
+
"arm64"
2808
+
],
2809
+
"dev": true,
2810
+
"license": "MIT",
2811
+
"optional": true,
2812
+
"os": [
2813
+
"netbsd"
2814
+
],
2815
+
"engines": {
2816
+
"node": ">=18"
2817
+
}
2818
+
},
2819
+
"node_modules/wrangler/node_modules/@esbuild/netbsd-x64": {
2820
+
"version": "0.25.2",
2821
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz",
2822
+
"integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==",
2823
+
"cpu": [
2824
+
"x64"
2825
+
],
2826
+
"dev": true,
2827
+
"license": "MIT",
2828
+
"optional": true,
2829
+
"os": [
2830
+
"netbsd"
2831
+
],
2832
+
"engines": {
2833
+
"node": ">=18"
2834
+
}
2835
+
},
2836
+
"node_modules/wrangler/node_modules/@esbuild/openbsd-arm64": {
2837
+
"version": "0.25.2",
2838
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz",
2839
+
"integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==",
2840
+
"cpu": [
2841
+
"arm64"
2842
+
],
2843
+
"dev": true,
2844
+
"license": "MIT",
2845
+
"optional": true,
2846
+
"os": [
2847
+
"openbsd"
2848
+
],
2849
+
"engines": {
2850
+
"node": ">=18"
2851
+
}
2852
+
},
2853
+
"node_modules/wrangler/node_modules/@esbuild/openbsd-x64": {
2854
+
"version": "0.25.2",
2855
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz",
2856
+
"integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==",
2857
+
"cpu": [
2858
+
"x64"
2859
+
],
2860
+
"dev": true,
2861
+
"license": "MIT",
2862
+
"optional": true,
2863
+
"os": [
2864
+
"openbsd"
2865
+
],
2866
+
"engines": {
2867
+
"node": ">=18"
2868
+
}
2869
+
},
2870
+
"node_modules/wrangler/node_modules/@esbuild/sunos-x64": {
2871
+
"version": "0.25.2",
2872
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz",
2873
+
"integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==",
2874
+
"cpu": [
2875
+
"x64"
2876
+
],
2877
+
"dev": true,
2878
+
"license": "MIT",
2879
+
"optional": true,
2880
+
"os": [
2881
+
"sunos"
2882
+
],
2883
+
"engines": {
2884
+
"node": ">=18"
2885
+
}
2886
+
},
2887
+
"node_modules/wrangler/node_modules/@esbuild/win32-arm64": {
2888
+
"version": "0.25.2",
2889
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz",
2890
+
"integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==",
2891
+
"cpu": [
2892
+
"arm64"
2893
+
],
2894
+
"dev": true,
2895
+
"license": "MIT",
2896
+
"optional": true,
2897
+
"os": [
2898
+
"win32"
2899
+
],
2900
+
"engines": {
2901
+
"node": ">=18"
2902
+
}
2903
+
},
2904
+
"node_modules/wrangler/node_modules/@esbuild/win32-ia32": {
2905
+
"version": "0.25.2",
2906
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz",
2907
+
"integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==",
2908
+
"cpu": [
2909
+
"ia32"
2910
+
],
2911
+
"dev": true,
2912
+
"license": "MIT",
2913
+
"optional": true,
2914
+
"os": [
2915
+
"win32"
2916
+
],
2917
+
"engines": {
2918
+
"node": ">=18"
2919
+
}
2920
+
},
2921
+
"node_modules/wrangler/node_modules/@esbuild/win32-x64": {
2922
+
"version": "0.25.2",
2923
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz",
2924
+
"integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==",
2925
+
"cpu": [
2926
+
"x64"
2927
+
],
2928
+
"dev": true,
2929
+
"license": "MIT",
2930
+
"optional": true,
2931
+
"os": [
2932
+
"win32"
2933
+
],
2934
+
"engines": {
2935
+
"node": ">=18"
2936
+
}
2937
+
},
2938
+
"node_modules/wrangler/node_modules/esbuild": {
2939
+
"version": "0.25.2",
2940
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz",
2941
+
"integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==",
2942
+
"dev": true,
2943
+
"hasInstallScript": true,
2944
+
"license": "MIT",
2945
+
"bin": {
2946
+
"esbuild": "bin/esbuild"
2947
+
},
2948
+
"engines": {
2949
+
"node": ">=18"
2950
+
},
2951
+
"optionalDependencies": {
2952
+
"@esbuild/aix-ppc64": "0.25.2",
2953
+
"@esbuild/android-arm": "0.25.2",
2954
+
"@esbuild/android-arm64": "0.25.2",
2955
+
"@esbuild/android-x64": "0.25.2",
2956
+
"@esbuild/darwin-arm64": "0.25.2",
2957
+
"@esbuild/darwin-x64": "0.25.2",
2958
+
"@esbuild/freebsd-arm64": "0.25.2",
2959
+
"@esbuild/freebsd-x64": "0.25.2",
2960
+
"@esbuild/linux-arm": "0.25.2",
2961
+
"@esbuild/linux-arm64": "0.25.2",
2962
+
"@esbuild/linux-ia32": "0.25.2",
2963
+
"@esbuild/linux-loong64": "0.25.2",
2964
+
"@esbuild/linux-mips64el": "0.25.2",
2965
+
"@esbuild/linux-ppc64": "0.25.2",
2966
+
"@esbuild/linux-riscv64": "0.25.2",
2967
+
"@esbuild/linux-s390x": "0.25.2",
2968
+
"@esbuild/linux-x64": "0.25.2",
2969
+
"@esbuild/netbsd-arm64": "0.25.2",
2970
+
"@esbuild/netbsd-x64": "0.25.2",
2971
+
"@esbuild/openbsd-arm64": "0.25.2",
2972
+
"@esbuild/openbsd-x64": "0.25.2",
2973
+
"@esbuild/sunos-x64": "0.25.2",
2974
+
"@esbuild/win32-arm64": "0.25.2",
2975
+
"@esbuild/win32-ia32": "0.25.2",
2976
+
"@esbuild/win32-x64": "0.25.2"
2977
+
}
2978
+
},
2979
+
"node_modules/ws": {
2980
+
"version": "8.18.0",
2981
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
2982
+
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
2983
+
"dev": true,
2984
+
"license": "MIT",
2985
+
"engines": {
2986
+
"node": ">=10.0.0"
2987
+
},
2988
+
"peerDependencies": {
2989
+
"bufferutil": "^4.0.1",
2990
+
"utf-8-validate": ">=5.0.2"
2991
+
},
2992
+
"peerDependenciesMeta": {
2993
+
"bufferutil": {
2994
+
"optional": true
2995
+
},
2996
+
"utf-8-validate": {
2997
+
"optional": true
2998
+
}
2999
+
}
3000
+
},
3001
+
"node_modules/youch": {
3002
+
"version": "3.3.4",
3003
+
"resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz",
3004
+
"integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==",
3005
+
"dev": true,
3006
+
"license": "MIT",
3007
+
"dependencies": {
3008
+
"cookie": "^0.7.1",
3009
+
"mustache": "^4.2.0",
3010
+
"stacktracey": "^2.1.8"
3011
+
}
3012
+
},
3013
+
"node_modules/zod": {
3014
+
"version": "3.24.3",
3015
+
"resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz",
3016
+
"integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==",
3017
+
"dev": true,
3018
+
"license": "MIT",
3019
+
"funding": {
3020
+
"url": "https://github.com/sponsors/colinhacks"
3021
+
}
3022
+
}
3023
+
}
3024
+
}
+16
avatar/package.json
+16
avatar/package.json
···
1
+
{
2
+
"name": "avatar",
3
+
"version": "0.0.0",
4
+
"private": true,
5
+
"scripts": {
6
+
"deploy": "wrangler deploy",
7
+
"dev": "wrangler dev",
8
+
"start": "wrangler dev",
9
+
"test": "vitest"
10
+
},
11
+
"devDependencies": {
12
+
"@cloudflare/vitest-pool-workers": "^0.8.19",
13
+
"vitest": "~3.0.7",
14
+
"wrangler": "^4.14.1"
15
+
}
16
+
}
+11
avatar/readme.md
+11
avatar/readme.md
···
1
+
# avatar
2
+
3
+
avatar is a small service that fetches your pretty Bluesky avatar and caches it on Cloudflare.
4
+
It uses a shared secret `AVATAR_SHARED_SECRET` to ensure requests only originate from the trusted appview.
5
+
6
+
It's deployed using `wrangler` like so:
7
+
8
+
```
9
+
npx wrangler deploy
10
+
npx wrangler secrets put AVATAR_SHARED_SECRET
11
+
```
+88
avatar/src/index.js
+88
avatar/src/index.js
···
1
+
export default {
2
+
async fetch(request, env) {
3
+
const url = new URL(request.url);
4
+
const { pathname } = url;
5
+
6
+
if (!pathname || pathname === '/') {
7
+
return new Response(`This is Tangled's avatar service. It fetches your pretty avatar from Bluesky and caches it on Cloudflare.
8
+
You can't use this directly unforunately since all requests are signed and may only originate from the appview.`);
9
+
}
10
+
11
+
const cache = caches.default;
12
+
13
+
let cacheKey = request.url;
14
+
let response = await cache.match(cacheKey);
15
+
if (response) {
16
+
return response;
17
+
}
18
+
19
+
const pathParts = pathname.slice(1).split('/');
20
+
if (pathParts.length < 2) {
21
+
return new Response('Bad URL', { status: 400 });
22
+
}
23
+
24
+
const [signatureHex, actor] = pathParts;
25
+
26
+
const actorBytes = new TextEncoder().encode(actor);
27
+
28
+
const key = await crypto.subtle.importKey(
29
+
'raw',
30
+
new TextEncoder().encode(env.AVATAR_SHARED_SECRET),
31
+
{ name: 'HMAC', hash: 'SHA-256' },
32
+
false,
33
+
['sign', 'verify'],
34
+
);
35
+
36
+
const computedSigBuffer = await crypto.subtle.sign('HMAC', key, actorBytes);
37
+
const computedSig = Array.from(new Uint8Array(computedSigBuffer))
38
+
.map((b) => b.toString(16).padStart(2, '0'))
39
+
.join('');
40
+
41
+
console.log({
42
+
level: 'debug',
43
+
message: 'avatar request for: ' + actor,
44
+
computedSignature: computedSig,
45
+
providedSignature: signatureHex,
46
+
});
47
+
48
+
const sigBytes = Uint8Array.from(signatureHex.match(/.{2}/g).map((b) => parseInt(b, 16)));
49
+
const valid = await crypto.subtle.verify('HMAC', key, sigBytes, actorBytes);
50
+
51
+
if (!valid) {
52
+
return new Response('Invalid signature', { status: 403 });
53
+
}
54
+
55
+
try {
56
+
const profileResponse = await fetch(`https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=${actor}`, { method: 'GET' });
57
+
const profile = await profileResponse.json();
58
+
const avatar = profile.avatar;
59
+
60
+
if (!avatar) {
61
+
return new Response(`avatar not found for ${actor}.`, { status: 404 });
62
+
}
63
+
64
+
// fetch the actual avatar image
65
+
const avatarResponse = await fetch(avatar);
66
+
if (!avatarResponse.ok) {
67
+
return new Response(`failed to fetch avatar for ${actor}.`, { status: avatarResponse.status });
68
+
}
69
+
70
+
const avatarData = await avatarResponse.arrayBuffer();
71
+
const contentType = avatarResponse.headers.get('content-type') || 'image/jpeg';
72
+
73
+
response = new Response(avatarData, {
74
+
headers: {
75
+
'Content-Type': contentType,
76
+
'Cache-Control': 'public, max-age=3600',
77
+
},
78
+
});
79
+
80
+
// cache it in cf using request.url as the key
81
+
await cache.put(cacheKey, response.clone());
82
+
83
+
return response;
84
+
} catch (error) {
85
+
return new Response(`error fetching avatar: ${error.message}`, { status: 500 });
86
+
}
87
+
},
88
+
};
+15
avatar/wrangler.jsonc
+15
avatar/wrangler.jsonc
···
1
+
{
2
+
"$schema": "node_modules/wrangler/config-schema.json",
3
+
"name": "avatar",
4
+
"main": "src/index.js",
5
+
"compatibility_date": "2025-05-03",
6
+
"observability": {
7
+
"enabled": true,
8
+
},
9
+
"routes": [
10
+
{
11
+
"pattern": "avatar.tangled.sh",
12
+
"custom_domain": true,
13
+
},
14
+
],
15
+
}