AT Mot — a bilingual (EN/FR) daily word game native to the AT Protocol.
0

Configure Feed

Select the types of activity you want to include in your feed.

Merge add/deploy-script: npm run deploy for Cloudflare Pages

+986 -3
+1
.gitignore
··· 3 3 *.local 4 4 .DS_Store 5 5 .vite/ 6 + .wrangler/ 6 7 coverage/ 7 8 *.log
+19 -1
README.md
··· 113 113 114 114 ## Deploy (Cloudflare Pages) 115 115 116 - - **Build command:** `npm run build` 116 + The git remote lives on [tangled.org](https://tangled.org), so Cloudflare's git-connected builds 117 + aren't available. Deployment uses **Wrangler direct upload** instead — build locally, then push the 118 + `dist/` folder straight to the `atmot` Pages project: 119 + 120 + ```bash 121 + npm run deploy 122 + ``` 123 + 124 + This runs `npm run build` (typecheck + Vite build) and then 125 + `wrangler pages deploy dist --project-name=atmot --branch=trunk`. The first run prompts for 126 + `wrangler login`. 127 + 128 + The `--branch=trunk` flag is important: Wrangler tags a deployment with your current local git 129 + branch, and Cloudflare only promotes deployments whose branch matches the project's **production 130 + branch** (`trunk`). Without it, deploying from a feature branch produces a preview URL and leaves the 131 + live site unchanged. 132 + 117 133 - **Output directory:** `dist` 134 + - **Pages project:** `atmot` 135 + - **Production branch:** `trunk` 118 136 - **Custom domain:** `atmot.herve.bzh` 119 137 120 138 `public/_redirects` provides the SPA history fallback so the `/p/<lang>/<n>` permalinks resolve to
+963 -1
package-lock.json
··· 25 25 "tsx": "^4.22.4", 26 26 "typescript": "^6.0.3", 27 27 "vite": "^8.0.16", 28 - "vitest": "^4.1.9" 28 + "vitest": "^4.1.9", 29 + "wrangler": "^4.103.0" 29 30 } 30 31 }, 31 32 "node_modules/@atcute/atproto": { ··· 191 192 "license": "0BSD", 192 193 "dependencies": { 193 194 "unicode-segmenter": "^0.14.5" 195 + } 196 + }, 197 + "node_modules/@cloudflare/kv-asset-handler": { 198 + "version": "0.5.0", 199 + "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.5.0.tgz", 200 + "integrity": "sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==", 201 + "dev": true, 202 + "license": "MIT OR Apache-2.0", 203 + "engines": { 204 + "node": ">=22.0.0" 205 + } 206 + }, 207 + "node_modules/@cloudflare/unenv-preset": { 208 + "version": "2.16.1", 209 + "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.16.1.tgz", 210 + "integrity": "sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==", 211 + "dev": true, 212 + "license": "MIT OR Apache-2.0", 213 + "peerDependencies": { 214 + "unenv": "2.0.0-rc.24", 215 + "workerd": ">1.20260305.0 <2.0.0-0" 216 + }, 217 + "peerDependenciesMeta": { 218 + "workerd": { 219 + "optional": true 220 + } 221 + } 222 + }, 223 + "node_modules/@cloudflare/workerd-darwin-64": { 224 + "version": "1.20260617.1", 225 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260617.1.tgz", 226 + "integrity": "sha512-jWwmgEVVWbsHNrLSNXzwjJaH90VzRxq1cWkQFUidxyeUPnMxemeNE8I9qFAfrpzGgE11e9sKDcE3ettJW08swQ==", 227 + "cpu": [ 228 + "x64" 229 + ], 230 + "dev": true, 231 + "license": "Apache-2.0", 232 + "optional": true, 233 + "os": [ 234 + "darwin" 235 + ], 236 + "engines": { 237 + "node": ">=16" 238 + } 239 + }, 240 + "node_modules/@cloudflare/workerd-darwin-arm64": { 241 + "version": "1.20260617.1", 242 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260617.1.tgz", 243 + "integrity": "sha512-LHH7b565g9znfCUOkwbec6FG2rmRbsgCy6aJiU9KN662mNheWl5sw/iKleiFSiljPKQQP3HkjnC/NSkdgi/aSA==", 244 + "cpu": [ 245 + "arm64" 246 + ], 247 + "dev": true, 248 + "license": "Apache-2.0", 249 + "optional": true, 250 + "os": [ 251 + "darwin" 252 + ], 253 + "engines": { 254 + "node": ">=16" 255 + } 256 + }, 257 + "node_modules/@cloudflare/workerd-linux-64": { 258 + "version": "1.20260617.1", 259 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260617.1.tgz", 260 + "integrity": "sha512-FMnaAKXe4Cfd8TQurCVd9fs2XQVBFRCsP+Id/SRdUv89MlwYu9zXfoyx6BxM+brPTIUK38SHbo8iaxiwzLi9JQ==", 261 + "cpu": [ 262 + "x64" 263 + ], 264 + "dev": true, 265 + "license": "Apache-2.0", 266 + "optional": true, 267 + "os": [ 268 + "linux" 269 + ], 270 + "engines": { 271 + "node": ">=16" 272 + } 273 + }, 274 + "node_modules/@cloudflare/workerd-linux-arm64": { 275 + "version": "1.20260617.1", 276 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260617.1.tgz", 277 + "integrity": "sha512-MRoifFYcqbxxIIQy7PqO5tFY/qPFSnjXzakWl0sO93l+HLyG35jRAgOi6jfqa4kBxc7gKKtH861DcewjxUfkjA==", 278 + "cpu": [ 279 + "arm64" 280 + ], 281 + "dev": true, 282 + "license": "Apache-2.0", 283 + "optional": true, 284 + "os": [ 285 + "linux" 286 + ], 287 + "engines": { 288 + "node": ">=16" 289 + } 290 + }, 291 + "node_modules/@cloudflare/workerd-windows-64": { 292 + "version": "1.20260617.1", 293 + "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260617.1.tgz", 294 + "integrity": "sha512-rgBV9wQrv0OSKgCTTbhFUFY3sLGNANZ88aqaLvtmEn2gmbFVb1J4PDGochVUdB7NSEp4D/ghHva6/8SZmbONpw==", 295 + "cpu": [ 296 + "x64" 297 + ], 298 + "dev": true, 299 + "license": "Apache-2.0", 300 + "optional": true, 301 + "os": [ 302 + "win32" 303 + ], 304 + "engines": { 305 + "node": ">=16" 306 + } 307 + }, 308 + "node_modules/@cspotcode/source-map-support": { 309 + "version": "0.8.1", 310 + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 311 + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 312 + "dev": true, 313 + "license": "MIT", 314 + "dependencies": { 315 + "@jridgewell/trace-mapping": "0.3.9" 316 + }, 317 + "engines": { 318 + "node": ">=12" 194 319 } 195 320 }, 196 321 "node_modules/@emnapi/core": { ··· 938 1063 "url": "https://github.com/sponsors/nzakas" 939 1064 } 940 1065 }, 1066 + "node_modules/@img/colour": { 1067 + "version": "1.1.0", 1068 + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", 1069 + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", 1070 + "dev": true, 1071 + "license": "MIT", 1072 + "engines": { 1073 + "node": ">=18" 1074 + } 1075 + }, 1076 + "node_modules/@img/sharp-darwin-arm64": { 1077 + "version": "0.34.5", 1078 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", 1079 + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", 1080 + "cpu": [ 1081 + "arm64" 1082 + ], 1083 + "dev": true, 1084 + "license": "Apache-2.0", 1085 + "optional": true, 1086 + "os": [ 1087 + "darwin" 1088 + ], 1089 + "engines": { 1090 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1091 + }, 1092 + "funding": { 1093 + "url": "https://opencollective.com/libvips" 1094 + }, 1095 + "optionalDependencies": { 1096 + "@img/sharp-libvips-darwin-arm64": "1.2.4" 1097 + } 1098 + }, 1099 + "node_modules/@img/sharp-darwin-x64": { 1100 + "version": "0.34.5", 1101 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", 1102 + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", 1103 + "cpu": [ 1104 + "x64" 1105 + ], 1106 + "dev": true, 1107 + "license": "Apache-2.0", 1108 + "optional": true, 1109 + "os": [ 1110 + "darwin" 1111 + ], 1112 + "engines": { 1113 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1114 + }, 1115 + "funding": { 1116 + "url": "https://opencollective.com/libvips" 1117 + }, 1118 + "optionalDependencies": { 1119 + "@img/sharp-libvips-darwin-x64": "1.2.4" 1120 + } 1121 + }, 1122 + "node_modules/@img/sharp-libvips-darwin-arm64": { 1123 + "version": "1.2.4", 1124 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", 1125 + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", 1126 + "cpu": [ 1127 + "arm64" 1128 + ], 1129 + "dev": true, 1130 + "license": "LGPL-3.0-or-later", 1131 + "optional": true, 1132 + "os": [ 1133 + "darwin" 1134 + ], 1135 + "funding": { 1136 + "url": "https://opencollective.com/libvips" 1137 + } 1138 + }, 1139 + "node_modules/@img/sharp-libvips-darwin-x64": { 1140 + "version": "1.2.4", 1141 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", 1142 + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", 1143 + "cpu": [ 1144 + "x64" 1145 + ], 1146 + "dev": true, 1147 + "license": "LGPL-3.0-or-later", 1148 + "optional": true, 1149 + "os": [ 1150 + "darwin" 1151 + ], 1152 + "funding": { 1153 + "url": "https://opencollective.com/libvips" 1154 + } 1155 + }, 1156 + "node_modules/@img/sharp-libvips-linux-arm": { 1157 + "version": "1.2.4", 1158 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", 1159 + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", 1160 + "cpu": [ 1161 + "arm" 1162 + ], 1163 + "dev": true, 1164 + "libc": [ 1165 + "glibc" 1166 + ], 1167 + "license": "LGPL-3.0-or-later", 1168 + "optional": true, 1169 + "os": [ 1170 + "linux" 1171 + ], 1172 + "funding": { 1173 + "url": "https://opencollective.com/libvips" 1174 + } 1175 + }, 1176 + "node_modules/@img/sharp-libvips-linux-arm64": { 1177 + "version": "1.2.4", 1178 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", 1179 + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", 1180 + "cpu": [ 1181 + "arm64" 1182 + ], 1183 + "dev": true, 1184 + "libc": [ 1185 + "glibc" 1186 + ], 1187 + "license": "LGPL-3.0-or-later", 1188 + "optional": true, 1189 + "os": [ 1190 + "linux" 1191 + ], 1192 + "funding": { 1193 + "url": "https://opencollective.com/libvips" 1194 + } 1195 + }, 1196 + "node_modules/@img/sharp-libvips-linux-ppc64": { 1197 + "version": "1.2.4", 1198 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", 1199 + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", 1200 + "cpu": [ 1201 + "ppc64" 1202 + ], 1203 + "dev": true, 1204 + "libc": [ 1205 + "glibc" 1206 + ], 1207 + "license": "LGPL-3.0-or-later", 1208 + "optional": true, 1209 + "os": [ 1210 + "linux" 1211 + ], 1212 + "funding": { 1213 + "url": "https://opencollective.com/libvips" 1214 + } 1215 + }, 1216 + "node_modules/@img/sharp-libvips-linux-riscv64": { 1217 + "version": "1.2.4", 1218 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", 1219 + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", 1220 + "cpu": [ 1221 + "riscv64" 1222 + ], 1223 + "dev": true, 1224 + "libc": [ 1225 + "glibc" 1226 + ], 1227 + "license": "LGPL-3.0-or-later", 1228 + "optional": true, 1229 + "os": [ 1230 + "linux" 1231 + ], 1232 + "funding": { 1233 + "url": "https://opencollective.com/libvips" 1234 + } 1235 + }, 1236 + "node_modules/@img/sharp-libvips-linux-s390x": { 1237 + "version": "1.2.4", 1238 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", 1239 + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", 1240 + "cpu": [ 1241 + "s390x" 1242 + ], 1243 + "dev": true, 1244 + "libc": [ 1245 + "glibc" 1246 + ], 1247 + "license": "LGPL-3.0-or-later", 1248 + "optional": true, 1249 + "os": [ 1250 + "linux" 1251 + ], 1252 + "funding": { 1253 + "url": "https://opencollective.com/libvips" 1254 + } 1255 + }, 1256 + "node_modules/@img/sharp-libvips-linux-x64": { 1257 + "version": "1.2.4", 1258 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", 1259 + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", 1260 + "cpu": [ 1261 + "x64" 1262 + ], 1263 + "dev": true, 1264 + "libc": [ 1265 + "glibc" 1266 + ], 1267 + "license": "LGPL-3.0-or-later", 1268 + "optional": true, 1269 + "os": [ 1270 + "linux" 1271 + ], 1272 + "funding": { 1273 + "url": "https://opencollective.com/libvips" 1274 + } 1275 + }, 1276 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 1277 + "version": "1.2.4", 1278 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", 1279 + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", 1280 + "cpu": [ 1281 + "arm64" 1282 + ], 1283 + "dev": true, 1284 + "libc": [ 1285 + "musl" 1286 + ], 1287 + "license": "LGPL-3.0-or-later", 1288 + "optional": true, 1289 + "os": [ 1290 + "linux" 1291 + ], 1292 + "funding": { 1293 + "url": "https://opencollective.com/libvips" 1294 + } 1295 + }, 1296 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 1297 + "version": "1.2.4", 1298 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", 1299 + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", 1300 + "cpu": [ 1301 + "x64" 1302 + ], 1303 + "dev": true, 1304 + "libc": [ 1305 + "musl" 1306 + ], 1307 + "license": "LGPL-3.0-or-later", 1308 + "optional": true, 1309 + "os": [ 1310 + "linux" 1311 + ], 1312 + "funding": { 1313 + "url": "https://opencollective.com/libvips" 1314 + } 1315 + }, 1316 + "node_modules/@img/sharp-linux-arm": { 1317 + "version": "0.34.5", 1318 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", 1319 + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", 1320 + "cpu": [ 1321 + "arm" 1322 + ], 1323 + "dev": true, 1324 + "libc": [ 1325 + "glibc" 1326 + ], 1327 + "license": "Apache-2.0", 1328 + "optional": true, 1329 + "os": [ 1330 + "linux" 1331 + ], 1332 + "engines": { 1333 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1334 + }, 1335 + "funding": { 1336 + "url": "https://opencollective.com/libvips" 1337 + }, 1338 + "optionalDependencies": { 1339 + "@img/sharp-libvips-linux-arm": "1.2.4" 1340 + } 1341 + }, 1342 + "node_modules/@img/sharp-linux-arm64": { 1343 + "version": "0.34.5", 1344 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", 1345 + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", 1346 + "cpu": [ 1347 + "arm64" 1348 + ], 1349 + "dev": true, 1350 + "libc": [ 1351 + "glibc" 1352 + ], 1353 + "license": "Apache-2.0", 1354 + "optional": true, 1355 + "os": [ 1356 + "linux" 1357 + ], 1358 + "engines": { 1359 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1360 + }, 1361 + "funding": { 1362 + "url": "https://opencollective.com/libvips" 1363 + }, 1364 + "optionalDependencies": { 1365 + "@img/sharp-libvips-linux-arm64": "1.2.4" 1366 + } 1367 + }, 1368 + "node_modules/@img/sharp-linux-ppc64": { 1369 + "version": "0.34.5", 1370 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", 1371 + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", 1372 + "cpu": [ 1373 + "ppc64" 1374 + ], 1375 + "dev": true, 1376 + "libc": [ 1377 + "glibc" 1378 + ], 1379 + "license": "Apache-2.0", 1380 + "optional": true, 1381 + "os": [ 1382 + "linux" 1383 + ], 1384 + "engines": { 1385 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1386 + }, 1387 + "funding": { 1388 + "url": "https://opencollective.com/libvips" 1389 + }, 1390 + "optionalDependencies": { 1391 + "@img/sharp-libvips-linux-ppc64": "1.2.4" 1392 + } 1393 + }, 1394 + "node_modules/@img/sharp-linux-riscv64": { 1395 + "version": "0.34.5", 1396 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", 1397 + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", 1398 + "cpu": [ 1399 + "riscv64" 1400 + ], 1401 + "dev": true, 1402 + "libc": [ 1403 + "glibc" 1404 + ], 1405 + "license": "Apache-2.0", 1406 + "optional": true, 1407 + "os": [ 1408 + "linux" 1409 + ], 1410 + "engines": { 1411 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1412 + }, 1413 + "funding": { 1414 + "url": "https://opencollective.com/libvips" 1415 + }, 1416 + "optionalDependencies": { 1417 + "@img/sharp-libvips-linux-riscv64": "1.2.4" 1418 + } 1419 + }, 1420 + "node_modules/@img/sharp-linux-s390x": { 1421 + "version": "0.34.5", 1422 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", 1423 + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", 1424 + "cpu": [ 1425 + "s390x" 1426 + ], 1427 + "dev": true, 1428 + "libc": [ 1429 + "glibc" 1430 + ], 1431 + "license": "Apache-2.0", 1432 + "optional": true, 1433 + "os": [ 1434 + "linux" 1435 + ], 1436 + "engines": { 1437 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1438 + }, 1439 + "funding": { 1440 + "url": "https://opencollective.com/libvips" 1441 + }, 1442 + "optionalDependencies": { 1443 + "@img/sharp-libvips-linux-s390x": "1.2.4" 1444 + } 1445 + }, 1446 + "node_modules/@img/sharp-linux-x64": { 1447 + "version": "0.34.5", 1448 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", 1449 + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", 1450 + "cpu": [ 1451 + "x64" 1452 + ], 1453 + "dev": true, 1454 + "libc": [ 1455 + "glibc" 1456 + ], 1457 + "license": "Apache-2.0", 1458 + "optional": true, 1459 + "os": [ 1460 + "linux" 1461 + ], 1462 + "engines": { 1463 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1464 + }, 1465 + "funding": { 1466 + "url": "https://opencollective.com/libvips" 1467 + }, 1468 + "optionalDependencies": { 1469 + "@img/sharp-libvips-linux-x64": "1.2.4" 1470 + } 1471 + }, 1472 + "node_modules/@img/sharp-linuxmusl-arm64": { 1473 + "version": "0.34.5", 1474 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", 1475 + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", 1476 + "cpu": [ 1477 + "arm64" 1478 + ], 1479 + "dev": true, 1480 + "libc": [ 1481 + "musl" 1482 + ], 1483 + "license": "Apache-2.0", 1484 + "optional": true, 1485 + "os": [ 1486 + "linux" 1487 + ], 1488 + "engines": { 1489 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1490 + }, 1491 + "funding": { 1492 + "url": "https://opencollective.com/libvips" 1493 + }, 1494 + "optionalDependencies": { 1495 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" 1496 + } 1497 + }, 1498 + "node_modules/@img/sharp-linuxmusl-x64": { 1499 + "version": "0.34.5", 1500 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", 1501 + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", 1502 + "cpu": [ 1503 + "x64" 1504 + ], 1505 + "dev": true, 1506 + "libc": [ 1507 + "musl" 1508 + ], 1509 + "license": "Apache-2.0", 1510 + "optional": true, 1511 + "os": [ 1512 + "linux" 1513 + ], 1514 + "engines": { 1515 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1516 + }, 1517 + "funding": { 1518 + "url": "https://opencollective.com/libvips" 1519 + }, 1520 + "optionalDependencies": { 1521 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" 1522 + } 1523 + }, 1524 + "node_modules/@img/sharp-wasm32": { 1525 + "version": "0.34.5", 1526 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", 1527 + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", 1528 + "cpu": [ 1529 + "wasm32" 1530 + ], 1531 + "dev": true, 1532 + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 1533 + "optional": true, 1534 + "dependencies": { 1535 + "@emnapi/runtime": "^1.7.0" 1536 + }, 1537 + "engines": { 1538 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1539 + }, 1540 + "funding": { 1541 + "url": "https://opencollective.com/libvips" 1542 + } 1543 + }, 1544 + "node_modules/@img/sharp-win32-arm64": { 1545 + "version": "0.34.5", 1546 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", 1547 + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", 1548 + "cpu": [ 1549 + "arm64" 1550 + ], 1551 + "dev": true, 1552 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1553 + "optional": true, 1554 + "os": [ 1555 + "win32" 1556 + ], 1557 + "engines": { 1558 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1559 + }, 1560 + "funding": { 1561 + "url": "https://opencollective.com/libvips" 1562 + } 1563 + }, 1564 + "node_modules/@img/sharp-win32-ia32": { 1565 + "version": "0.34.5", 1566 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", 1567 + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", 1568 + "cpu": [ 1569 + "ia32" 1570 + ], 1571 + "dev": true, 1572 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1573 + "optional": true, 1574 + "os": [ 1575 + "win32" 1576 + ], 1577 + "engines": { 1578 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1579 + }, 1580 + "funding": { 1581 + "url": "https://opencollective.com/libvips" 1582 + } 1583 + }, 1584 + "node_modules/@img/sharp-win32-x64": { 1585 + "version": "0.34.5", 1586 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", 1587 + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", 1588 + "cpu": [ 1589 + "x64" 1590 + ], 1591 + "dev": true, 1592 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1593 + "optional": true, 1594 + "os": [ 1595 + "win32" 1596 + ], 1597 + "engines": { 1598 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1599 + }, 1600 + "funding": { 1601 + "url": "https://opencollective.com/libvips" 1602 + } 1603 + }, 1604 + "node_modules/@jridgewell/resolve-uri": { 1605 + "version": "3.1.2", 1606 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1607 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1608 + "dev": true, 1609 + "license": "MIT", 1610 + "engines": { 1611 + "node": ">=6.0.0" 1612 + } 1613 + }, 941 1614 "node_modules/@jridgewell/sourcemap-codec": { 942 1615 "version": "1.5.5", 943 1616 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", ··· 945 1618 "dev": true, 946 1619 "license": "MIT" 947 1620 }, 1621 + "node_modules/@jridgewell/trace-mapping": { 1622 + "version": "0.3.9", 1623 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 1624 + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 1625 + "dev": true, 1626 + "license": "MIT", 1627 + "dependencies": { 1628 + "@jridgewell/resolve-uri": "^3.0.3", 1629 + "@jridgewell/sourcemap-codec": "^1.4.10" 1630 + } 1631 + }, 948 1632 "node_modules/@napi-rs/wasm-runtime": { 949 1633 "version": "1.1.5", 950 1634 "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", ··· 974 1658 "url": "https://github.com/sponsors/Boshen" 975 1659 } 976 1660 }, 1661 + "node_modules/@poppinss/colors": { 1662 + "version": "4.1.6", 1663 + "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz", 1664 + "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==", 1665 + "dev": true, 1666 + "license": "MIT", 1667 + "dependencies": { 1668 + "kleur": "^4.1.5" 1669 + } 1670 + }, 1671 + "node_modules/@poppinss/dumper": { 1672 + "version": "0.6.5", 1673 + "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz", 1674 + "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==", 1675 + "dev": true, 1676 + "license": "MIT", 1677 + "dependencies": { 1678 + "@poppinss/colors": "^4.1.5", 1679 + "@sindresorhus/is": "^7.0.2", 1680 + "supports-color": "^10.0.0" 1681 + } 1682 + }, 1683 + "node_modules/@poppinss/dumper/node_modules/supports-color": { 1684 + "version": "10.2.2", 1685 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", 1686 + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", 1687 + "dev": true, 1688 + "license": "MIT", 1689 + "engines": { 1690 + "node": ">=18" 1691 + }, 1692 + "funding": { 1693 + "url": "https://github.com/chalk/supports-color?sponsor=1" 1694 + } 1695 + }, 1696 + "node_modules/@poppinss/exception": { 1697 + "version": "1.2.3", 1698 + "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz", 1699 + "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==", 1700 + "dev": true, 1701 + "license": "MIT" 1702 + }, 977 1703 "node_modules/@rolldown/binding-android-arm64": { 978 1704 "version": "1.0.3", 979 1705 "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", ··· 1255 1981 "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", 1256 1982 "dev": true, 1257 1983 "license": "MIT" 1984 + }, 1985 + "node_modules/@sindresorhus/is": { 1986 + "version": "7.2.0", 1987 + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz", 1988 + "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==", 1989 + "dev": true, 1990 + "license": "MIT", 1991 + "engines": { 1992 + "node": ">=18" 1993 + }, 1994 + "funding": { 1995 + "url": "https://github.com/sindresorhus/is?sponsor=1" 1996 + } 1997 + }, 1998 + "node_modules/@speed-highlight/core": { 1999 + "version": "1.2.17", 2000 + "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.17.tgz", 2001 + "integrity": "sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==", 2002 + "dev": true, 2003 + "license": "CC0-1.0" 1258 2004 }, 1259 2005 "node_modules/@standard-schema/spec": { 1260 2006 "version": "1.1.0", ··· 1772 2518 "node": "18 || 20 || >=22" 1773 2519 } 1774 2520 }, 2521 + "node_modules/blake3-wasm": { 2522 + "version": "2.1.5", 2523 + "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 2524 + "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 2525 + "dev": true, 2526 + "license": "MIT" 2527 + }, 1775 2528 "node_modules/brace-expansion": { 1776 2529 "version": "5.0.6", 1777 2530 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", ··· 1869 2622 "dev": true, 1870 2623 "license": "MIT" 1871 2624 }, 2625 + "node_modules/cookie": { 2626 + "version": "1.1.1", 2627 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", 2628 + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", 2629 + "dev": true, 2630 + "license": "MIT", 2631 + "engines": { 2632 + "node": ">=18" 2633 + }, 2634 + "funding": { 2635 + "type": "opencollective", 2636 + "url": "https://opencollective.com/express" 2637 + } 2638 + }, 1872 2639 "node_modules/cross-spawn": { 1873 2640 "version": "7.0.6", 1874 2641 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", ··· 1930 2697 }, 1931 2698 "funding": { 1932 2699 "url": "https://github.com/fb55/entities?sponsor=1" 2700 + } 2701 + }, 2702 + "node_modules/error-stack-parser-es": { 2703 + "version": "1.0.5", 2704 + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", 2705 + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", 2706 + "dev": true, 2707 + "license": "MIT", 2708 + "funding": { 2709 + "url": "https://github.com/sponsors/antfu" 1933 2710 } 1934 2711 }, 1935 2712 "node_modules/es-module-lexer": { ··· 2522 3299 "json-buffer": "3.0.1" 2523 3300 } 2524 3301 }, 3302 + "node_modules/kleur": { 3303 + "version": "4.1.5", 3304 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 3305 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 3306 + "dev": true, 3307 + "license": "MIT", 3308 + "engines": { 3309 + "node": ">=6" 3310 + } 3311 + }, 2525 3312 "node_modules/levn": { 2526 3313 "version": "0.4.1", 2527 3314 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", ··· 2842 3629 "@jridgewell/sourcemap-codec": "^1.5.5" 2843 3630 } 2844 3631 }, 3632 + "node_modules/miniflare": { 3633 + "version": "4.20260617.1", 3634 + "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20260617.1.tgz", 3635 + "integrity": "sha512-Go3/gzStm99QHptsSgU+q1S+xDfLoRgwjJNY80kaTVi0ENhTyqKq+sc4xZiWBSbM7uUcJwmzm8+QFKtcYLJ9nw==", 3636 + "dev": true, 3637 + "license": "MIT", 3638 + "dependencies": { 3639 + "@cspotcode/source-map-support": "0.8.1", 3640 + "sharp": "0.34.5", 3641 + "undici": "7.28.0", 3642 + "workerd": "1.20260617.1", 3643 + "ws": "8.21.0", 3644 + "youch": "4.1.0-beta.10" 3645 + }, 3646 + "bin": { 3647 + "miniflare": "bootstrap.js" 3648 + }, 3649 + "engines": { 3650 + "node": ">=22.0.0" 3651 + } 3652 + }, 2845 3653 "node_modules/minimatch": { 2846 3654 "version": "10.2.5", 2847 3655 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", ··· 2987 3795 "node": ">=8" 2988 3796 } 2989 3797 }, 3798 + "node_modules/path-to-regexp": { 3799 + "version": "6.3.0", 3800 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 3801 + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 3802 + "dev": true, 3803 + "license": "MIT" 3804 + }, 2990 3805 "node_modules/pathe": { 2991 3806 "version": "2.0.3", 2992 3807 "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", ··· 3139 3954 "node": ">=10" 3140 3955 } 3141 3956 }, 3957 + "node_modules/sharp": { 3958 + "version": "0.34.5", 3959 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", 3960 + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", 3961 + "dev": true, 3962 + "hasInstallScript": true, 3963 + "license": "Apache-2.0", 3964 + "dependencies": { 3965 + "@img/colour": "^1.0.0", 3966 + "detect-libc": "^2.1.2", 3967 + "semver": "^7.7.3" 3968 + }, 3969 + "engines": { 3970 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 3971 + }, 3972 + "funding": { 3973 + "url": "https://opencollective.com/libvips" 3974 + }, 3975 + "optionalDependencies": { 3976 + "@img/sharp-darwin-arm64": "0.34.5", 3977 + "@img/sharp-darwin-x64": "0.34.5", 3978 + "@img/sharp-libvips-darwin-arm64": "1.2.4", 3979 + "@img/sharp-libvips-darwin-x64": "1.2.4", 3980 + "@img/sharp-libvips-linux-arm": "1.2.4", 3981 + "@img/sharp-libvips-linux-arm64": "1.2.4", 3982 + "@img/sharp-libvips-linux-ppc64": "1.2.4", 3983 + "@img/sharp-libvips-linux-riscv64": "1.2.4", 3984 + "@img/sharp-libvips-linux-s390x": "1.2.4", 3985 + "@img/sharp-libvips-linux-x64": "1.2.4", 3986 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", 3987 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", 3988 + "@img/sharp-linux-arm": "0.34.5", 3989 + "@img/sharp-linux-arm64": "0.34.5", 3990 + "@img/sharp-linux-ppc64": "0.34.5", 3991 + "@img/sharp-linux-riscv64": "0.34.5", 3992 + "@img/sharp-linux-s390x": "0.34.5", 3993 + "@img/sharp-linux-x64": "0.34.5", 3994 + "@img/sharp-linuxmusl-arm64": "0.34.5", 3995 + "@img/sharp-linuxmusl-x64": "0.34.5", 3996 + "@img/sharp-wasm32": "0.34.5", 3997 + "@img/sharp-win32-arm64": "0.34.5", 3998 + "@img/sharp-win32-ia32": "0.34.5", 3999 + "@img/sharp-win32-x64": "0.34.5" 4000 + } 4001 + }, 3142 4002 "node_modules/shebang-command": { 3143 4003 "version": "2.0.0", 3144 4004 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", ··· 3330 4190 "node": ">=14.17" 3331 4191 } 3332 4192 }, 4193 + "node_modules/undici": { 4194 + "version": "7.28.0", 4195 + "resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz", 4196 + "integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==", 4197 + "dev": true, 4198 + "license": "MIT", 4199 + "engines": { 4200 + "node": ">=20.18.1" 4201 + } 4202 + }, 3333 4203 "node_modules/undici-types": { 3334 4204 "version": "8.3.0", 3335 4205 "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", ··· 3337 4207 "dev": true, 3338 4208 "license": "MIT" 3339 4209 }, 4210 + "node_modules/unenv": { 4211 + "version": "2.0.0-rc.24", 4212 + "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", 4213 + "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", 4214 + "dev": true, 4215 + "license": "MIT", 4216 + "dependencies": { 4217 + "pathe": "^2.0.3" 4218 + } 4219 + }, 3340 4220 "node_modules/unicode-segmenter": { 3341 4221 "version": "0.14.5", 3342 4222 "resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.5.tgz", ··· 3588 4468 "node": ">=0.10.0" 3589 4469 } 3590 4470 }, 4471 + "node_modules/workerd": { 4472 + "version": "1.20260617.1", 4473 + "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260617.1.tgz", 4474 + "integrity": "sha512-Re5pl6pdowt3ZmWUzGlOuB7jbRIIPetgKalmo4cYmucQnVhpo7/3e4MfpekbhLi2EhZZz5EY9NWRu8zFzuEZew==", 4475 + "dev": true, 4476 + "hasInstallScript": true, 4477 + "license": "Apache-2.0", 4478 + "bin": { 4479 + "workerd": "bin/workerd" 4480 + }, 4481 + "engines": { 4482 + "node": ">=16" 4483 + }, 4484 + "optionalDependencies": { 4485 + "@cloudflare/workerd-darwin-64": "1.20260617.1", 4486 + "@cloudflare/workerd-darwin-arm64": "1.20260617.1", 4487 + "@cloudflare/workerd-linux-64": "1.20260617.1", 4488 + "@cloudflare/workerd-linux-arm64": "1.20260617.1", 4489 + "@cloudflare/workerd-windows-64": "1.20260617.1" 4490 + } 4491 + }, 4492 + "node_modules/wrangler": { 4493 + "version": "4.103.0", 4494 + "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.103.0.tgz", 4495 + "integrity": "sha512-3Lv1P5t2xcSEkSTKtG+Lz+3JFryuU7YPLkaCUj7gNe+CJsjZJLtUwqsh1x595QBxkIbCE0GAvDx2DCJUU4+oqw==", 4496 + "dev": true, 4497 + "license": "MIT OR Apache-2.0", 4498 + "dependencies": { 4499 + "@cloudflare/kv-asset-handler": "0.5.0", 4500 + "@cloudflare/unenv-preset": "2.16.1", 4501 + "blake3-wasm": "2.1.5", 4502 + "esbuild": "0.28.1", 4503 + "miniflare": "4.20260617.1", 4504 + "path-to-regexp": "6.3.0", 4505 + "unenv": "2.0.0-rc.24", 4506 + "workerd": "1.20260617.1" 4507 + }, 4508 + "bin": { 4509 + "cf-wrangler": "bin/cf-wrangler.js", 4510 + "wrangler": "bin/wrangler.js", 4511 + "wrangler2": "bin/wrangler.js" 4512 + }, 4513 + "engines": { 4514 + "node": ">=22.0.0" 4515 + }, 4516 + "optionalDependencies": { 4517 + "fsevents": "2.3.3" 4518 + }, 4519 + "peerDependencies": { 4520 + "@cloudflare/workers-types": "^4.20260617.1" 4521 + }, 4522 + "peerDependenciesMeta": { 4523 + "@cloudflare/workers-types": { 4524 + "optional": true 4525 + } 4526 + } 4527 + }, 3591 4528 "node_modules/ws": { 3592 4529 "version": "8.21.0", 3593 4530 "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", ··· 3621 4558 }, 3622 4559 "funding": { 3623 4560 "url": "https://github.com/sponsors/sindresorhus" 4561 + } 4562 + }, 4563 + "node_modules/youch": { 4564 + "version": "4.1.0-beta.10", 4565 + "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz", 4566 + "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==", 4567 + "dev": true, 4568 + "license": "MIT", 4569 + "dependencies": { 4570 + "@poppinss/colors": "^4.1.5", 4571 + "@poppinss/dumper": "^0.6.4", 4572 + "@speed-highlight/core": "^1.2.7", 4573 + "cookie": "^1.0.2", 4574 + "youch-core": "^0.3.3" 4575 + } 4576 + }, 4577 + "node_modules/youch-core": { 4578 + "version": "0.3.3", 4579 + "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", 4580 + "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", 4581 + "dev": true, 4582 + "license": "MIT", 4583 + "dependencies": { 4584 + "@poppinss/exception": "^1.2.2", 4585 + "error-stack-parser-es": "^1.0.5" 3624 4586 } 3625 4587 } 3626 4588 }
+3 -1
package.json
··· 10 10 "dev": "vite", 11 11 "build": "npm run typecheck && vite build", 12 12 "build:words": "tsx scripts/build-wordlists.ts", 13 + "deploy": "npm run build && wrangler pages deploy dist --project-name=atmot --branch=trunk", 13 14 "preview": "vite preview", 14 15 "test": "vitest run", 15 16 "test:watch": "vitest", ··· 35 36 "tsx": "^4.22.4", 36 37 "typescript": "^6.0.3", 37 38 "vite": "^8.0.16", 38 - "vitest": "^4.1.9" 39 + "vitest": "^4.1.9", 40 + "wrangler": "^4.103.0" 39 41 } 40 42 }