The recipes.blue monorepo recipes.blue
recipes appview atproto
2
fork

Configure Feed

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

feat: barebones hono app

+417 -1
+23 -1
apps/api/package.json
··· 2 2 "name": "@cookware/api", 3 3 "type": "module", 4 4 "private": true, 5 - "main": "src/index.ts", 5 + "main": "dist/index.cjs", 6 6 "publishConfig": { 7 7 "access": "public" 8 8 }, 9 + "scripts": { 10 + "dev": "tsx watch --clear-screen=false src/index.ts | pino-pretty", 11 + "build": "tsup", 12 + "start": "node dist/index.cjs", 13 + "clean": "rimraf dist" 14 + }, 9 15 "dependencies": { 16 + "@hono/node-server": "^1.13.7", 10 17 "hono": "^4.6.12", 18 + "jose": "^5.9.6", 11 19 "pino": "^9.5.0" 12 20 }, 13 21 "devDependencies": { ··· 15 23 "@cookware/tsconfig": "workspace:*", 16 24 "@types/node": "^22.10.1", 17 25 "pino-pretty": "^13.0.0", 26 + "rimraf": "^6.0.1", 27 + "ts-node": "^10.9.2", 28 + "tsup": "^8.3.5", 29 + "tsx": "^4.19.2", 18 30 "typescript": "^5.7.2" 31 + }, 32 + "tsup": { 33 + "entry": [ 34 + "src", 35 + "!src/**/__tests__/**", 36 + "!src/**/*.test.*" 37 + ], 38 + "splitting": false, 39 + "sourcemap": true, 40 + "clean": true 19 41 } 20 42 }
+25
apps/api/scripts/generate-jwk.ts
··· 1 + import { generateKeyPair } from "jose"; 2 + 3 + async function serializeKeyToJwk() { 4 + // Generate an RSA key pair 5 + const { publicKey, privateKey } = await generateKeyPair("ES256"); 6 + 7 + // Export keys as JWK 8 + const publicJwk = await import("jose").then((lib) => 9 + lib.exportJWK(publicKey) 10 + ); 11 + const privateJwk = await import("jose").then((lib) => 12 + lib.exportJWK(privateKey) 13 + ); 14 + 15 + // Convert to JSON strings 16 + const publicJwkString = JSON.stringify(publicJwk); 17 + const privateJwkString = JSON.stringify(privateJwk); 18 + 19 + // save 3 of these to PRIVATE_KEY_X env vars 20 + console.log(privateJwkString); 21 + 22 + return { publicJwkString, privateJwkString }; 23 + } 24 + 25 + serializeKeyToJwk();
+13
apps/api/src/index.ts
··· 1 + import { serve } from "@hono/node-server"; 2 + import { Hono } from "hono"; 3 + import { rootLogger } from "./logger.js"; 4 + 5 + const app = new Hono(); 6 + 7 + serve({ 8 + fetch: app.fetch, 9 + hostname: '0.0.0.0', 10 + port: 8080, 11 + }).on('listening', () => { 12 + rootLogger.info({ port: 8080, host: '0.0.0.0' }, 'server booted'); 13 + });
+6
apps/api/src/logger.ts
··· 1 + import { pino } from "pino"; 2 + 3 + export const rootLogger = pino({ name: 'cookware' }); 4 + export const apiLogger = pino({ name: 'cookware.api' }); 5 + export const ingestLogger = pino({ name: 'cookware.ingest' }); 6 + export const authLogger = pino({ name: 'cookware.auth' });
+3
apps/api/tsconfig.json
··· 1 + { 2 + "extends": "@cookware/tsconfig/base.json" 3 + }
+347
pnpm-lock.yaml
··· 10 10 11 11 apps/api: 12 12 dependencies: 13 + '@hono/node-server': 14 + specifier: ^1.13.7 15 + version: 1.13.7(hono@4.6.12) 13 16 hono: 14 17 specifier: ^4.6.12 15 18 version: 4.6.12 19 + jose: 20 + specifier: ^5.9.6 21 + version: 5.9.6 16 22 pino: 17 23 specifier: ^9.5.0 18 24 version: 9.5.0 ··· 29 35 pino-pretty: 30 36 specifier: ^13.0.0 31 37 version: 13.0.0 38 + rimraf: 39 + specifier: ^6.0.1 40 + version: 6.0.1 41 + ts-node: 42 + specifier: ^10.9.2 43 + version: 10.9.2(@types/node@22.10.1)(typescript@5.7.2) 44 + tsup: 45 + specifier: ^8.3.5 46 + version: 8.3.5(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1) 47 + tsx: 48 + specifier: ^4.19.2 49 + version: 4.19.2 32 50 typescript: 33 51 specifier: ^5.7.2 34 52 version: 5.7.2 ··· 216 234 '@cloudflare/kv-asset-handler@0.3.4': 217 235 resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} 218 236 engines: {node: '>=16.13'} 237 + 238 + '@cspotcode/source-map-support@0.8.1': 239 + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 240 + engines: {node: '>=12'} 219 241 220 242 '@deno/shim-deno-test@0.5.0': 221 243 resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} ··· 787 809 cpu: [x64] 788 810 os: [win32] 789 811 812 + '@hono/node-server@1.13.7': 813 + resolution: {integrity: sha512-kTfUMsoloVKtRA2fLiGSd9qBddmru9KadNyhJCwgKBxTiNkaAJEwkVN9KV/rS4HtmmNRtUh6P+YpmjRMl0d9vQ==} 814 + engines: {node: '>=18.14.1'} 815 + peerDependencies: 816 + hono: ^4 817 + 790 818 '@ioredis/commands@1.2.0': 791 819 resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} 792 820 ··· 814 842 815 843 '@jridgewell/trace-mapping@0.3.25': 816 844 resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 845 + 846 + '@jridgewell/trace-mapping@0.3.9': 847 + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 817 848 818 849 '@mapbox/node-pre-gyp@1.0.11': 819 850 resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} ··· 1181 1212 resolution: {integrity: sha512-jV5mWJrsh3QXHpb/by6udSqwva0qK50uYHpIXvKsLaxnlbjbLfflfPjFyRWXbMtZsnzCjSUqp5pm5/p+Wpaerg==} 1182 1213 engines: {node: '>=12'} 1183 1214 1215 + '@tsconfig/node10@1.0.11': 1216 + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 1217 + 1218 + '@tsconfig/node12@1.0.11': 1219 + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 1220 + 1221 + '@tsconfig/node14@1.0.3': 1222 + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 1223 + 1224 + '@tsconfig/node16@1.0.4': 1225 + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 1226 + 1184 1227 '@types/babel__code-frame@7.0.6': 1185 1228 resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} 1186 1229 ··· 1290 1333 peerDependencies: 1291 1334 acorn: '>=8.9.0' 1292 1335 1336 + acorn-walk@8.3.4: 1337 + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 1338 + engines: {node: '>=0.4.0'} 1339 + 1293 1340 acorn@8.14.0: 1294 1341 resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 1295 1342 engines: {node: '>=0.4.0'} ··· 1348 1395 resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} 1349 1396 engines: {node: '>=10'} 1350 1397 deprecated: This package is no longer supported. 1398 + 1399 + arg@4.1.3: 1400 + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 1351 1401 1352 1402 arg@5.0.2: 1353 1403 resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} ··· 1431 1481 buffer@6.0.3: 1432 1482 resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 1433 1483 1484 + bundle-require@5.0.0: 1485 + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} 1486 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1487 + peerDependencies: 1488 + esbuild: '>=0.18' 1489 + 1434 1490 c12@2.0.1: 1435 1491 resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} 1436 1492 peerDependencies: ··· 1438 1494 peerDependenciesMeta: 1439 1495 magicast: 1440 1496 optional: true 1497 + 1498 + cac@6.7.14: 1499 + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1500 + engines: {node: '>=8'} 1441 1501 1442 1502 camelcase-css@2.0.1: 1443 1503 resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} ··· 1560 1620 resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} 1561 1621 engines: {node: '>= 14'} 1562 1622 1623 + create-require@1.1.1: 1624 + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 1625 + 1563 1626 croner@9.0.0: 1564 1627 resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} 1565 1628 engines: {node: '>=18.0'} ··· 1671 1734 didyoumean@1.2.2: 1672 1735 resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1673 1736 1737 + diff@4.0.2: 1738 + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 1739 + engines: {node: '>=0.3.1'} 1740 + 1674 1741 dlv@1.1.3: 1675 1742 resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1676 1743 ··· 1891 1958 resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1892 1959 hasBin: true 1893 1960 1961 + glob@11.0.0: 1962 + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} 1963 + engines: {node: 20 || >=22} 1964 + hasBin: true 1965 + 1894 1966 glob@7.2.3: 1895 1967 resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1896 1968 deprecated: Glob versions prior to v9 are no longer supported ··· 2070 2142 jackspeak@3.4.3: 2071 2143 resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 2072 2144 2145 + jackspeak@4.0.2: 2146 + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} 2147 + engines: {node: 20 || >=22} 2148 + 2073 2149 jiti@1.21.6: 2074 2150 resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 2075 2151 hasBin: true ··· 2078 2154 resolution: {integrity: sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==} 2079 2155 hasBin: true 2080 2156 2157 + jose@5.9.6: 2158 + resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==} 2159 + 2081 2160 joycon@3.1.1: 2082 2161 resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 2083 2162 engines: {node: '>=10'} ··· 2138 2217 resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} 2139 2218 hasBin: true 2140 2219 2220 + load-tsconfig@0.2.5: 2221 + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 2222 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2223 + 2141 2224 local-pkg@0.5.1: 2142 2225 resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} 2143 2226 engines: {node: '>=14'} ··· 2151 2234 lodash.isequal@4.5.0: 2152 2235 resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} 2153 2236 2237 + lodash.sortby@4.7.0: 2238 + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2239 + 2154 2240 lodash@4.17.21: 2155 2241 resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2156 2242 ··· 2161 2247 lru-cache@10.4.3: 2162 2248 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 2163 2249 2250 + lru-cache@11.0.2: 2251 + resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} 2252 + engines: {node: 20 || >=22} 2253 + 2164 2254 lru-cache@5.1.1: 2165 2255 resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 2166 2256 ··· 2181 2271 make-dir@3.1.0: 2182 2272 resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 2183 2273 engines: {node: '>=8'} 2274 + 2275 + make-error@1.3.6: 2276 + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 2184 2277 2185 2278 merge-stream@2.0.0: 2186 2279 resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} ··· 2211 2304 mimic-fn@4.0.0: 2212 2305 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2213 2306 engines: {node: '>=12'} 2307 + 2308 + minimatch@10.0.1: 2309 + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} 2310 + engines: {node: 20 || >=22} 2214 2311 2215 2312 minimatch@3.1.2: 2216 2313 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} ··· 2399 2496 resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 2400 2497 engines: {node: '>=16 || 14 >=14.18'} 2401 2498 2499 + path-scurry@2.0.0: 2500 + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} 2501 + engines: {node: 20 || >=22} 2502 + 2402 2503 path-to-regexp@6.3.0: 2403 2504 resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} 2404 2505 ··· 2476 2577 ts-node: 2477 2578 optional: true 2478 2579 2580 + postcss-load-config@6.0.1: 2581 + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} 2582 + engines: {node: '>= 18'} 2583 + peerDependencies: 2584 + jiti: '>=1.21.0' 2585 + postcss: '>=8.0.9' 2586 + tsx: ^4.8.1 2587 + yaml: ^2.4.2 2588 + peerDependenciesMeta: 2589 + jiti: 2590 + optional: true 2591 + postcss: 2592 + optional: true 2593 + tsx: 2594 + optional: true 2595 + yaml: 2596 + optional: true 2597 + 2479 2598 postcss-nested@6.2.0: 2480 2599 resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 2481 2600 engines: {node: '>=12.0'} ··· 2515 2634 pump@3.0.2: 2516 2635 resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} 2517 2636 2637 + punycode@2.3.1: 2638 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2639 + engines: {node: '>=6'} 2640 + 2518 2641 queue-microtask@1.2.3: 2519 2642 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2520 2643 ··· 2622 2745 deprecated: Rimraf versions prior to v4 are no longer supported 2623 2746 hasBin: true 2624 2747 2748 + rimraf@6.0.1: 2749 + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} 2750 + engines: {node: 20 || >=22} 2751 + hasBin: true 2752 + 2625 2753 rollup-plugin-visualizer@5.12.0: 2626 2754 resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} 2627 2755 engines: {node: '>=14'} ··· 2728 2856 resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 2729 2857 engines: {node: '>= 8'} 2730 2858 2859 + source-map@0.8.0-beta.0: 2860 + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 2861 + engines: {node: '>= 8'} 2862 + 2731 2863 split2@4.2.0: 2732 2864 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 2733 2865 engines: {node: '>= 10.x'} ··· 2839 2971 tiny-warning@1.0.3: 2840 2972 resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} 2841 2973 2974 + tinyexec@0.3.1: 2975 + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} 2976 + 2842 2977 tinyglobby@0.2.10: 2843 2978 resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} 2844 2979 engines: {node: '>=12.0.0'} ··· 2854 2989 tr46@0.0.3: 2855 2990 resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2856 2991 2992 + tr46@1.0.1: 2993 + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 2994 + 2995 + tree-kill@1.2.2: 2996 + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 2997 + hasBin: true 2998 + 2857 2999 ts-interface-checker@0.1.13: 2858 3000 resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2859 3001 3002 + ts-node@10.9.2: 3003 + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 3004 + hasBin: true 3005 + peerDependencies: 3006 + '@swc/core': '>=1.2.50' 3007 + '@swc/wasm': '>=1.2.50' 3008 + '@types/node': '*' 3009 + typescript: '>=2.7' 3010 + peerDependenciesMeta: 3011 + '@swc/core': 3012 + optional: true 3013 + '@swc/wasm': 3014 + optional: true 3015 + 2860 3016 tslib@2.8.1: 2861 3017 resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2862 3018 3019 + tsup@8.3.5: 3020 + resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} 3021 + engines: {node: '>=18'} 3022 + hasBin: true 3023 + peerDependencies: 3024 + '@microsoft/api-extractor': ^7.36.0 3025 + '@swc/core': ^1 3026 + postcss: ^8.4.12 3027 + typescript: '>=4.5.0' 3028 + peerDependenciesMeta: 3029 + '@microsoft/api-extractor': 3030 + optional: true 3031 + '@swc/core': 3032 + optional: true 3033 + postcss: 3034 + optional: true 3035 + typescript: 3036 + optional: true 3037 + 2863 3038 tsx@4.19.2: 2864 3039 resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} 2865 3040 engines: {node: '>=18.0.0'} ··· 2989 3164 util-deprecate@1.0.2: 2990 3165 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2991 3166 3167 + v8-compile-cache-lib@3.0.1: 3168 + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 3169 + 2992 3170 vinxi@0.4.3: 2993 3171 resolution: {integrity: sha512-RgJz7RWftML5h/qfPsp3QKVc2FSlvV4+HevpE0yEY2j+PS/I2ULjoSsZDXaR8Ks2WYuFFDzQr8yrox7v8aqkng==} 2994 3172 hasBin: true ··· 3071 3249 webidl-conversions@3.0.1: 3072 3250 resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 3073 3251 3252 + webidl-conversions@4.0.2: 3253 + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 3254 + 3074 3255 webpack-virtual-modules@0.6.2: 3075 3256 resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} 3076 3257 3077 3258 whatwg-url@5.0.0: 3078 3259 resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 3260 + 3261 + whatwg-url@7.1.0: 3262 + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 3079 3263 3080 3264 which@2.0.2: 3081 3265 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} ··· 3131 3315 resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 3132 3316 engines: {node: '>=12'} 3133 3317 3318 + yn@3.1.1: 3319 + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 3320 + engines: {node: '>=6'} 3321 + 3134 3322 zip-stream@6.0.1: 3135 3323 resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} 3136 3324 engines: {node: '>= 14'} ··· 3272 3460 '@cloudflare/kv-asset-handler@0.3.4': 3273 3461 dependencies: 3274 3462 mime: 3.0.0 3463 + 3464 + '@cspotcode/source-map-support@0.8.1': 3465 + dependencies: 3466 + '@jridgewell/trace-mapping': 0.3.9 3275 3467 3276 3468 '@deno/shim-deno-test@0.5.0': {} 3277 3469 ··· 3561 3753 3562 3754 '@esbuild/win32-x64@0.24.0': 3563 3755 optional: true 3756 + 3757 + '@hono/node-server@1.13.7(hono@4.6.12)': 3758 + dependencies: 3759 + hono: 4.6.12 3564 3760 3565 3761 '@ioredis/commands@1.2.0': {} 3566 3762 ··· 3595 3791 '@jridgewell/resolve-uri': 3.1.2 3596 3792 '@jridgewell/sourcemap-codec': 1.5.0 3597 3793 3794 + '@jridgewell/trace-mapping@0.3.9': 3795 + dependencies: 3796 + '@jridgewell/resolve-uri': 3.1.2 3797 + '@jridgewell/sourcemap-codec': 1.5.0 3798 + 3598 3799 '@mapbox/node-pre-gyp@1.0.11': 3599 3800 dependencies: 3600 3801 detect-libc: 2.0.3 ··· 3991 4192 3992 4193 '@tanstack/virtual-file-routes@1.81.9': {} 3993 4194 4195 + '@tsconfig/node10@1.0.11': {} 4196 + 4197 + '@tsconfig/node12@1.0.11': {} 4198 + 4199 + '@tsconfig/node14@1.0.3': {} 4200 + 4201 + '@tsconfig/node16@1.0.4': {} 4202 + 3994 4203 '@types/babel__code-frame@7.0.6': {} 3995 4204 3996 4205 '@types/babel__core@7.20.5': ··· 4159 4368 dependencies: 4160 4369 acorn: 8.14.0 4161 4370 4371 + acorn-walk@8.3.4: 4372 + dependencies: 4373 + acorn: 8.14.0 4374 + 4162 4375 acorn@8.14.0: {} 4163 4376 4164 4377 agent-base@6.0.2: ··· 4222 4435 dependencies: 4223 4436 delegates: 1.0.0 4224 4437 readable-stream: 3.6.2 4438 + 4439 + arg@4.1.3: {} 4225 4440 4226 4441 arg@5.0.2: {} 4227 4442 ··· 4313 4528 base64-js: 1.5.1 4314 4529 ieee754: 1.2.1 4315 4530 4531 + bundle-require@5.0.0(esbuild@0.24.0): 4532 + dependencies: 4533 + esbuild: 0.24.0 4534 + load-tsconfig: 0.2.5 4535 + 4316 4536 c12@2.0.1(magicast@0.3.5): 4317 4537 dependencies: 4318 4538 chokidar: 4.0.1 ··· 4329 4549 rc9: 2.1.2 4330 4550 optionalDependencies: 4331 4551 magicast: 0.3.5 4552 + 4553 + cac@6.7.14: {} 4332 4554 4333 4555 camelcase-css@2.0.1: {} 4334 4556 ··· 4433 4655 crc-32: 1.2.2 4434 4656 readable-stream: 4.5.2 4435 4657 4658 + create-require@1.1.1: {} 4659 + 4436 4660 croner@9.0.0: {} 4437 4661 4438 4662 cross-spawn@7.0.6: ··· 4464 4688 dependencies: 4465 4689 ms: 2.0.0 4466 4690 4691 + debug@4.3.7: 4692 + dependencies: 4693 + ms: 2.1.3 4694 + 4467 4695 debug@4.3.7(supports-color@9.4.0): 4468 4696 dependencies: 4469 4697 ms: 2.1.3 ··· 4492 4720 4493 4721 didyoumean@1.2.2: {} 4494 4722 4723 + diff@4.0.2: {} 4724 + 4495 4725 dlv@1.1.3: {} 4496 4726 4497 4727 dot-prop@9.0.0: ··· 4774 5004 package-json-from-dist: 1.0.1 4775 5005 path-scurry: 1.11.1 4776 5006 5007 + glob@11.0.0: 5008 + dependencies: 5009 + foreground-child: 3.3.0 5010 + jackspeak: 4.0.2 5011 + minimatch: 10.0.1 5012 + minipass: 7.1.2 5013 + package-json-from-dist: 1.0.1 5014 + path-scurry: 2.0.0 5015 + 4777 5016 glob@7.2.3: 4778 5017 dependencies: 4779 5018 fs.realpath: 1.0.0 ··· 4969 5208 optionalDependencies: 4970 5209 '@pkgjs/parseargs': 0.11.0 4971 5210 5211 + jackspeak@4.0.2: 5212 + dependencies: 5213 + '@isaacs/cliui': 8.0.2 5214 + 4972 5215 jiti@1.21.6: {} 4973 5216 4974 5217 jiti@2.4.1: {} 5218 + 5219 + jose@5.9.6: {} 4975 5220 4976 5221 joycon@3.1.1: {} 4977 5222 ··· 5032 5277 untun: 0.1.3 5033 5278 uqr: 0.1.2 5034 5279 5280 + load-tsconfig@0.2.5: {} 5281 + 5035 5282 local-pkg@0.5.1: 5036 5283 dependencies: 5037 5284 mlly: 1.7.3 ··· 5042 5289 lodash.isarguments@3.1.0: {} 5043 5290 5044 5291 lodash.isequal@4.5.0: {} 5292 + 5293 + lodash.sortby@4.7.0: {} 5045 5294 5046 5295 lodash@4.17.21: {} 5047 5296 ··· 5051 5300 5052 5301 lru-cache@10.4.3: {} 5053 5302 5303 + lru-cache@11.0.2: {} 5304 + 5054 5305 lru-cache@5.1.1: 5055 5306 dependencies: 5056 5307 yallist: 3.1.1 ··· 5079 5330 dependencies: 5080 5331 semver: 6.3.1 5081 5332 5333 + make-error@1.3.6: {} 5334 + 5082 5335 merge-stream@2.0.0: {} 5083 5336 5084 5337 merge2@1.4.1: {} ··· 5095 5348 mime@4.0.4: {} 5096 5349 5097 5350 mimic-fn@4.0.0: {} 5351 + 5352 + minimatch@10.0.1: 5353 + dependencies: 5354 + brace-expansion: 2.0.1 5098 5355 5099 5356 minimatch@3.1.2: 5100 5357 dependencies: ··· 5347 5604 lru-cache: 10.4.3 5348 5605 minipass: 7.1.2 5349 5606 5607 + path-scurry@2.0.0: 5608 + dependencies: 5609 + lru-cache: 11.0.2 5610 + minipass: 7.1.2 5611 + 5350 5612 path-to-regexp@6.3.0: {} 5351 5613 5352 5614 path-type@5.0.0: {} ··· 5428 5690 optionalDependencies: 5429 5691 postcss: 8.4.49 5430 5692 5693 + postcss-load-config@6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1): 5694 + dependencies: 5695 + lilconfig: 3.1.3 5696 + optionalDependencies: 5697 + jiti: 2.4.1 5698 + postcss: 8.4.49 5699 + tsx: 4.19.2 5700 + yaml: 2.6.1 5701 + 5431 5702 postcss-nested@6.2.0(postcss@8.4.49): 5432 5703 dependencies: 5433 5704 postcss: 8.4.49 ··· 5461 5732 end-of-stream: 1.4.4 5462 5733 once: 1.4.0 5463 5734 5735 + punycode@2.3.1: {} 5736 + 5464 5737 queue-microtask@1.2.3: {} 5465 5738 5466 5739 queue-tick@1.0.1: {} ··· 5567 5840 rimraf@3.0.2: 5568 5841 dependencies: 5569 5842 glob: 7.2.3 5843 + 5844 + rimraf@6.0.1: 5845 + dependencies: 5846 + glob: 11.0.0 5847 + package-json-from-dist: 1.0.1 5570 5848 5571 5849 rollup-plugin-visualizer@5.12.0(rollup@4.28.0): 5572 5850 dependencies: ··· 5691 5969 5692 5970 source-map@0.7.4: {} 5693 5971 5972 + source-map@0.8.0-beta.0: 5973 + dependencies: 5974 + whatwg-url: 7.1.0 5975 + 5694 5976 split2@4.2.0: {} 5695 5977 5696 5978 standard-as-callback@2.1.0: {} ··· 5832 6114 5833 6115 tiny-warning@1.0.3: {} 5834 6116 6117 + tinyexec@0.3.1: {} 6118 + 5835 6119 tinyglobby@0.2.10: 5836 6120 dependencies: 5837 6121 fdir: 6.4.2(picomatch@4.0.2) ··· 5845 6129 5846 6130 tr46@0.0.3: {} 5847 6131 6132 + tr46@1.0.1: 6133 + dependencies: 6134 + punycode: 2.3.1 6135 + 6136 + tree-kill@1.2.2: {} 6137 + 5848 6138 ts-interface-checker@0.1.13: {} 5849 6139 6140 + ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2): 6141 + dependencies: 6142 + '@cspotcode/source-map-support': 0.8.1 6143 + '@tsconfig/node10': 1.0.11 6144 + '@tsconfig/node12': 1.0.11 6145 + '@tsconfig/node14': 1.0.3 6146 + '@tsconfig/node16': 1.0.4 6147 + '@types/node': 22.10.1 6148 + acorn: 8.14.0 6149 + acorn-walk: 8.3.4 6150 + arg: 4.1.3 6151 + create-require: 1.1.1 6152 + diff: 4.0.2 6153 + make-error: 1.3.6 6154 + typescript: 5.7.2 6155 + v8-compile-cache-lib: 3.0.1 6156 + yn: 3.1.1 6157 + 5850 6158 tslib@2.8.1: {} 5851 6159 6160 + tsup@8.3.5(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.6.1): 6161 + dependencies: 6162 + bundle-require: 5.0.0(esbuild@0.24.0) 6163 + cac: 6.7.14 6164 + chokidar: 4.0.1 6165 + consola: 3.2.3 6166 + debug: 4.3.7 6167 + esbuild: 0.24.0 6168 + joycon: 3.1.1 6169 + picocolors: 1.1.1 6170 + postcss-load-config: 6.0.1(jiti@2.4.1)(postcss@8.4.49)(tsx@4.19.2)(yaml@2.6.1) 6171 + resolve-from: 5.0.0 6172 + rollup: 4.28.0 6173 + source-map: 0.8.0-beta.0 6174 + sucrase: 3.35.0 6175 + tinyexec: 0.3.1 6176 + tinyglobby: 0.2.10 6177 + tree-kill: 1.2.2 6178 + optionalDependencies: 6179 + postcss: 8.4.49 6180 + typescript: 5.7.2 6181 + transitivePeerDependencies: 6182 + - jiti 6183 + - supports-color 6184 + - tsx 6185 + - yaml 6186 + 5852 6187 tsx@4.19.2: 5853 6188 dependencies: 5854 6189 esbuild: 0.23.1 ··· 5972 6307 react: 18.3.1 5973 6308 5974 6309 util-deprecate@1.0.2: {} 6310 + 6311 + v8-compile-cache-lib@3.0.1: {} 5975 6312 5976 6313 vinxi@0.4.3(@types/node@22.10.1)(ioredis@5.4.1)(terser@5.36.0)(typescript@5.7.2): 5977 6314 dependencies: ··· 6140 6477 6141 6478 webidl-conversions@3.0.1: {} 6142 6479 6480 + webidl-conversions@4.0.2: {} 6481 + 6143 6482 webpack-virtual-modules@0.6.2: {} 6144 6483 6145 6484 whatwg-url@5.0.0: 6146 6485 dependencies: 6147 6486 tr46: 0.0.3 6148 6487 webidl-conversions: 3.0.1 6488 + 6489 + whatwg-url@7.1.0: 6490 + dependencies: 6491 + lodash.sortby: 4.7.0 6492 + tr46: 1.0.1 6493 + webidl-conversions: 4.0.2 6149 6494 6150 6495 which@2.0.2: 6151 6496 dependencies: ··· 6198 6543 string-width: 4.2.3 6199 6544 y18n: 5.0.8 6200 6545 yargs-parser: 21.1.1 6546 + 6547 + yn@3.1.1: {} 6201 6548 6202 6549 zip-stream@6.0.1: 6203 6550 dependencies: