mykiwi/mykiwi.blogpublic Fork
⑂ 2f29c99
Commits
⬇ Clone ▾
git clone https://git.rickub.com/mykiwi/mykiwi.blog.git
git clone ssh://git@rickub.com/mykiwi/mykiwi.blog.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

Add Cloudflare's cf CLI to the infra shell

cf isn't in nixpkgs, so it is built from the published npm tarball, which
ships a prebuilt dist/. cf-package-lock.json is a standalone npm lockfile
for its runtime dependencies, there for npmDepsHash to check against.
`make infra` drops into the shell.
Romain Gautier committed 2026-10-11T20:43:37+02:00 Browse files
2f29c99 parent: b3a4f36
modified Makefile +4 -1
@@ -21,7 +21,7 @@ PROD_PORT ?= 8788
2121 # deploy-% targets aren't listed here: giving an instantiated pattern target
2222 # (e.g. deploy-en) to .PHONY creates an explicit no-recipe rule for it, which
2323 # then blocks the deploy-% pattern rule below from ever supplying a recipe.
24-.PHONY: help dev build check-tracked serve prod-server typo infra-plan infra-apply deploy clean
24+.PHONY: help dev infra build check-tracked serve prod-server typo infra-plan infra-apply deploy clean
2525
2626 help:
2727 @grep -E '^[a-zA-Z_.-]+:.*?## .*$$' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}'
@@ -36,6 +36,9 @@ help:
3636 dev: ## Drop into the Hugo dev shell (hugo, dart-sass)
3737 nix develop
3838
39+infra: ## Drop into the Cloudflare provisioning shell (opentofu, wrangler, cf)
40+ nix develop .#infra
41+
3942 # --impure so the derivation can read PAGE_COMMITS (see flake.nix): the footer
4043 # names the commit each page was last changed in, which is history, not source,
4144 # and so cannot be derived from the tree the sandbox is handed. `nix build` on
@@ -21,7 +21,7 @@ PROD_PORT ?= 8788
21 # deploy-% targets aren't listed here: giving an instantiated pattern target21 # deploy-% targets aren't listed here: giving an instantiated pattern target
22 # (e.g. deploy-en) to .PHONY creates an explicit no-recipe rule for it, which22 # (e.g. deploy-en) to .PHONY creates an explicit no-recipe rule for it, which
23 # then blocks the deploy-% pattern rule below from ever supplying a recipe.23 # then blocks the deploy-% pattern rule below from ever supplying a recipe.
24-.PHONY: help dev build check-tracked serve prod-server typo infra-plan infra-apply deploy clean24+.PHONY: help dev infra build check-tracked serve prod-server typo infra-plan infra-apply deploy clean
25 25
26 help:26 help:
27 @grep -E '^[a-zA-Z_.-]+:.*?## .*$$' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}'27 @grep -E '^[a-zA-Z_.-]+:.*?## .*$$' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}'
@@ -36,6 +36,9 @@ help:
36 dev: ## Drop into the Hugo dev shell (hugo, dart-sass)36 dev: ## Drop into the Hugo dev shell (hugo, dart-sass)
37 nix develop37 nix develop
38 38
39+infra: ## Drop into the Cloudflare provisioning shell (opentofu, wrangler, cf)
40+ nix develop .#infra
41+
39 # --impure so the derivation can read PAGE_COMMITS (see flake.nix): the footer42 # --impure so the derivation can read PAGE_COMMITS (see flake.nix): the footer
40 # names the commit each page was last changed in, which is history, not source,43 # names the commit each page was last changed in, which is history, not source,
41 # and so cannot be derived from the tree the sandbox is handed. `nix build` on44 # and so cannot be derived from the tree the sandbox is handed. `nix build` on
added cf-package-lock.json +1008 -0
new file mode 100644
@@ -0,0 +1,1008 @@
1+{
2+ "name": "cf",
3+ "version": "1.0.0-beta.5",
4+ "lockfileVersion": 3,
5+ "requires": true,
6+ "packages": {
7+ "": {
8+ "name": "cf",
9+ "version": "1.0.0-beta.5",
10+ "dependencies": {
11+ "@cloudflare/build-output-utils": "0.8.2",
12+ "@cloudflare/codemods": "0.2.1",
13+ "@cloudflare/config": "0.20.0",
14+ "@cloudflare/runtime-types": "0.1.4",
15+ "blake3-wasm": "2.1.5",
16+ "miniflare": "5.20260926.0-alpha",
17+ "minisearch": "7.2.0"
18+ }
19+ },
20+ "node_modules/@cloudflare/build-output-utils": {
21+ "version": "0.8.2",
22+ "resolved": "https://registry.npmjs.org/@cloudflare/build-output-utils/-/build-output-utils-0.8.2.tgz",
23+ "integrity": "sha512-DHKF7p5p1ZapZbh2GyF3mfBW7D45IKtcnwMdKnVZ72A/a2rfwd1kczBYFH+O4cHnNI7e9HRwTm+Z76IDZfxVLw==",
24+ "license": "MIT",
25+ "dependencies": {
26+ "@cloudflare/config": "0.20.0"
27+ }
28+ },
29+ "node_modules/@cloudflare/codemods": {
30+ "version": "0.2.1",
31+ "resolved": "https://registry.npmjs.org/@cloudflare/codemods/-/codemods-0.2.1.tgz",
32+ "integrity": "sha512-nAoXTs5JPlQ8HeaTJQaxkvbJtGjXG19HoNx/W/Cz1d2PBETAt1Pdv4KqKqMw62DNq6Wfh4lwG2lJLvyn4X+Rhg==",
33+ "license": "MIT OR Apache-2.0",
34+ "bin": {
35+ "cloudflare-codemods": "dist/bin.mjs"
36+ }
37+ },
38+ "node_modules/@cloudflare/config": {
39+ "version": "0.20.0",
40+ "resolved": "https://registry.npmjs.org/@cloudflare/config/-/config-0.20.0.tgz",
41+ "integrity": "sha512-Dv/UDLkqsmvW95+CmM2nE55pdkLPWnJ63KDMjAFe/5KW1hc2SzJW4f8CUagqarivQugf5+oJMWYlHSmtA4KVlA==",
42+ "license": "MIT",
43+ "dependencies": {
44+ "zod": "4.4.3"
45+ }
46+ },
47+ "node_modules/@cloudflare/runtime-types": {
48+ "version": "0.1.4",
49+ "resolved": "https://registry.npmjs.org/@cloudflare/runtime-types/-/runtime-types-0.1.4.tgz",
50+ "integrity": "sha512-Jp3Za6h0KybVoi/4D6La3HicW71L8nyS7AGf0WHpbKqCs17lLkCuTbOcAuUTraoib8+SR74L+AbqxwcDq3VhTw==",
51+ "license": "MIT",
52+ "dependencies": {
53+ "miniflare": "5.20260926.0-alpha",
54+ "workerd": "1.20260926.1"
55+ }
56+ },
57+ "node_modules/@cloudflare/workerd-darwin-64": {
58+ "version": "1.20260926.1",
59+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260926.1.tgz",
60+ "integrity": "sha512-VCIpwgJu5Dm1o+VHLclNOKIdpttEqss7oDHS5DYxgVoonM9Dxxxr1xCQvJbh6IXFuQ1DDrbm5krjte5NsTgX3Q==",
61+ "cpu": [
62+ "x64"
63+ ],
64+ "license": "Apache-2.0",
65+ "optional": true,
66+ "os": [
67+ "darwin"
68+ ],
69+ "engines": {
70+ "node": ">=16"
71+ }
72+ },
73+ "node_modules/@cloudflare/workerd-darwin-arm64": {
74+ "version": "1.20260926.1",
75+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260926.1.tgz",
76+ "integrity": "sha512-oVuLXfCnr1Xu9sBMNYrEPcFZQNMcviNcacz9l+oqQiLHc5UrVp++lpKbsuWstCfh+/c39Pp37TVeaNBLA8+ReA==",
77+ "cpu": [
78+ "arm64"
79+ ],
80+ "license": "Apache-2.0",
81+ "optional": true,
82+ "os": [
83+ "darwin"
84+ ],
85+ "engines": {
86+ "node": ">=16"
87+ }
88+ },
89+ "node_modules/@cloudflare/workerd-linux-64": {
90+ "version": "1.20260926.1",
91+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260926.1.tgz",
92+ "integrity": "sha512-BjmiDvYBVBG5248gCHSZS3yONbcm3/3qKTu9RaQA8o7jQHJfXx9JnWbhkld2KsbXnRGEGHFwpLLidIpIGtQYUA==",
93+ "cpu": [
94+ "x64"
95+ ],
96+ "license": "Apache-2.0",
97+ "optional": true,
98+ "os": [
99+ "linux"
100+ ],
101+ "engines": {
102+ "node": ">=16"
103+ }
104+ },
105+ "node_modules/@cloudflare/workerd-linux-arm64": {
106+ "version": "1.20260926.1",
107+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260926.1.tgz",
108+ "integrity": "sha512-28bdfQDIFcpaKXMPisADy8BchpIsX+tEAhD+bhfEBXukFGFr8F3ouyiG3HzN3CqAh/OYvifJizzFZtptUPCy7w==",
109+ "cpu": [
110+ "arm64"
111+ ],
112+ "license": "Apache-2.0",
113+ "optional": true,
114+ "os": [
115+ "linux"
116+ ],
117+ "engines": {
118+ "node": ">=16"
119+ }
120+ },
121+ "node_modules/@cloudflare/workerd-windows-64": {
122+ "version": "1.20260926.1",
123+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260926.1.tgz",
124+ "integrity": "sha512-ehdL3ataKdEmlnW9oom6OZUR8n3XsTL/zl8+KGREpLi5sMSW0mek0PrF4wK9SX51f3Alnlu8tF8eKBg+mc3xFw==",
125+ "cpu": [
126+ "x64"
127+ ],
128+ "license": "Apache-2.0",
129+ "optional": true,
130+ "os": [
131+ "win32"
132+ ],
133+ "engines": {
134+ "node": ">=16"
135+ }
136+ },
137+ "node_modules/@cspotcode/source-map-support": {
138+ "version": "0.8.1",
139+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
140+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
141+ "license": "MIT",
142+ "dependencies": {
143+ "@jridgewell/trace-mapping": "0.3.9"
144+ },
145+ "engines": {
146+ "node": ">=12"
147+ }
148+ },
149+ "node_modules/@emnapi/runtime": {
150+ "version": "1.11.3",
151+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz",
152+ "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==",
153+ "license": "MIT",
154+ "optional": true,
155+ "dependencies": {
156+ "tslib": "^2.4.0"
157+ }
158+ },
159+ "node_modules/@img/colour": {
160+ "version": "1.1.0",
161+ "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
162+ "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
163+ "license": "MIT",
164+ "engines": {
165+ "node": ">=18"
166+ }
167+ },
168+ "node_modules/@img/sharp-darwin-arm64": {
169+ "version": "0.35.4",
170+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz",
171+ "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==",
172+ "cpu": [
173+ "arm64"
174+ ],
175+ "license": "Apache-2.0",
176+ "optional": true,
177+ "os": [
178+ "darwin"
179+ ],
180+ "engines": {
181+ "node": ">=20.9.0"
182+ },
183+ "funding": {
184+ "url": "https://opencollective.com/libvips"
185+ },
186+ "optionalDependencies": {
187+ "@img/sharp-libvips-darwin-arm64": "1.3.3"
188+ }
189+ },
190+ "node_modules/@img/sharp-darwin-x64": {
191+ "version": "0.35.4",
192+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz",
193+ "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==",
194+ "cpu": [
195+ "x64"
196+ ],
197+ "license": "Apache-2.0",
198+ "optional": true,
199+ "os": [
200+ "darwin"
201+ ],
202+ "engines": {
203+ "node": ">=20.9.0"
204+ },
205+ "funding": {
206+ "url": "https://opencollective.com/libvips"
207+ },
208+ "optionalDependencies": {
209+ "@img/sharp-libvips-darwin-x64": "1.3.3"
210+ }
211+ },
212+ "node_modules/@img/sharp-freebsd-wasm32": {
213+ "version": "0.35.4",
214+ "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz",
215+ "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==",
216+ "license": "Apache-2.0",
217+ "optional": true,
218+ "os": [
219+ "freebsd"
220+ ],
221+ "dependencies": {
222+ "@img/sharp-wasm32": "0.35.4"
223+ },
224+ "engines": {
225+ "node": ">=20.9.0"
226+ },
227+ "funding": {
228+ "url": "https://opencollective.com/libvips"
229+ }
230+ },
231+ "node_modules/@img/sharp-libvips-darwin-arm64": {
232+ "version": "1.3.3",
233+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz",
234+ "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==",
235+ "cpu": [
236+ "arm64"
237+ ],
238+ "license": "LGPL-3.0-or-later",
239+ "optional": true,
240+ "os": [
241+ "darwin"
242+ ],
243+ "funding": {
244+ "url": "https://opencollective.com/libvips"
245+ }
246+ },
247+ "node_modules/@img/sharp-libvips-darwin-x64": {
248+ "version": "1.3.3",
249+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz",
250+ "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==",
251+ "cpu": [
252+ "x64"
253+ ],
254+ "license": "LGPL-3.0-or-later",
255+ "optional": true,
256+ "os": [
257+ "darwin"
258+ ],
259+ "funding": {
260+ "url": "https://opencollective.com/libvips"
261+ }
262+ },
263+ "node_modules/@img/sharp-libvips-linux-arm": {
264+ "version": "1.3.3",
265+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz",
266+ "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==",
267+ "cpu": [
268+ "arm"
269+ ],
270+ "libc": [
271+ "glibc"
272+ ],
273+ "license": "LGPL-3.0-or-later",
274+ "optional": true,
275+ "os": [
276+ "linux"
277+ ],
278+ "funding": {
279+ "url": "https://opencollective.com/libvips"
280+ }
281+ },
282+ "node_modules/@img/sharp-libvips-linux-arm64": {
283+ "version": "1.3.3",
284+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz",
285+ "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==",
286+ "cpu": [
287+ "arm64"
288+ ],
289+ "libc": [
290+ "glibc"
291+ ],
292+ "license": "LGPL-3.0-or-later",
293+ "optional": true,
294+ "os": [
295+ "linux"
296+ ],
297+ "funding": {
298+ "url": "https://opencollective.com/libvips"
299+ }
300+ },
301+ "node_modules/@img/sharp-libvips-linux-ppc64": {
302+ "version": "1.3.3",
303+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz",
304+ "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==",
305+ "cpu": [
306+ "ppc64"
307+ ],
308+ "libc": [
309+ "glibc"
310+ ],
311+ "license": "LGPL-3.0-or-later",
312+ "optional": true,
313+ "os": [
314+ "linux"
315+ ],
316+ "funding": {
317+ "url": "https://opencollective.com/libvips"
318+ }
319+ },
320+ "node_modules/@img/sharp-libvips-linux-riscv64": {
321+ "version": "1.3.3",
322+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz",
323+ "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==",
324+ "cpu": [
325+ "riscv64"
326+ ],
327+ "libc": [
328+ "glibc"
329+ ],
330+ "license": "LGPL-3.0-or-later",
331+ "optional": true,
332+ "os": [
333+ "linux"
334+ ],
335+ "funding": {
336+ "url": "https://opencollective.com/libvips"
337+ }
338+ },
339+ "node_modules/@img/sharp-libvips-linux-s390x": {
340+ "version": "1.3.3",
341+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz",
342+ "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==",
343+ "cpu": [
344+ "s390x"
345+ ],
346+ "libc": [
347+ "glibc"
348+ ],
349+ "license": "LGPL-3.0-or-later",
350+ "optional": true,
351+ "os": [
352+ "linux"
353+ ],
354+ "funding": {
355+ "url": "https://opencollective.com/libvips"
356+ }
357+ },
358+ "node_modules/@img/sharp-libvips-linux-x64": {
359+ "version": "1.3.3",
360+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz",
361+ "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==",
362+ "cpu": [
363+ "x64"
364+ ],
365+ "libc": [
366+ "glibc"
367+ ],
368+ "license": "LGPL-3.0-or-later",
369+ "optional": true,
370+ "os": [
371+ "linux"
372+ ],
373+ "funding": {
374+ "url": "https://opencollective.com/libvips"
375+ }
376+ },
377+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
378+ "version": "1.3.3",
379+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz",
380+ "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==",
381+ "cpu": [
382+ "arm64"
383+ ],
384+ "libc": [
385+ "musl"
386+ ],
387+ "license": "LGPL-3.0-or-later",
388+ "optional": true,
389+ "os": [
390+ "linux"
391+ ],
392+ "funding": {
393+ "url": "https://opencollective.com/libvips"
394+ }
395+ },
396+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
397+ "version": "1.3.3",
398+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz",
399+ "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==",
400+ "cpu": [
401+ "x64"
402+ ],
403+ "libc": [
404+ "musl"
405+ ],
406+ "license": "LGPL-3.0-or-later",
407+ "optional": true,
408+ "os": [
409+ "linux"
410+ ],
411+ "funding": {
412+ "url": "https://opencollective.com/libvips"
413+ }
414+ },
415+ "node_modules/@img/sharp-linux-arm": {
416+ "version": "0.35.4",
417+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz",
418+ "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==",
419+ "cpu": [
420+ "arm"
421+ ],
422+ "libc": [
423+ "glibc"
424+ ],
425+ "license": "Apache-2.0",
426+ "optional": true,
427+ "os": [
428+ "linux"
429+ ],
430+ "engines": {
431+ "node": ">=20.9.0"
432+ },
433+ "funding": {
434+ "url": "https://opencollective.com/libvips"
435+ },
436+ "optionalDependencies": {
437+ "@img/sharp-libvips-linux-arm": "1.3.3"
438+ }
439+ },
440+ "node_modules/@img/sharp-linux-arm64": {
441+ "version": "0.35.4",
442+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz",
443+ "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==",
444+ "cpu": [
445+ "arm64"
446+ ],
447+ "libc": [
448+ "glibc"
449+ ],
450+ "license": "Apache-2.0",
451+ "optional": true,
452+ "os": [
453+ "linux"
454+ ],
455+ "engines": {
456+ "node": ">=20.9.0"
457+ },
458+ "funding": {
459+ "url": "https://opencollective.com/libvips"
460+ },
461+ "optionalDependencies": {
462+ "@img/sharp-libvips-linux-arm64": "1.3.3"
463+ }
464+ },
465+ "node_modules/@img/sharp-linux-ppc64": {
466+ "version": "0.35.4",
467+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz",
468+ "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==",
469+ "cpu": [
470+ "ppc64"
471+ ],
472+ "libc": [
473+ "glibc"
474+ ],
475+ "license": "Apache-2.0",
476+ "optional": true,
477+ "os": [
478+ "linux"
479+ ],
480+ "engines": {
481+ "node": ">=20.9.0"
482+ },
483+ "funding": {
484+ "url": "https://opencollective.com/libvips"
485+ },
486+ "optionalDependencies": {
487+ "@img/sharp-libvips-linux-ppc64": "1.3.3"
488+ }
489+ },
490+ "node_modules/@img/sharp-linux-riscv64": {
491+ "version": "0.35.4",
492+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz",
493+ "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==",
494+ "cpu": [
495+ "riscv64"
496+ ],
497+ "libc": [
498+ "glibc"
499+ ],
500+ "license": "Apache-2.0",
501+ "optional": true,
502+ "os": [
503+ "linux"
504+ ],
505+ "engines": {
506+ "node": ">=20.9.0"
507+ },
508+ "funding": {
509+ "url": "https://opencollective.com/libvips"
510+ },
511+ "optionalDependencies": {
512+ "@img/sharp-libvips-linux-riscv64": "1.3.3"
513+ }
514+ },
515+ "node_modules/@img/sharp-linux-s390x": {
516+ "version": "0.35.4",
517+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz",
518+ "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==",
519+ "cpu": [
520+ "s390x"
521+ ],
522+ "libc": [
523+ "glibc"
524+ ],
525+ "license": "Apache-2.0",
526+ "optional": true,
527+ "os": [
528+ "linux"
529+ ],
530+ "engines": {
531+ "node": ">=20.9.0"
532+ },
533+ "funding": {
534+ "url": "https://opencollective.com/libvips"
535+ },
536+ "optionalDependencies": {
537+ "@img/sharp-libvips-linux-s390x": "1.3.3"
538+ }
539+ },
540+ "node_modules/@img/sharp-linux-x64": {
541+ "version": "0.35.4",
542+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz",
543+ "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==",
544+ "cpu": [
545+ "x64"
546+ ],
547+ "libc": [
548+ "glibc"
549+ ],
550+ "license": "Apache-2.0",
551+ "optional": true,
552+ "os": [
553+ "linux"
554+ ],
555+ "engines": {
556+ "node": ">=20.9.0"
557+ },
558+ "funding": {
559+ "url": "https://opencollective.com/libvips"
560+ },
561+ "optionalDependencies": {
562+ "@img/sharp-libvips-linux-x64": "1.3.3"
563+ }
564+ },
565+ "node_modules/@img/sharp-linuxmusl-arm64": {
566+ "version": "0.35.4",
567+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz",
568+ "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==",
569+ "cpu": [
570+ "arm64"
571+ ],
572+ "libc": [
573+ "musl"
574+ ],
575+ "license": "Apache-2.0",
576+ "optional": true,
577+ "os": [
578+ "linux"
579+ ],
580+ "engines": {
581+ "node": ">=20.9.0"
582+ },
583+ "funding": {
584+ "url": "https://opencollective.com/libvips"
585+ },
586+ "optionalDependencies": {
587+ "@img/sharp-libvips-linuxmusl-arm64": "1.3.3"
588+ }
589+ },
590+ "node_modules/@img/sharp-linuxmusl-x64": {
591+ "version": "0.35.4",
592+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz",
593+ "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==",
594+ "cpu": [
595+ "x64"
596+ ],
597+ "libc": [
598+ "musl"
599+ ],
600+ "license": "Apache-2.0",
601+ "optional": true,
602+ "os": [
603+ "linux"
604+ ],
605+ "engines": {
606+ "node": ">=20.9.0"
607+ },
608+ "funding": {
609+ "url": "https://opencollective.com/libvips"
610+ },
611+ "optionalDependencies": {
612+ "@img/sharp-libvips-linuxmusl-x64": "1.3.3"
613+ }
614+ },
615+ "node_modules/@img/sharp-wasm32": {
616+ "version": "0.35.4",
617+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz",
618+ "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==",
619+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
620+ "optional": true,
621+ "dependencies": {
622+ "@emnapi/runtime": "^1.11.3"
623+ },
624+ "engines": {
625+ "node": ">=20.9.0"
626+ },
627+ "funding": {
628+ "url": "https://opencollective.com/libvips"
629+ }
630+ },
631+ "node_modules/@img/sharp-webcontainers-wasm32": {
632+ "version": "0.35.4",
633+ "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz",
634+ "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==",
635+ "cpu": [
636+ "wasm32"
637+ ],
638+ "license": "Apache-2.0",
639+ "optional": true,
640+ "dependencies": {
641+ "@img/sharp-wasm32": "0.35.4"
642+ },
643+ "engines": {
644+ "node": ">=20.9.0"
645+ },
646+ "funding": {
647+ "url": "https://opencollective.com/libvips"
648+ }
649+ },
650+ "node_modules/@img/sharp-win32-arm64": {
651+ "version": "0.35.4",
652+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz",
653+ "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==",
654+ "cpu": [
655+ "arm64"
656+ ],
657+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
658+ "optional": true,
659+ "os": [
660+ "win32"
661+ ],
662+ "engines": {
663+ "node": ">=20.9.0"
664+ },
665+ "funding": {
666+ "url": "https://opencollective.com/libvips"
667+ }
668+ },
669+ "node_modules/@img/sharp-win32-ia32": {
670+ "version": "0.35.4",
671+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz",
672+ "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==",
673+ "cpu": [
674+ "ia32"
675+ ],
676+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
677+ "optional": true,
678+ "os": [
679+ "win32"
680+ ],
681+ "engines": {
682+ "node": "^20.9.0"
683+ },
684+ "funding": {
685+ "url": "https://opencollective.com/libvips"
686+ }
687+ },
688+ "node_modules/@img/sharp-win32-x64": {
689+ "version": "0.35.4",
690+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz",
691+ "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==",
692+ "cpu": [
693+ "x64"
694+ ],
695+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
696+ "optional": true,
697+ "os": [
698+ "win32"
699+ ],
700+ "engines": {
701+ "node": ">=20.9.0"
702+ },
703+ "funding": {
704+ "url": "https://opencollective.com/libvips"
705+ }
706+ },
707+ "node_modules/@jridgewell/resolve-uri": {
708+ "version": "3.1.2",
709+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
710+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
711+ "license": "MIT",
712+ "engines": {
713+ "node": ">=6.0.0"
714+ }
715+ },
716+ "node_modules/@jridgewell/sourcemap-codec": {
717+ "version": "1.6.0",
718+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
719+ "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
720+ "license": "MIT"
721+ },
722+ "node_modules/@jridgewell/trace-mapping": {
723+ "version": "0.3.9",
724+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
725+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
726+ "license": "MIT",
727+ "dependencies": {
728+ "@jridgewell/resolve-uri": "^3.0.3",
729+ "@jridgewell/sourcemap-codec": "^1.4.10"
730+ }
731+ },
732+ "node_modules/@poppinss/colors": {
733+ "version": "4.1.6",
734+ "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz",
735+ "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==",
736+ "license": "MIT",
737+ "dependencies": {
738+ "kleur": "^4.1.5"
739+ }
740+ },
741+ "node_modules/@poppinss/dumper": {
742+ "version": "0.6.5",
743+ "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz",
744+ "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==",
745+ "license": "MIT",
746+ "dependencies": {
747+ "@poppinss/colors": "^4.1.5",
748+ "@sindresorhus/is": "^7.0.2",
749+ "supports-color": "^10.0.0"
750+ }
751+ },
752+ "node_modules/@poppinss/exception": {
753+ "version": "1.2.3",
754+ "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz",
755+ "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==",
756+ "license": "MIT"
757+ },
758+ "node_modules/@sindresorhus/is": {
759+ "version": "7.2.0",
760+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz",
761+ "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==",
762+ "license": "MIT",
763+ "engines": {
764+ "node": ">=18"
765+ },
766+ "funding": {
767+ "url": "https://github.com/sindresorhus/is?sponsor=1"
768+ }
769+ },
770+ "node_modules/@speed-highlight/core": {
771+ "version": "1.2.24",
772+ "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.24.tgz",
773+ "integrity": "sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==",
774+ "license": "CC0-1.0"
775+ },
776+ "node_modules/blake3-wasm": {
777+ "version": "2.1.5",
778+ "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz",
779+ "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==",
780+ "license": "MIT"
781+ },
782+ "node_modules/cookie": {
783+ "version": "1.1.1",
784+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
785+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
786+ "license": "MIT",
787+ "engines": {
788+ "node": ">=18"
789+ },
790+ "funding": {
791+ "type": "opencollective",
792+ "url": "https://opencollective.com/express"
793+ }
794+ },
795+ "node_modules/detect-libc": {
796+ "version": "2.1.2",
797+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
798+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
799+ "license": "Apache-2.0",
800+ "engines": {
801+ "node": ">=8"
802+ }
803+ },
804+ "node_modules/error-stack-parser-es": {
805+ "version": "1.0.5",
806+ "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz",
807+ "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==",
808+ "license": "MIT",
809+ "funding": {
810+ "url": "https://github.com/sponsors/antfu"
811+ }
812+ },
813+ "node_modules/kleur": {
814+ "version": "4.1.5",
815+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
816+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
817+ "license": "MIT",
818+ "engines": {
819+ "node": ">=6"
820+ }
821+ },
822+ "node_modules/miniflare": {
823+ "version": "5.20260926.0-alpha",
824+ "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-5.20260926.0-alpha.tgz",
825+ "integrity": "sha512-m/M3rpLnaouw6QSoKzylfw6Z1dnOwRM48idnZ7kc5ivRqBXANFQ8XqKCyQ/V+xqQ9Rg1L99j4WkZGVU9uT4L2w==",
826+ "license": "MIT",
827+ "dependencies": {
828+ "@cspotcode/source-map-support": "0.8.1",
829+ "sharp": "0.35.4",
830+ "undici": "7.29.0",
831+ "workerd": "1.20260926.1",
832+ "ws": "8.21.0",
833+ "youch": "4.1.0-beta.10"
834+ },
835+ "engines": {
836+ "node": ">=22.0.0"
837+ }
838+ },
839+ "node_modules/minisearch": {
840+ "version": "7.2.0",
841+ "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz",
842+ "integrity": "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==",
843+ "license": "MIT"
844+ },
845+ "node_modules/semver": {
846+ "version": "7.8.5",
847+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
848+ "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
849+ "license": "ISC",
850+ "bin": {
851+ "semver": "bin/semver.js"
852+ },
853+ "engines": {
854+ "node": ">=10"
855+ }
856+ },
857+ "node_modules/sharp": {
858+ "version": "0.35.4",
859+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz",
860+ "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==",
861+ "license": "Apache-2.0",
862+ "dependencies": {
863+ "@img/colour": "^1.1.0",
864+ "detect-libc": "^2.1.2",
865+ "semver": "^7.8.5"
866+ },
867+ "engines": {
868+ "node": ">=20.9.0"
869+ },
870+ "funding": {
871+ "url": "https://opencollective.com/libvips"
872+ },
873+ "optionalDependencies": {
874+ "@img/sharp-darwin-arm64": "0.35.4",
875+ "@img/sharp-darwin-x64": "0.35.4",
876+ "@img/sharp-freebsd-wasm32": "0.35.4",
877+ "@img/sharp-libvips-darwin-arm64": "1.3.3",
878+ "@img/sharp-libvips-darwin-x64": "1.3.3",
879+ "@img/sharp-libvips-linux-arm": "1.3.3",
880+ "@img/sharp-libvips-linux-arm64": "1.3.3",
881+ "@img/sharp-libvips-linux-ppc64": "1.3.3",
882+ "@img/sharp-libvips-linux-riscv64": "1.3.3",
883+ "@img/sharp-libvips-linux-s390x": "1.3.3",
884+ "@img/sharp-libvips-linux-x64": "1.3.3",
885+ "@img/sharp-libvips-linuxmusl-arm64": "1.3.3",
886+ "@img/sharp-libvips-linuxmusl-x64": "1.3.3",
887+ "@img/sharp-linux-arm": "0.35.4",
888+ "@img/sharp-linux-arm64": "0.35.4",
889+ "@img/sharp-linux-ppc64": "0.35.4",
890+ "@img/sharp-linux-riscv64": "0.35.4",
891+ "@img/sharp-linux-s390x": "0.35.4",
892+ "@img/sharp-linux-x64": "0.35.4",
893+ "@img/sharp-linuxmusl-arm64": "0.35.4",
894+ "@img/sharp-linuxmusl-x64": "0.35.4",
895+ "@img/sharp-webcontainers-wasm32": "0.35.4",
896+ "@img/sharp-win32-arm64": "0.35.4",
897+ "@img/sharp-win32-ia32": "0.35.4",
898+ "@img/sharp-win32-x64": "0.35.4"
899+ },
900+ "peerDependenciesMeta": {
901+ "@types/node": {
902+ "optional": true
903+ }
904+ }
905+ },
906+ "node_modules/supports-color": {
907+ "version": "10.2.2",
908+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
909+ "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==",
910+ "license": "MIT",
911+ "engines": {
912+ "node": ">=18"
913+ },
914+ "funding": {
915+ "url": "https://github.com/chalk/supports-color?sponsor=1"
916+ }
917+ },
918+ "node_modules/tslib": {
919+ "version": "2.8.1",
920+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
921+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
922+ "license": "0BSD",
923+ "optional": true
924+ },
925+ "node_modules/undici": {
926+ "version": "7.29.0",
927+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz",
928+ "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==",
929+ "license": "MIT",
930+ "engines": {
931+ "node": ">=20.18.1"
932+ }
933+ },
934+ "node_modules/workerd": {
935+ "version": "1.20260926.1",
936+ "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260926.1.tgz",
937+ "integrity": "sha512-YojhsWBuZwk3Jk9OC0QfTgVbLeQOD1tK1olC9ZXAUcmeip8z4NE/xtttpxCsuTvQBRqppvy7Tkac0kxPYMjIXA==",
938+ "hasInstallScript": true,
939+ "license": "Apache-2.0",
940+ "bin": {
941+ "workerd": "bin/workerd"
942+ },
943+ "engines": {
944+ "node": ">=16"
945+ },
946+ "optionalDependencies": {
947+ "@cloudflare/workerd-darwin-64": "1.20260926.1",
948+ "@cloudflare/workerd-darwin-arm64": "1.20260926.1",
949+ "@cloudflare/workerd-linux-64": "1.20260926.1",
950+ "@cloudflare/workerd-linux-arm64": "1.20260926.1",
951+ "@cloudflare/workerd-windows-64": "1.20260926.1"
952+ }
953+ },
954+ "node_modules/ws": {
955+ "version": "8.21.0",
956+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
957+ "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
958+ "license": "MIT",
959+ "engines": {
960+ "node": ">=10.0.0"
961+ },
962+ "peerDependencies": {
963+ "bufferutil": "^4.0.1",
964+ "utf-8-validate": ">=5.0.2"
965+ },
966+ "peerDependenciesMeta": {
967+ "bufferutil": {
968+ "optional": true
969+ },
970+ "utf-8-validate": {
971+ "optional": true
972+ }
973+ }
974+ },
975+ "node_modules/youch": {
976+ "version": "4.1.0-beta.10",
977+ "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz",
978+ "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==",
979+ "license": "MIT",
980+ "dependencies": {
981+ "@poppinss/colors": "^4.1.5",
982+ "@poppinss/dumper": "^0.6.4",
983+ "@speed-highlight/core": "^1.2.7",
984+ "cookie": "^1.0.2",
985+ "youch-core": "^0.3.3"
986+ }
987+ },
988+ "node_modules/youch-core": {
989+ "version": "0.3.3",
990+ "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz",
991+ "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==",
992+ "license": "MIT",
993+ "dependencies": {
994+ "@poppinss/exception": "^1.2.2",
995+ "error-stack-parser-es": "^1.0.5"
996+ }
997+ },
998+ "node_modules/zod": {
999+ "version": "4.4.3",
1000+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
1001+ "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
1002+ "license": "MIT",
1003+ "funding": {
1004+ "url": "https://github.com/sponsors/colinhacks"
1005+ }
1006+ }
1007+ }
1008+}
new file mode 100644
@@ -0,0 +1,1008 @@
1+{
2+ "name": "cf",
3+ "version": "1.0.0-beta.5",
4+ "lockfileVersion": 3,
5+ "requires": true,
6+ "packages": {
7+ "": {
8+ "name": "cf",
9+ "version": "1.0.0-beta.5",
10+ "dependencies": {
11+ "@cloudflare/build-output-utils": "0.8.2",
12+ "@cloudflare/codemods": "0.2.1",
13+ "@cloudflare/config": "0.20.0",
14+ "@cloudflare/runtime-types": "0.1.4",
15+ "blake3-wasm": "2.1.5",
16+ "miniflare": "5.20260926.0-alpha",
17+ "minisearch": "7.2.0"
18+ }
19+ },
20+ "node_modules/@cloudflare/build-output-utils": {
21+ "version": "0.8.2",
22+ "resolved": "https://registry.npmjs.org/@cloudflare/build-output-utils/-/build-output-utils-0.8.2.tgz",
23+ "integrity": "sha512-DHKF7p5p1ZapZbh2GyF3mfBW7D45IKtcnwMdKnVZ72A/a2rfwd1kczBYFH+O4cHnNI7e9HRwTm+Z76IDZfxVLw==",
24+ "license": "MIT",
25+ "dependencies": {
26+ "@cloudflare/config": "0.20.0"
27+ }
28+ },
29+ "node_modules/@cloudflare/codemods": {
30+ "version": "0.2.1",
31+ "resolved": "https://registry.npmjs.org/@cloudflare/codemods/-/codemods-0.2.1.tgz",
32+ "integrity": "sha512-nAoXTs5JPlQ8HeaTJQaxkvbJtGjXG19HoNx/W/Cz1d2PBETAt1Pdv4KqKqMw62DNq6Wfh4lwG2lJLvyn4X+Rhg==",
33+ "license": "MIT OR Apache-2.0",
34+ "bin": {
35+ "cloudflare-codemods": "dist/bin.mjs"
36+ }
37+ },
38+ "node_modules/@cloudflare/config": {
39+ "version": "0.20.0",
40+ "resolved": "https://registry.npmjs.org/@cloudflare/config/-/config-0.20.0.tgz",
41+ "integrity": "sha512-Dv/UDLkqsmvW95+CmM2nE55pdkLPWnJ63KDMjAFe/5KW1hc2SzJW4f8CUagqarivQugf5+oJMWYlHSmtA4KVlA==",
42+ "license": "MIT",
43+ "dependencies": {
44+ "zod": "4.4.3"
45+ }
46+ },
47+ "node_modules/@cloudflare/runtime-types": {
48+ "version": "0.1.4",
49+ "resolved": "https://registry.npmjs.org/@cloudflare/runtime-types/-/runtime-types-0.1.4.tgz",
50+ "integrity": "sha512-Jp3Za6h0KybVoi/4D6La3HicW71L8nyS7AGf0WHpbKqCs17lLkCuTbOcAuUTraoib8+SR74L+AbqxwcDq3VhTw==",
51+ "license": "MIT",
52+ "dependencies": {
53+ "miniflare": "5.20260926.0-alpha",
54+ "workerd": "1.20260926.1"
55+ }
56+ },
57+ "node_modules/@cloudflare/workerd-darwin-64": {
58+ "version": "1.20260926.1",
59+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260926.1.tgz",
60+ "integrity": "sha512-VCIpwgJu5Dm1o+VHLclNOKIdpttEqss7oDHS5DYxgVoonM9Dxxxr1xCQvJbh6IXFuQ1DDrbm5krjte5NsTgX3Q==",
61+ "cpu": [
62+ "x64"
63+ ],
64+ "license": "Apache-2.0",
65+ "optional": true,
66+ "os": [
67+ "darwin"
68+ ],
69+ "engines": {
70+ "node": ">=16"
71+ }
72+ },
73+ "node_modules/@cloudflare/workerd-darwin-arm64": {
74+ "version": "1.20260926.1",
75+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260926.1.tgz",
76+ "integrity": "sha512-oVuLXfCnr1Xu9sBMNYrEPcFZQNMcviNcacz9l+oqQiLHc5UrVp++lpKbsuWstCfh+/c39Pp37TVeaNBLA8+ReA==",
77+ "cpu": [
78+ "arm64"
79+ ],
80+ "license": "Apache-2.0",
81+ "optional": true,
82+ "os": [
83+ "darwin"
84+ ],
85+ "engines": {
86+ "node": ">=16"
87+ }
88+ },
89+ "node_modules/@cloudflare/workerd-linux-64": {
90+ "version": "1.20260926.1",
91+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260926.1.tgz",
92+ "integrity": "sha512-BjmiDvYBVBG5248gCHSZS3yONbcm3/3qKTu9RaQA8o7jQHJfXx9JnWbhkld2KsbXnRGEGHFwpLLidIpIGtQYUA==",
93+ "cpu": [
94+ "x64"
95+ ],
96+ "license": "Apache-2.0",
97+ "optional": true,
98+ "os": [
99+ "linux"
100+ ],
101+ "engines": {
102+ "node": ">=16"
103+ }
104+ },
105+ "node_modules/@cloudflare/workerd-linux-arm64": {
106+ "version": "1.20260926.1",
107+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260926.1.tgz",
108+ "integrity": "sha512-28bdfQDIFcpaKXMPisADy8BchpIsX+tEAhD+bhfEBXukFGFr8F3ouyiG3HzN3CqAh/OYvifJizzFZtptUPCy7w==",
109+ "cpu": [
110+ "arm64"
111+ ],
112+ "license": "Apache-2.0",
113+ "optional": true,
114+ "os": [
115+ "linux"
116+ ],
117+ "engines": {
118+ "node": ">=16"
119+ }
120+ },
121+ "node_modules/@cloudflare/workerd-windows-64": {
122+ "version": "1.20260926.1",
123+ "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260926.1.tgz",
124+ "integrity": "sha512-ehdL3ataKdEmlnW9oom6OZUR8n3XsTL/zl8+KGREpLi5sMSW0mek0PrF4wK9SX51f3Alnlu8tF8eKBg+mc3xFw==",
125+ "cpu": [
126+ "x64"
127+ ],
128+ "license": "Apache-2.0",
129+ "optional": true,
130+ "os": [
131+ "win32"
132+ ],
133+ "engines": {
134+ "node": ">=16"
135+ }
136+ },
137+ "node_modules/@cspotcode/source-map-support": {
138+ "version": "0.8.1",
139+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
140+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
141+ "license": "MIT",
142+ "dependencies": {
143+ "@jridgewell/trace-mapping": "0.3.9"
144+ },
145+ "engines": {
146+ "node": ">=12"
147+ }
148+ },
149+ "node_modules/@emnapi/runtime": {
150+ "version": "1.11.3",
151+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz",
152+ "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==",
153+ "license": "MIT",
154+ "optional": true,
155+ "dependencies": {
156+ "tslib": "^2.4.0"
157+ }
158+ },
159+ "node_modules/@img/colour": {
160+ "version": "1.1.0",
161+ "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
162+ "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
163+ "license": "MIT",
164+ "engines": {
165+ "node": ">=18"
166+ }
167+ },
168+ "node_modules/@img/sharp-darwin-arm64": {
169+ "version": "0.35.4",
170+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz",
171+ "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==",
172+ "cpu": [
173+ "arm64"
174+ ],
175+ "license": "Apache-2.0",
176+ "optional": true,
177+ "os": [
178+ "darwin"
179+ ],
180+ "engines": {
181+ "node": ">=20.9.0"
182+ },
183+ "funding": {
184+ "url": "https://opencollective.com/libvips"
185+ },
186+ "optionalDependencies": {
187+ "@img/sharp-libvips-darwin-arm64": "1.3.3"
188+ }
189+ },
190+ "node_modules/@img/sharp-darwin-x64": {
191+ "version": "0.35.4",
192+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz",
193+ "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==",
194+ "cpu": [
195+ "x64"
196+ ],
197+ "license": "Apache-2.0",
198+ "optional": true,
199+ "os": [
200+ "darwin"
201+ ],
202+ "engines": {
203+ "node": ">=20.9.0"
204+ },
205+ "funding": {
206+ "url": "https://opencollective.com/libvips"
207+ },
208+ "optionalDependencies": {
209+ "@img/sharp-libvips-darwin-x64": "1.3.3"
210+ }
211+ },
212+ "node_modules/@img/sharp-freebsd-wasm32": {
213+ "version": "0.35.4",
214+ "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz",
215+ "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==",
216+ "license": "Apache-2.0",
217+ "optional": true,
218+ "os": [
219+ "freebsd"
220+ ],
221+ "dependencies": {
222+ "@img/sharp-wasm32": "0.35.4"
223+ },
224+ "engines": {
225+ "node": ">=20.9.0"
226+ },
227+ "funding": {
228+ "url": "https://opencollective.com/libvips"
229+ }
230+ },
231+ "node_modules/@img/sharp-libvips-darwin-arm64": {
232+ "version": "1.3.3",
233+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz",
234+ "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==",
235+ "cpu": [
236+ "arm64"
237+ ],
238+ "license": "LGPL-3.0-or-later",
239+ "optional": true,
240+ "os": [
241+ "darwin"
242+ ],
243+ "funding": {
244+ "url": "https://opencollective.com/libvips"
245+ }
246+ },
247+ "node_modules/@img/sharp-libvips-darwin-x64": {
248+ "version": "1.3.3",
249+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz",
250+ "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==",
251+ "cpu": [
252+ "x64"
253+ ],
254+ "license": "LGPL-3.0-or-later",
255+ "optional": true,
256+ "os": [
257+ "darwin"
258+ ],
259+ "funding": {
260+ "url": "https://opencollective.com/libvips"
261+ }
262+ },
263+ "node_modules/@img/sharp-libvips-linux-arm": {
264+ "version": "1.3.3",
265+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz",
266+ "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==",
267+ "cpu": [
268+ "arm"
269+ ],
270+ "libc": [
271+ "glibc"
272+ ],
273+ "license": "LGPL-3.0-or-later",
274+ "optional": true,
275+ "os": [
276+ "linux"
277+ ],
278+ "funding": {
279+ "url": "https://opencollective.com/libvips"
280+ }
281+ },
282+ "node_modules/@img/sharp-libvips-linux-arm64": {
283+ "version": "1.3.3",
284+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz",
285+ "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==",
286+ "cpu": [
287+ "arm64"
288+ ],
289+ "libc": [
290+ "glibc"
291+ ],
292+ "license": "LGPL-3.0-or-later",
293+ "optional": true,
294+ "os": [
295+ "linux"
296+ ],
297+ "funding": {
298+ "url": "https://opencollective.com/libvips"
299+ }
300+ },
301+ "node_modules/@img/sharp-libvips-linux-ppc64": {
302+ "version": "1.3.3",
303+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz",
304+ "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==",
305+ "cpu": [
306+ "ppc64"
307+ ],
308+ "libc": [
309+ "glibc"
310+ ],
311+ "license": "LGPL-3.0-or-later",
312+ "optional": true,
313+ "os": [
314+ "linux"
315+ ],
316+ "funding": {
317+ "url": "https://opencollective.com/libvips"
318+ }
319+ },
320+ "node_modules/@img/sharp-libvips-linux-riscv64": {
321+ "version": "1.3.3",
322+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz",
323+ "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==",
324+ "cpu": [
325+ "riscv64"
326+ ],
327+ "libc": [
328+ "glibc"
329+ ],
330+ "license": "LGPL-3.0-or-later",
331+ "optional": true,
332+ "os": [
333+ "linux"
334+ ],
335+ "funding": {
336+ "url": "https://opencollective.com/libvips"
337+ }
338+ },
339+ "node_modules/@img/sharp-libvips-linux-s390x": {
340+ "version": "1.3.3",
341+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz",
342+ "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==",
343+ "cpu": [
344+ "s390x"
345+ ],
346+ "libc": [
347+ "glibc"
348+ ],
349+ "license": "LGPL-3.0-or-later",
350+ "optional": true,
351+ "os": [
352+ "linux"
353+ ],
354+ "funding": {
355+ "url": "https://opencollective.com/libvips"
356+ }
357+ },
358+ "node_modules/@img/sharp-libvips-linux-x64": {
359+ "version": "1.3.3",
360+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz",
361+ "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==",
362+ "cpu": [
363+ "x64"
364+ ],
365+ "libc": [
366+ "glibc"
367+ ],
368+ "license": "LGPL-3.0-or-later",
369+ "optional": true,
370+ "os": [
371+ "linux"
372+ ],
373+ "funding": {
374+ "url": "https://opencollective.com/libvips"
375+ }
376+ },
377+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
378+ "version": "1.3.3",
379+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz",
380+ "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==",
381+ "cpu": [
382+ "arm64"
383+ ],
384+ "libc": [
385+ "musl"
386+ ],
387+ "license": "LGPL-3.0-or-later",
388+ "optional": true,
389+ "os": [
390+ "linux"
391+ ],
392+ "funding": {
393+ "url": "https://opencollective.com/libvips"
394+ }
395+ },
396+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
397+ "version": "1.3.3",
398+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz",
399+ "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==",
400+ "cpu": [
401+ "x64"
402+ ],
403+ "libc": [
404+ "musl"
405+ ],
406+ "license": "LGPL-3.0-or-later",
407+ "optional": true,
408+ "os": [
409+ "linux"
410+ ],
411+ "funding": {
412+ "url": "https://opencollective.com/libvips"
413+ }
414+ },
415+ "node_modules/@img/sharp-linux-arm": {
416+ "version": "0.35.4",
417+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz",
418+ "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==",
419+ "cpu": [
420+ "arm"
421+ ],
422+ "libc": [
423+ "glibc"
424+ ],
425+ "license": "Apache-2.0",
426+ "optional": true,
427+ "os": [
428+ "linux"
429+ ],
430+ "engines": {
431+ "node": ">=20.9.0"
432+ },
433+ "funding": {
434+ "url": "https://opencollective.com/libvips"
435+ },
436+ "optionalDependencies": {
437+ "@img/sharp-libvips-linux-arm": "1.3.3"
438+ }
439+ },
440+ "node_modules/@img/sharp-linux-arm64": {
441+ "version": "0.35.4",
442+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz",
443+ "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==",
444+ "cpu": [
445+ "arm64"
446+ ],
447+ "libc": [
448+ "glibc"
449+ ],
450+ "license": "Apache-2.0",
451+ "optional": true,
452+ "os": [
453+ "linux"
454+ ],
455+ "engines": {
456+ "node": ">=20.9.0"
457+ },
458+ "funding": {
459+ "url": "https://opencollective.com/libvips"
460+ },
461+ "optionalDependencies": {
462+ "@img/sharp-libvips-linux-arm64": "1.3.3"
463+ }
464+ },
465+ "node_modules/@img/sharp-linux-ppc64": {
466+ "version": "0.35.4",
467+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz",
468+ "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==",
469+ "cpu": [
470+ "ppc64"
471+ ],
472+ "libc": [
473+ "glibc"
474+ ],
475+ "license": "Apache-2.0",
476+ "optional": true,
477+ "os": [
478+ "linux"
479+ ],
480+ "engines": {
481+ "node": ">=20.9.0"
482+ },
483+ "funding": {
484+ "url": "https://opencollective.com/libvips"
485+ },
486+ "optionalDependencies": {
487+ "@img/sharp-libvips-linux-ppc64": "1.3.3"
488+ }
489+ },
490+ "node_modules/@img/sharp-linux-riscv64": {
491+ "version": "0.35.4",
492+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz",
493+ "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==",
494+ "cpu": [
495+ "riscv64"
496+ ],
497+ "libc": [
498+ "glibc"
499+ ],
500+ "license": "Apache-2.0",
501+ "optional": true,
502+ "os": [
503+ "linux"
504+ ],
505+ "engines": {
506+ "node": ">=20.9.0"
507+ },
508+ "funding": {
509+ "url": "https://opencollective.com/libvips"
510+ },
511+ "optionalDependencies": {
512+ "@img/sharp-libvips-linux-riscv64": "1.3.3"
513+ }
514+ },
515+ "node_modules/@img/sharp-linux-s390x": {
516+ "version": "0.35.4",
517+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz",
518+ "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==",
519+ "cpu": [
520+ "s390x"
521+ ],
522+ "libc": [
523+ "glibc"
524+ ],
525+ "license": "Apache-2.0",
526+ "optional": true,
527+ "os": [
528+ "linux"
529+ ],
530+ "engines": {
531+ "node": ">=20.9.0"
532+ },
533+ "funding": {
534+ "url": "https://opencollective.com/libvips"
535+ },
536+ "optionalDependencies": {
537+ "@img/sharp-libvips-linux-s390x": "1.3.3"
538+ }
539+ },
540+ "node_modules/@img/sharp-linux-x64": {
541+ "version": "0.35.4",
542+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz",
543+ "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==",
544+ "cpu": [
545+ "x64"
546+ ],
547+ "libc": [
548+ "glibc"
549+ ],
550+ "license": "Apache-2.0",
551+ "optional": true,
552+ "os": [
553+ "linux"
554+ ],
555+ "engines": {
556+ "node": ">=20.9.0"
557+ },
558+ "funding": {
559+ "url": "https://opencollective.com/libvips"
560+ },
561+ "optionalDependencies": {
562+ "@img/sharp-libvips-linux-x64": "1.3.3"
563+ }
564+ },
565+ "node_modules/@img/sharp-linuxmusl-arm64": {
566+ "version": "0.35.4",
567+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz",
568+ "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==",
569+ "cpu": [
570+ "arm64"
571+ ],
572+ "libc": [
573+ "musl"
574+ ],
575+ "license": "Apache-2.0",
576+ "optional": true,
577+ "os": [
578+ "linux"
579+ ],
580+ "engines": {
581+ "node": ">=20.9.0"
582+ },
583+ "funding": {
584+ "url": "https://opencollective.com/libvips"
585+ },
586+ "optionalDependencies": {
587+ "@img/sharp-libvips-linuxmusl-arm64": "1.3.3"
588+ }
589+ },
590+ "node_modules/@img/sharp-linuxmusl-x64": {
591+ "version": "0.35.4",
592+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz",
593+ "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==",
594+ "cpu": [
595+ "x64"
596+ ],
597+ "libc": [
598+ "musl"
599+ ],
600+ "license": "Apache-2.0",
601+ "optional": true,
602+ "os": [
603+ "linux"
604+ ],
605+ "engines": {
606+ "node": ">=20.9.0"
607+ },
608+ "funding": {
609+ "url": "https://opencollective.com/libvips"
610+ },
611+ "optionalDependencies": {
612+ "@img/sharp-libvips-linuxmusl-x64": "1.3.3"
613+ }
614+ },
615+ "node_modules/@img/sharp-wasm32": {
616+ "version": "0.35.4",
617+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz",
618+ "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==",
619+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
620+ "optional": true,
621+ "dependencies": {
622+ "@emnapi/runtime": "^1.11.3"
623+ },
624+ "engines": {
625+ "node": ">=20.9.0"
626+ },
627+ "funding": {
628+ "url": "https://opencollective.com/libvips"
629+ }
630+ },
631+ "node_modules/@img/sharp-webcontainers-wasm32": {
632+ "version": "0.35.4",
633+ "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz",
634+ "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==",
635+ "cpu": [
636+ "wasm32"
637+ ],
638+ "license": "Apache-2.0",
639+ "optional": true,
640+ "dependencies": {
641+ "@img/sharp-wasm32": "0.35.4"
642+ },
643+ "engines": {
644+ "node": ">=20.9.0"
645+ },
646+ "funding": {
647+ "url": "https://opencollective.com/libvips"
648+ }
649+ },
650+ "node_modules/@img/sharp-win32-arm64": {
651+ "version": "0.35.4",
652+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz",
653+ "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==",
654+ "cpu": [
655+ "arm64"
656+ ],
657+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
658+ "optional": true,
659+ "os": [
660+ "win32"
661+ ],
662+ "engines": {
663+ "node": ">=20.9.0"
664+ },
665+ "funding": {
666+ "url": "https://opencollective.com/libvips"
667+ }
668+ },
669+ "node_modules/@img/sharp-win32-ia32": {
670+ "version": "0.35.4",
671+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz",
672+ "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==",
673+ "cpu": [
674+ "ia32"
675+ ],
676+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
677+ "optional": true,
678+ "os": [
679+ "win32"
680+ ],
681+ "engines": {
682+ "node": "^20.9.0"
683+ },
684+ "funding": {
685+ "url": "https://opencollective.com/libvips"
686+ }
687+ },
688+ "node_modules/@img/sharp-win32-x64": {
689+ "version": "0.35.4",
690+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz",
691+ "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==",
692+ "cpu": [
693+ "x64"
694+ ],
695+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
696+ "optional": true,
697+ "os": [
698+ "win32"
699+ ],
700+ "engines": {
701+ "node": ">=20.9.0"
702+ },
703+ "funding": {
704+ "url": "https://opencollective.com/libvips"
705+ }
706+ },
707+ "node_modules/@jridgewell/resolve-uri": {
708+ "version": "3.1.2",
709+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
710+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
711+ "license": "MIT",
712+ "engines": {
713+ "node": ">=6.0.0"
714+ }
715+ },
716+ "node_modules/@jridgewell/sourcemap-codec": {
717+ "version": "1.6.0",
718+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
719+ "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
720+ "license": "MIT"
721+ },
722+ "node_modules/@jridgewell/trace-mapping": {
723+ "version": "0.3.9",
724+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
725+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
726+ "license": "MIT",
727+ "dependencies": {
728+ "@jridgewell/resolve-uri": "^3.0.3",
729+ "@jridgewell/sourcemap-codec": "^1.4.10"
730+ }
731+ },
732+ "node_modules/@poppinss/colors": {
733+ "version": "4.1.6",
734+ "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz",
735+ "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==",
736+ "license": "MIT",
737+ "dependencies": {
738+ "kleur": "^4.1.5"
739+ }
740+ },
741+ "node_modules/@poppinss/dumper": {
742+ "version": "0.6.5",
743+ "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz",
744+ "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==",
745+ "license": "MIT",
746+ "dependencies": {
747+ "@poppinss/colors": "^4.1.5",
748+ "@sindresorhus/is": "^7.0.2",
749+ "supports-color": "^10.0.0"
750+ }
751+ },
752+ "node_modules/@poppinss/exception": {
753+ "version": "1.2.3",
754+ "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz",
755+ "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==",
756+ "license": "MIT"
757+ },
758+ "node_modules/@sindresorhus/is": {
759+ "version": "7.2.0",
760+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz",
761+ "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==",
762+ "license": "MIT",
763+ "engines": {
764+ "node": ">=18"
765+ },
766+ "funding": {
767+ "url": "https://github.com/sindresorhus/is?sponsor=1"
768+ }
769+ },
770+ "node_modules/@speed-highlight/core": {
771+ "version": "1.2.24",
772+ "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.24.tgz",
773+ "integrity": "sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==",
774+ "license": "CC0-1.0"
775+ },
776+ "node_modules/blake3-wasm": {
777+ "version": "2.1.5",
778+ "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz",
779+ "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==",
780+ "license": "MIT"
781+ },
782+ "node_modules/cookie": {
783+ "version": "1.1.1",
784+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
785+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
786+ "license": "MIT",
787+ "engines": {
788+ "node": ">=18"
789+ },
790+ "funding": {
791+ "type": "opencollective",
792+ "url": "https://opencollective.com/express"
793+ }
794+ },
795+ "node_modules/detect-libc": {
796+ "version": "2.1.2",
797+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
798+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
799+ "license": "Apache-2.0",
800+ "engines": {
801+ "node": ">=8"
802+ }
803+ },
804+ "node_modules/error-stack-parser-es": {
805+ "version": "1.0.5",
806+ "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz",
807+ "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==",
808+ "license": "MIT",
809+ "funding": {
810+ "url": "https://github.com/sponsors/antfu"
811+ }
812+ },
813+ "node_modules/kleur": {
814+ "version": "4.1.5",
815+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
816+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
817+ "license": "MIT",
818+ "engines": {
819+ "node": ">=6"
820+ }
821+ },
822+ "node_modules/miniflare": {
823+ "version": "5.20260926.0-alpha",
824+ "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-5.20260926.0-alpha.tgz",
825+ "integrity": "sha512-m/M3rpLnaouw6QSoKzylfw6Z1dnOwRM48idnZ7kc5ivRqBXANFQ8XqKCyQ/V+xqQ9Rg1L99j4WkZGVU9uT4L2w==",
826+ "license": "MIT",
827+ "dependencies": {
828+ "@cspotcode/source-map-support": "0.8.1",
829+ "sharp": "0.35.4",
830+ "undici": "7.29.0",
831+ "workerd": "1.20260926.1",
832+ "ws": "8.21.0",
833+ "youch": "4.1.0-beta.10"
834+ },
835+ "engines": {
836+ "node": ">=22.0.0"
837+ }
838+ },
839+ "node_modules/minisearch": {
840+ "version": "7.2.0",
841+ "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.2.0.tgz",
842+ "integrity": "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==",
843+ "license": "MIT"
844+ },
845+ "node_modules/semver": {
846+ "version": "7.8.5",
847+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
848+ "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
849+ "license": "ISC",
850+ "bin": {
851+ "semver": "bin/semver.js"
852+ },
853+ "engines": {
854+ "node": ">=10"
855+ }
856+ },
857+ "node_modules/sharp": {
858+ "version": "0.35.4",
859+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz",
860+ "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==",
861+ "license": "Apache-2.0",
862+ "dependencies": {
863+ "@img/colour": "^1.1.0",
864+ "detect-libc": "^2.1.2",
865+ "semver": "^7.8.5"
866+ },
867+ "engines": {
868+ "node": ">=20.9.0"
869+ },
870+ "funding": {
871+ "url": "https://opencollective.com/libvips"
872+ },
873+ "optionalDependencies": {
874+ "@img/sharp-darwin-arm64": "0.35.4",
875+ "@img/sharp-darwin-x64": "0.35.4",
876+ "@img/sharp-freebsd-wasm32": "0.35.4",
877+ "@img/sharp-libvips-darwin-arm64": "1.3.3",
878+ "@img/sharp-libvips-darwin-x64": "1.3.3",
879+ "@img/sharp-libvips-linux-arm": "1.3.3",
880+ "@img/sharp-libvips-linux-arm64": "1.3.3",
881+ "@img/sharp-libvips-linux-ppc64": "1.3.3",
882+ "@img/sharp-libvips-linux-riscv64": "1.3.3",
883+ "@img/sharp-libvips-linux-s390x": "1.3.3",
884+ "@img/sharp-libvips-linux-x64": "1.3.3",
885+ "@img/sharp-libvips-linuxmusl-arm64": "1.3.3",
886+ "@img/sharp-libvips-linuxmusl-x64": "1.3.3",
887+ "@img/sharp-linux-arm": "0.35.4",
888+ "@img/sharp-linux-arm64": "0.35.4",
889+ "@img/sharp-linux-ppc64": "0.35.4",
890+ "@img/sharp-linux-riscv64": "0.35.4",
891+ "@img/sharp-linux-s390x": "0.35.4",
892+ "@img/sharp-linux-x64": "0.35.4",
893+ "@img/sharp-linuxmusl-arm64": "0.35.4",
894+ "@img/sharp-linuxmusl-x64": "0.35.4",
895+ "@img/sharp-webcontainers-wasm32": "0.35.4",
896+ "@img/sharp-win32-arm64": "0.35.4",
897+ "@img/sharp-win32-ia32": "0.35.4",
898+ "@img/sharp-win32-x64": "0.35.4"
899+ },
900+ "peerDependenciesMeta": {
901+ "@types/node": {
902+ "optional": true
903+ }
904+ }
905+ },
906+ "node_modules/supports-color": {
907+ "version": "10.2.2",
908+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
909+ "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==",
910+ "license": "MIT",
911+ "engines": {
912+ "node": ">=18"
913+ },
914+ "funding": {
915+ "url": "https://github.com/chalk/supports-color?sponsor=1"
916+ }
917+ },
918+ "node_modules/tslib": {
919+ "version": "2.8.1",
920+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
921+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
922+ "license": "0BSD",
923+ "optional": true
924+ },
925+ "node_modules/undici": {
926+ "version": "7.29.0",
927+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz",
928+ "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==",
929+ "license": "MIT",
930+ "engines": {
931+ "node": ">=20.18.1"
932+ }
933+ },
934+ "node_modules/workerd": {
935+ "version": "1.20260926.1",
936+ "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260926.1.tgz",
937+ "integrity": "sha512-YojhsWBuZwk3Jk9OC0QfTgVbLeQOD1tK1olC9ZXAUcmeip8z4NE/xtttpxCsuTvQBRqppvy7Tkac0kxPYMjIXA==",
938+ "hasInstallScript": true,
939+ "license": "Apache-2.0",
940+ "bin": {
941+ "workerd": "bin/workerd"
942+ },
943+ "engines": {
944+ "node": ">=16"
945+ },
946+ "optionalDependencies": {
947+ "@cloudflare/workerd-darwin-64": "1.20260926.1",
948+ "@cloudflare/workerd-darwin-arm64": "1.20260926.1",
949+ "@cloudflare/workerd-linux-64": "1.20260926.1",
950+ "@cloudflare/workerd-linux-arm64": "1.20260926.1",
951+ "@cloudflare/workerd-windows-64": "1.20260926.1"
952+ }
953+ },
954+ "node_modules/ws": {
955+ "version": "8.21.0",
956+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
957+ "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
958+ "license": "MIT",
959+ "engines": {
960+ "node": ">=10.0.0"
961+ },
962+ "peerDependencies": {
963+ "bufferutil": "^4.0.1",
964+ "utf-8-validate": ">=5.0.2"
965+ },
966+ "peerDependenciesMeta": {
967+ "bufferutil": {
968+ "optional": true
969+ },
970+ "utf-8-validate": {
971+ "optional": true
972+ }
973+ }
974+ },
975+ "node_modules/youch": {
976+ "version": "4.1.0-beta.10",
977+ "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz",
978+ "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==",
979+ "license": "MIT",
980+ "dependencies": {
981+ "@poppinss/colors": "^4.1.5",
982+ "@poppinss/dumper": "^0.6.4",
983+ "@speed-highlight/core": "^1.2.7",
984+ "cookie": "^1.0.2",
985+ "youch-core": "^0.3.3"
986+ }
987+ },
988+ "node_modules/youch-core": {
989+ "version": "0.3.3",
990+ "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz",
991+ "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==",
992+ "license": "MIT",
993+ "dependencies": {
994+ "@poppinss/exception": "^1.2.2",
995+ "error-stack-parser-es": "^1.0.5"
996+ }
997+ },
998+ "node_modules/zod": {
999+ "version": "4.4.3",
1000+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
1001+ "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
1002+ "license": "MIT",
1003+ "funding": {
1004+ "url": "https://github.com/sponsors/colinhacks"
1005+ }
1006+ }
1007+ }
1008+}
modified flake.nix +35 -0
@@ -30,6 +30,39 @@
3030 url = "https://github.com/jolicode/JoliTypo/releases/download/v2.0.0/jolitypo.phar";
3131 hash = "sha256-d6SZko7GvHwc1cDpRsPHLb+owM0E5za5/fBHhW+dIYE=";
3232 };
33+ # cf (github.com/cloudflare/cf) isn't in nixpkgs - too new, and its name
34+ # too generic to expect it lands there soon - so it's built here
35+ # straight from the published npm tarball, which ships a prebuilt
36+ # dist/ (no tsdown bundling step to reproduce). Its own repo is a pnpm
37+ # workspace (monorepo, patched deps, turbo pipeline), not something
38+ # buildNpmPackage can consume directly - ./cf-package-lock.json is a
39+ # plain npm lockfile generated once, standalone, from this package's
40+ # own published `dependencies`, purely so npmDepsHash has something to
41+ # check against. The tarball's own package.json still lists its real
42+ # devDependencies (tsdown, vitest, msw...) alongside those - two of
43+ # them are file:../../vendor/... paths back into the monorepo that
44+ # don't even resolve outside it - so `npm ci` won't reconcile against
45+ # a lockfile that only has the runtime deps unless devDependencies is
46+ # stripped from package.json first, to match.
47+ cf = pkgs.buildNpmPackage {
48+ pname = "cf";
49+ version = "1.0.0-beta.5";
50+ src = pkgs.fetchurl {
51+ url = "https://registry.npmjs.org/cf/-/cf-1.0.0-beta.5.tgz";
52+ hash = "sha256-1x3pK0SXZ7YssUD8HA02IwWRTu7bGkS4WoYACcKXMBw=";
53+ };
54+ postPatch = ''
55+ cp ${./cf-package-lock.json} package-lock.json
56+ node -e '
57+ const fs = require("fs");
58+ const p = JSON.parse(fs.readFileSync("package.json"));
59+ delete p.devDependencies;
60+ fs.writeFileSync("package.json", JSON.stringify(p, null, 2));
61+ '
62+ '';
63+ npmDepsHash = "sha256-FS1zU1+3pOtKBRG2WUYCFyGJ1Ggbm6V5p15tEMfyyQM=";
64+ dontNpmBuild = true;
65+ };
3366 in
3467 {
3568 packages.${system}.default = pkgs.stdenvNoCC.mkDerivation {
@@ -179,6 +212,7 @@ FONTCONF
179212 packages = [
180213 opentofu
181214 wrangler
215+ cf
182216 ];
183217
184218 shellHook = ''
@@ -186,6 +220,7 @@ FONTCONF
186220 reset=$'\033[0m'
187221 printf '%-11s%-9s%s%s%s\n' "OpenTofu" "$(tofu version | sed -n 's/OpenTofu v\([0-9.]*\)/\1/p')" "$dim" "https://github.com/opentofu/opentofu/releases" "$reset"
188222 printf '%-11s%-9s%s%s%s\n' "Wrangler" "$(wrangler --version)" "$dim" "https://github.com/cloudflare/workers-sdk/releases" "$reset"
223+ printf '%-11s%-9s%s%s%s\n' "cf" "$(cf --version | sed -n 's/.*cf · v\([0-9][^ ]*\).*/\1/p')" "$dim" "https://github.com/cloudflare/cf/releases" "$reset"
189224 '';
190225 };
191226 };
@@ -30,6 +30,39 @@
30 url = "https://github.com/jolicode/JoliTypo/releases/download/v2.0.0/jolitypo.phar";30 url = "https://github.com/jolicode/JoliTypo/releases/download/v2.0.0/jolitypo.phar";
31 hash = "sha256-d6SZko7GvHwc1cDpRsPHLb+owM0E5za5/fBHhW+dIYE=";31 hash = "sha256-d6SZko7GvHwc1cDpRsPHLb+owM0E5za5/fBHhW+dIYE=";
32 };32 };
33+ # cf (github.com/cloudflare/cf) isn't in nixpkgs - too new, and its name
34+ # too generic to expect it lands there soon - so it's built here
35+ # straight from the published npm tarball, which ships a prebuilt
36+ # dist/ (no tsdown bundling step to reproduce). Its own repo is a pnpm
37+ # workspace (monorepo, patched deps, turbo pipeline), not something
38+ # buildNpmPackage can consume directly - ./cf-package-lock.json is a
39+ # plain npm lockfile generated once, standalone, from this package's
40+ # own published `dependencies`, purely so npmDepsHash has something to
41+ # check against. The tarball's own package.json still lists its real
42+ # devDependencies (tsdown, vitest, msw...) alongside those - two of
43+ # them are file:../../vendor/... paths back into the monorepo that
44+ # don't even resolve outside it - so `npm ci` won't reconcile against
45+ # a lockfile that only has the runtime deps unless devDependencies is
46+ # stripped from package.json first, to match.
47+ cf = pkgs.buildNpmPackage {
48+ pname = "cf";
49+ version = "1.0.0-beta.5";
50+ src = pkgs.fetchurl {
51+ url = "https://registry.npmjs.org/cf/-/cf-1.0.0-beta.5.tgz";
52+ hash = "sha256-1x3pK0SXZ7YssUD8HA02IwWRTu7bGkS4WoYACcKXMBw=";
53+ };
54+ postPatch = ''
55+ cp ${./cf-package-lock.json} package-lock.json
56+ node -e '
57+ const fs = require("fs");
58+ const p = JSON.parse(fs.readFileSync("package.json"));
59+ delete p.devDependencies;
60+ fs.writeFileSync("package.json", JSON.stringify(p, null, 2));
61+ '
62+ '';
63+ npmDepsHash = "sha256-FS1zU1+3pOtKBRG2WUYCFyGJ1Ggbm6V5p15tEMfyyQM=";
64+ dontNpmBuild = true;
65+ };
33 in66 in
34 {67 {
35 packages.${system}.default = pkgs.stdenvNoCC.mkDerivation {68 packages.${system}.default = pkgs.stdenvNoCC.mkDerivation {
@@ -179,6 +212,7 @@ FONTCONF
179 packages = [212 packages = [
180 opentofu213 opentofu
181 wrangler214 wrangler
215+ cf
182 ];216 ];
183 217
184 shellHook = ''218 shellHook = ''
@@ -186,6 +220,7 @@ FONTCONF
186 reset=$'\033[0m'220 reset=$'\033[0m'
187 printf '%-11s%-9s%s%s%s\n' "OpenTofu" "$(tofu version | sed -n 's/OpenTofu v\([0-9.]*\)/\1/p')" "$dim" "https://github.com/opentofu/opentofu/releases" "$reset"221 printf '%-11s%-9s%s%s%s\n' "OpenTofu" "$(tofu version | sed -n 's/OpenTofu v\([0-9.]*\)/\1/p')" "$dim" "https://github.com/opentofu/opentofu/releases" "$reset"
188 printf '%-11s%-9s%s%s%s\n' "Wrangler" "$(wrangler --version)" "$dim" "https://github.com/cloudflare/workers-sdk/releases" "$reset"222 printf '%-11s%-9s%s%s%s\n' "Wrangler" "$(wrangler --version)" "$dim" "https://github.com/cloudflare/workers-sdk/releases" "$reset"
223+ printf '%-11s%-9s%s%s%s\n' "cf" "$(cf --version | sed -n 's/.*cf · v\([0-9][^ ]*\).*/\1/p')" "$dim" "https://github.com/cloudflare/cf/releases" "$reset"
189 '';224 '';
190 };225 };
191 };226 };