social bookmarking for atproto

[appview/indexer] Implement new changes to preexisting Lexicons

hexmani.ac 0c44e3a2 444604ad

verified
+478 -470
+17 -17
backend/package.json
··· 18 18 "node": ">=22.16.0" 19 19 }, 20 20 "dependencies": { 21 - "@atcute/atproto": "^3.1.0", 21 + "@atcute/atproto": "^3.1.1", 22 22 "@atcute/client": "^4.0.3", 23 23 "@atcute/identity": "^1.0.3", 24 24 "@atcute/identity-resolver": "^1.1.3", 25 25 "@atcute/lexicon-doc": "^1.0.3", 26 26 "@atcute/lexicons": "^1.1.0", 27 - "@clipprjs/lexicons": "^0.1.4", 27 + "@clipprjs/lexicons": "^1.0.1", 28 28 "@eslint/eslintrc": "^3.3.1", 29 - "@hono/node-server": "^1.15.0", 30 - "@libsql/client": "^0.15.9", 31 - "@scalar/hono-api-reference": "^0.9.9", 32 - "@scalar/openapi-to-markdown": "^0.2.19", 33 - "@skyware/jetstream": "^0.2.4", 34 - "drizzle-orm": "^0.44.2", 35 - "hono": "^4.8.4", 29 + "@hono/node-server": "^1.17.1", 30 + "@libsql/client": "^0.15.10", 31 + "@scalar/hono-api-reference": "^0.9.11", 32 + "@scalar/openapi-to-markdown": "^0.2.22", 33 + "@skyware/jetstream": "^0.2.5", 34 + "drizzle-orm": "^0.44.3", 35 + "hono": "^4.8.5", 36 36 "toml": "^3.0.0", 37 37 "winston": "^3.17.0", 38 38 "xxhash-wasm": "^1.1.0" 39 39 }, 40 40 "devDependencies": { 41 41 "@atcute/lex-cli": "^2.1.1", 42 - "@eslint/js": "^9.30.1", 43 - "@types/node": "^24.0.12", 44 - "@typescript-eslint/eslint-plugin": "^8.36.0", 45 - "@typescript-eslint/parser": "^8.36.0", 42 + "@eslint/js": "^9.31.0", 43 + "@types/node": "^24.0.15", 44 + "@typescript-eslint/eslint-plugin": "^8.37.0", 45 + "@typescript-eslint/parser": "^8.37.0", 46 46 "drizzle-kit": "^0.31.4", 47 - "eslint": "^9.30.1", 48 - "eslint-config-prettier": "^10.1.5", 47 + "eslint": "^9.31.0", 48 + "eslint-config-prettier": "^10.1.8", 49 49 "eslint-plugin-drizzle": "^0.2.3", 50 50 "eslint-plugin-import": "^2.32.0", 51 - "eslint-plugin-prettier": "^5.5.1", 51 + "eslint-plugin-prettier": "^5.5.3", 52 52 "globals": "^16.3.0", 53 53 "jiti": "^2.4.2", 54 54 "prettier": "^3.6.2", 55 55 "tsx": "^4.20.3", 56 56 "typescript": "^5.8.3", 57 - "typescript-eslint": "^8.36.0" 57 + "typescript-eslint": "^8.37.0" 58 58 } 59 59 }
+398 -404
backend/pnpm-lock.yaml
··· 9 9 .: 10 10 dependencies: 11 11 '@atcute/atproto': 12 - specifier: ^3.1.0 13 - version: 3.1.0 12 + specifier: ^3.1.1 13 + version: 3.1.1 14 14 '@atcute/client': 15 15 specifier: ^4.0.3 16 16 version: 4.0.3 ··· 27 27 specifier: ^1.1.0 28 28 version: 1.1.0 29 29 '@clipprjs/lexicons': 30 - specifier: ^0.1.4 31 - version: 0.1.4 30 + specifier: ^1.0.1 31 + version: 1.0.1 32 32 '@eslint/eslintrc': 33 33 specifier: ^3.3.1 34 34 version: 3.3.1 35 35 '@hono/node-server': 36 - specifier: ^1.15.0 37 - version: 1.15.0(hono@4.8.4) 36 + specifier: ^1.17.1 37 + version: 1.17.1(hono@4.8.5) 38 38 '@libsql/client': 39 - specifier: ^0.15.9 40 - version: 0.15.9 39 + specifier: ^0.15.10 40 + version: 0.15.10 41 41 '@scalar/hono-api-reference': 42 - specifier: ^0.9.9 43 - version: 0.9.9(hono@4.8.4) 42 + specifier: ^0.9.11 43 + version: 0.9.11(hono@4.8.5) 44 44 '@scalar/openapi-to-markdown': 45 - specifier: ^0.2.19 46 - version: 0.2.19(typescript@5.8.3) 45 + specifier: ^0.2.22 46 + version: 0.2.22(typescript@5.8.3) 47 47 '@skyware/jetstream': 48 - specifier: ^0.2.4 49 - version: 0.2.4 48 + specifier: ^0.2.5 49 + version: 0.2.5 50 50 drizzle-orm: 51 - specifier: ^0.44.2 52 - version: 0.44.2(@libsql/client@0.15.9)(bun-types@1.2.17) 51 + specifier: ^0.44.3 52 + version: 0.44.3(@libsql/client@0.15.10)(bun-types@1.2.17) 53 53 hono: 54 - specifier: ^4.8.4 55 - version: 4.8.4 54 + specifier: ^4.8.5 55 + version: 4.8.5 56 56 toml: 57 57 specifier: ^3.0.0 58 58 version: 3.0.0 ··· 67 67 specifier: ^2.1.1 68 68 version: 2.1.1 69 69 '@eslint/js': 70 - specifier: ^9.30.1 71 - version: 9.30.1 70 + specifier: ^9.31.0 71 + version: 9.31.0 72 72 '@types/node': 73 - specifier: ^24.0.12 74 - version: 24.0.12 73 + specifier: ^24.0.15 74 + version: 24.0.15 75 75 '@typescript-eslint/eslint-plugin': 76 - specifier: ^8.36.0 77 - version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 76 + specifier: ^8.37.0 77 + version: 8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 78 78 '@typescript-eslint/parser': 79 - specifier: ^8.36.0 80 - version: 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 79 + specifier: ^8.37.0 80 + version: 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 81 81 drizzle-kit: 82 82 specifier: ^0.31.4 83 83 version: 0.31.4 84 84 eslint: 85 - specifier: ^9.30.1 86 - version: 9.30.1(jiti@2.4.2) 85 + specifier: ^9.31.0 86 + version: 9.31.0(jiti@2.4.2) 87 87 eslint-config-prettier: 88 - specifier: ^10.1.5 89 - version: 10.1.5(eslint@9.30.1(jiti@2.4.2)) 88 + specifier: ^10.1.8 89 + version: 10.1.8(eslint@9.31.0(jiti@2.4.2)) 90 90 eslint-plugin-drizzle: 91 91 specifier: ^0.2.3 92 - version: 0.2.3(eslint@9.30.1(jiti@2.4.2)) 92 + version: 0.2.3(eslint@9.31.0(jiti@2.4.2)) 93 93 eslint-plugin-import: 94 94 specifier: ^2.32.0 95 - version: 2.32.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2)) 95 + version: 2.32.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2)) 96 96 eslint-plugin-prettier: 97 - specifier: ^5.5.1 98 - version: 5.5.1(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2) 97 + specifier: ^5.5.3 98 + version: 5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(prettier@3.6.2) 99 99 globals: 100 100 specifier: ^16.3.0 101 101 version: 16.3.0 ··· 112 112 specifier: ^5.8.3 113 113 version: 5.8.3 114 114 typescript-eslint: 115 - specifier: ^8.36.0 116 - version: 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 115 + specifier: ^8.37.0 116 + version: 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 117 117 118 118 packages: 119 119 120 - '@atcute/atproto@3.1.0': 121 - resolution: {integrity: sha512-aJbDsY7FcIh8APWKAimBtshPwqoRE056tc0UV6vw4TW4e3nYaHedoJmKhlh/k8KQWxyw64MQThNGMaC89HNoTg==} 120 + '@atcute/atproto@3.1.1': 121 + resolution: {integrity: sha512-D+RLTIPF0xLu7BPZY8KSewAPemJFh+3n3zeQ3ROsLxbTtCHbrTDMAmAFexaVRAPGcPYrwXaBUlv7yZjScJolMg==} 122 122 123 - '@atcute/bluesky@3.1.4': 124 - resolution: {integrity: sha512-iSdZGk/UktgKpT/lI0/YxRjM3E5dkd6/vIa2mgH82lgRjI0jH5LJAfLXPyr2mPeZ/qku1gf2/KrkqJ9dfiNxVw==} 123 + '@atcute/bluesky@3.1.5': 124 + resolution: {integrity: sha512-OJO1HOqRZmpSQ2W2QSbgGIk301JUX7rmLV8LYqQGxsbpNJOLNJ8//vcD4Ag4WsxTRm+Z+vEUZ4qWXnNsZlgXXg==} 125 125 126 126 '@atcute/client@4.0.3': 127 127 resolution: {integrity: sha512-RIOZWFVLca/HiPAAUDqQPOdOreCxTbL5cb+WUf5yqQOKIu5yEAP3eksinmlLmgIrlr5qVOE7brazUUzaskFCfw==} ··· 160 160 engines: {node: '>=6.0.0'} 161 161 hasBin: true 162 162 163 - '@babel/types@7.28.0': 164 - resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} 163 + '@babel/types@7.28.1': 164 + resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} 165 165 engines: {node: '>=6.9.0'} 166 166 167 167 '@badrap/valita@0.4.5': 168 168 resolution: {integrity: sha512-4QwGbuhh/JesHRQj79mO/l37PvJj4l/tlAu7+S1n4h47qwaNpZ0WDvIwUGLYUsdi9uQ5UPpiG9wb1Wm3XUFBUQ==} 169 169 engines: {node: '>= 18'} 170 170 171 - '@clipprjs/lexicons@0.1.4': 172 - resolution: {integrity: sha512-p3m4eatuWMYtxB7qR5MxfyPEWv5+DVAavH4H0ZtrGI1Z0OmYs2rSPjb9tesCl3ym+/vEnzEeI2zcWSu2Akd2+Q==} 171 + '@clipprjs/lexicons@1.0.1': 172 + resolution: {integrity: sha512-2vlFTntYj3YuOJyk8L8dVn1uRYq93GwiIZiDDmIRL2Q3tvbZlynYOYJH4mfNBLxS98L7om2kAVbtILMBLRNygg==} 173 173 174 174 '@colors/colors@1.6.0': 175 175 resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} ··· 189 189 resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} 190 190 deprecated: 'Merged into tsx: https://tsx.is' 191 191 192 - '@esbuild/aix-ppc64@0.25.6': 193 - resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==} 192 + '@esbuild/aix-ppc64@0.25.8': 193 + resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} 194 194 engines: {node: '>=18'} 195 195 cpu: [ppc64] 196 196 os: [aix] ··· 201 201 cpu: [arm64] 202 202 os: [android] 203 203 204 - '@esbuild/android-arm64@0.25.6': 205 - resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==} 204 + '@esbuild/android-arm64@0.25.8': 205 + resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} 206 206 engines: {node: '>=18'} 207 207 cpu: [arm64] 208 208 os: [android] ··· 213 213 cpu: [arm] 214 214 os: [android] 215 215 216 - '@esbuild/android-arm@0.25.6': 217 - resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==} 216 + '@esbuild/android-arm@0.25.8': 217 + resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} 218 218 engines: {node: '>=18'} 219 219 cpu: [arm] 220 220 os: [android] ··· 225 225 cpu: [x64] 226 226 os: [android] 227 227 228 - '@esbuild/android-x64@0.25.6': 229 - resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==} 228 + '@esbuild/android-x64@0.25.8': 229 + resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} 230 230 engines: {node: '>=18'} 231 231 cpu: [x64] 232 232 os: [android] ··· 237 237 cpu: [arm64] 238 238 os: [darwin] 239 239 240 - '@esbuild/darwin-arm64@0.25.6': 241 - resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==} 240 + '@esbuild/darwin-arm64@0.25.8': 241 + resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} 242 242 engines: {node: '>=18'} 243 243 cpu: [arm64] 244 244 os: [darwin] ··· 249 249 cpu: [x64] 250 250 os: [darwin] 251 251 252 - '@esbuild/darwin-x64@0.25.6': 253 - resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==} 252 + '@esbuild/darwin-x64@0.25.8': 253 + resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} 254 254 engines: {node: '>=18'} 255 255 cpu: [x64] 256 256 os: [darwin] ··· 261 261 cpu: [arm64] 262 262 os: [freebsd] 263 263 264 - '@esbuild/freebsd-arm64@0.25.6': 265 - resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==} 264 + '@esbuild/freebsd-arm64@0.25.8': 265 + resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} 266 266 engines: {node: '>=18'} 267 267 cpu: [arm64] 268 268 os: [freebsd] ··· 273 273 cpu: [x64] 274 274 os: [freebsd] 275 275 276 - '@esbuild/freebsd-x64@0.25.6': 277 - resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==} 276 + '@esbuild/freebsd-x64@0.25.8': 277 + resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} 278 278 engines: {node: '>=18'} 279 279 cpu: [x64] 280 280 os: [freebsd] ··· 285 285 cpu: [arm64] 286 286 os: [linux] 287 287 288 - '@esbuild/linux-arm64@0.25.6': 289 - resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==} 288 + '@esbuild/linux-arm64@0.25.8': 289 + resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} 290 290 engines: {node: '>=18'} 291 291 cpu: [arm64] 292 292 os: [linux] ··· 297 297 cpu: [arm] 298 298 os: [linux] 299 299 300 - '@esbuild/linux-arm@0.25.6': 301 - resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==} 300 + '@esbuild/linux-arm@0.25.8': 301 + resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} 302 302 engines: {node: '>=18'} 303 303 cpu: [arm] 304 304 os: [linux] ··· 309 309 cpu: [ia32] 310 310 os: [linux] 311 311 312 - '@esbuild/linux-ia32@0.25.6': 313 - resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==} 312 + '@esbuild/linux-ia32@0.25.8': 313 + resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} 314 314 engines: {node: '>=18'} 315 315 cpu: [ia32] 316 316 os: [linux] ··· 321 321 cpu: [loong64] 322 322 os: [linux] 323 323 324 - '@esbuild/linux-loong64@0.25.6': 325 - resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==} 324 + '@esbuild/linux-loong64@0.25.8': 325 + resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} 326 326 engines: {node: '>=18'} 327 327 cpu: [loong64] 328 328 os: [linux] ··· 333 333 cpu: [mips64el] 334 334 os: [linux] 335 335 336 - '@esbuild/linux-mips64el@0.25.6': 337 - resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==} 336 + '@esbuild/linux-mips64el@0.25.8': 337 + resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} 338 338 engines: {node: '>=18'} 339 339 cpu: [mips64el] 340 340 os: [linux] ··· 345 345 cpu: [ppc64] 346 346 os: [linux] 347 347 348 - '@esbuild/linux-ppc64@0.25.6': 349 - resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==} 348 + '@esbuild/linux-ppc64@0.25.8': 349 + resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} 350 350 engines: {node: '>=18'} 351 351 cpu: [ppc64] 352 352 os: [linux] ··· 357 357 cpu: [riscv64] 358 358 os: [linux] 359 359 360 - '@esbuild/linux-riscv64@0.25.6': 361 - resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==} 360 + '@esbuild/linux-riscv64@0.25.8': 361 + resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} 362 362 engines: {node: '>=18'} 363 363 cpu: [riscv64] 364 364 os: [linux] ··· 369 369 cpu: [s390x] 370 370 os: [linux] 371 371 372 - '@esbuild/linux-s390x@0.25.6': 373 - resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==} 372 + '@esbuild/linux-s390x@0.25.8': 373 + resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} 374 374 engines: {node: '>=18'} 375 375 cpu: [s390x] 376 376 os: [linux] ··· 381 381 cpu: [x64] 382 382 os: [linux] 383 383 384 - '@esbuild/linux-x64@0.25.6': 385 - resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==} 384 + '@esbuild/linux-x64@0.25.8': 385 + resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} 386 386 engines: {node: '>=18'} 387 387 cpu: [x64] 388 388 os: [linux] 389 389 390 - '@esbuild/netbsd-arm64@0.25.6': 391 - resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==} 390 + '@esbuild/netbsd-arm64@0.25.8': 391 + resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} 392 392 engines: {node: '>=18'} 393 393 cpu: [arm64] 394 394 os: [netbsd] ··· 399 399 cpu: [x64] 400 400 os: [netbsd] 401 401 402 - '@esbuild/netbsd-x64@0.25.6': 403 - resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==} 402 + '@esbuild/netbsd-x64@0.25.8': 403 + resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} 404 404 engines: {node: '>=18'} 405 405 cpu: [x64] 406 406 os: [netbsd] 407 407 408 - '@esbuild/openbsd-arm64@0.25.6': 409 - resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==} 408 + '@esbuild/openbsd-arm64@0.25.8': 409 + resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} 410 410 engines: {node: '>=18'} 411 411 cpu: [arm64] 412 412 os: [openbsd] ··· 417 417 cpu: [x64] 418 418 os: [openbsd] 419 419 420 - '@esbuild/openbsd-x64@0.25.6': 421 - resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==} 420 + '@esbuild/openbsd-x64@0.25.8': 421 + resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} 422 422 engines: {node: '>=18'} 423 423 cpu: [x64] 424 424 os: [openbsd] 425 425 426 - '@esbuild/openharmony-arm64@0.25.6': 427 - resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==} 426 + '@esbuild/openharmony-arm64@0.25.8': 427 + resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} 428 428 engines: {node: '>=18'} 429 429 cpu: [arm64] 430 430 os: [openharmony] ··· 435 435 cpu: [x64] 436 436 os: [sunos] 437 437 438 - '@esbuild/sunos-x64@0.25.6': 439 - resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==} 438 + '@esbuild/sunos-x64@0.25.8': 439 + resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} 440 440 engines: {node: '>=18'} 441 441 cpu: [x64] 442 442 os: [sunos] ··· 447 447 cpu: [arm64] 448 448 os: [win32] 449 449 450 - '@esbuild/win32-arm64@0.25.6': 451 - resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==} 450 + '@esbuild/win32-arm64@0.25.8': 451 + resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} 452 452 engines: {node: '>=18'} 453 453 cpu: [arm64] 454 454 os: [win32] ··· 459 459 cpu: [ia32] 460 460 os: [win32] 461 461 462 - '@esbuild/win32-ia32@0.25.6': 463 - resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==} 462 + '@esbuild/win32-ia32@0.25.8': 463 + resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} 464 464 engines: {node: '>=18'} 465 465 cpu: [ia32] 466 466 os: [win32] ··· 471 471 cpu: [x64] 472 472 os: [win32] 473 473 474 - '@esbuild/win32-x64@0.25.6': 475 - resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==} 474 + '@esbuild/win32-x64@0.25.8': 475 + resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} 476 476 engines: {node: '>=18'} 477 477 cpu: [x64] 478 478 os: [win32] ··· 495 495 resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} 496 496 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 497 497 498 - '@eslint/core@0.14.0': 499 - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} 500 - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 501 - 502 498 '@eslint/core@0.15.1': 503 499 resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} 504 500 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ··· 507 503 resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 508 504 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 509 505 510 - '@eslint/js@9.30.1': 511 - resolution: {integrity: sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==} 506 + '@eslint/js@9.31.0': 507 + resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==} 512 508 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 513 509 514 510 '@eslint/object-schema@2.1.6': ··· 542 538 peerDependencies: 543 539 vue: ^3.2.0 544 540 545 - '@hono/node-server@1.15.0': 546 - resolution: {integrity: sha512-MjmK4l5N4dQpZ9OSWN0tCj7ejuc7WvuWMzSKtc89bnknJykAeHxzRigXBTYZk85H6Awrii6RM59iUiUluApu2A==} 541 + '@hono/node-server@1.17.1': 542 + resolution: {integrity: sha512-SY79W/C+2b1MyAzmIcV32Q47vO1b5XwLRwj8S9N6Jr5n1QCkIfAIH6umOSgqWZ4/v67hg6qq8Ha5vZonVidGsg==} 547 543 engines: {node: '>=18.14.1'} 548 544 peerDependencies: 549 545 hono: ^4 ··· 575 571 '@hyperjump/json-pointer@1.1.1': 576 572 resolution: {integrity: sha512-M0T3s7TC2JepoWPMZQn1W6eYhFh06OXwpMqL+8c5wMVpvnCKNsPgpu9u7WyCI03xVQti8JAeAy4RzUa6SYlJLA==} 577 573 578 - '@hyperjump/json-schema@1.16.1': 579 - resolution: {integrity: sha512-GCGQCOJMwAUTcCn7eDFOx5G6uOPFLG2O3tv+vMrHJUHwqeFo4GVO03BcsmX/Xy7dfTP4VgucXyoNjrtyoqb5wA==} 574 + '@hyperjump/json-schema@1.16.2': 575 + resolution: {integrity: sha512-MJNvaEFc79+h5rvBPgAJK4OHEUr0RqsKcLC5rc3V9FEsJyQAjnP910deRFoZCE068kX/NrAPPhunMgUMwonPtg==} 580 576 peerDependencies: 581 577 '@hyperjump/browser': ^1.1.0 582 578 ··· 608 604 '@jridgewell/trace-mapping@0.3.29': 609 605 resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} 610 606 611 - '@libsql/client@0.15.9': 612 - resolution: {integrity: sha512-VT3do0a0vwYVaNcp/y05ikkKS3OrFR5UeEf5SUuYZVgKVl1Nc1k9ajoYSsOid8AD/vlhLDB5yFQaV4HmT/OB9w==} 607 + '@libsql/client@0.15.10': 608 + resolution: {integrity: sha512-J9cJQwrgH92JlPBYjUGxPIH5G9z3j/V/aPnQvcmmCgjatdVb/f7bzK3yNq15Phc+gVuKMwox3toXL+58qUMylg==} 613 609 614 - '@libsql/core@0.15.9': 615 - resolution: {integrity: sha512-4OVdeAmuaCUq5hYT8NNn0nxlO9AcA/eTjXfUZ+QK8MT3Dz7Z76m73x7KxjU6I64WyXX98dauVH2b9XM+d84npw==} 610 + '@libsql/core@0.15.10': 611 + resolution: {integrity: sha512-fAMD+GnGQNdZ9zxeNC8AiExpKnou/97GJWkiDDZbTRHj3c9dvF1y4jsRQ0WE72m/CqTdbMGyU98yL0SJ9hQVeg==} 616 612 617 - '@libsql/darwin-arm64@0.5.13': 618 - resolution: {integrity: sha512-ASz/EAMLDLx3oq9PVvZ4zBXXHbz2TxtxUwX2xpTRFR4V4uSHAN07+jpLu3aK5HUBLuv58z7+GjaL5w/cyjR28Q==} 613 + '@libsql/darwin-arm64@0.5.15': 614 + resolution: {integrity: sha512-BD4c4WHUu988PmJCtF1WNKoSmY4nAg4T6ZRaigt6fKY2qlS/+9uSB8LSqIIq3WwqxQm9SuJijMGMKDoH6dEFdA==} 619 615 cpu: [arm64] 620 616 os: [darwin] 621 617 622 - '@libsql/darwin-x64@0.5.13': 623 - resolution: {integrity: sha512-kzglniv1difkq8opusSXM7u9H0WoEPeKxw0ixIfcGfvlCVMJ+t9UNtXmyNHW68ljdllje6a4C6c94iPmIYafYA==} 618 + '@libsql/darwin-x64@0.5.15': 619 + resolution: {integrity: sha512-mw5rRffZQIU0RqmP3KS6HsV+ZuThfX3fxlAbytSmWe1PPrDZgSm1BWmWt0OmYC656TGgAGqTsFnEkV5Dmzv3Jw==} 624 620 cpu: [x64] 625 621 os: [darwin] 626 622 ··· 634 630 '@libsql/isomorphic-ws@0.1.5': 635 631 resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} 636 632 637 - '@libsql/linux-arm-gnueabihf@0.5.13': 638 - resolution: {integrity: sha512-UEW+VZN2r0mFkfztKOS7cqfS8IemuekbjUXbXCwULHtusww2QNCXvM5KU9eJCNE419SZCb0qaEWYytcfka8qeA==} 633 + '@libsql/linux-arm-gnueabihf@0.5.15': 634 + resolution: {integrity: sha512-FPIh8ppymZqV+y8AUNtzzIXGwRH3LEpsFtvp7fuQU+OWOn0INjB7MdlCqyCSyHPFipC5i7Eg9BhSAyRhrvCptQ==} 639 635 cpu: [arm] 640 636 os: [linux] 641 637 642 - '@libsql/linux-arm-musleabihf@0.5.13': 643 - resolution: {integrity: sha512-NMDgLqryYBv4Sr3WoO/m++XDjR5KLlw9r/JK4Ym6A1XBv2bxQQNhH0Lxx3bjLW8qqhBD4+0xfms4d2cOlexPyA==} 638 + '@libsql/linux-arm-musleabihf@0.5.15': 639 + resolution: {integrity: sha512-mPiQ/Vah0cIZ2vMtrbEmQQywIdLCaZJsnWIM5OvBDlRj1QrEsfdHCNH0D0Z+e1+TJIap8+oQZrCmPiBQNHEXlQ==} 644 640 cpu: [arm] 645 641 os: [linux] 646 642 647 - '@libsql/linux-arm64-gnu@0.5.13': 648 - resolution: {integrity: sha512-/wCxVdrwl1ee6D6LEjwl+w4SxuLm5UL9Kb1LD5n0bBGs0q+49ChdPPh7tp175iRgkcrTgl23emymvt1yj3KxVQ==} 643 + '@libsql/linux-arm64-gnu@0.5.15': 644 + resolution: {integrity: sha512-ckyquyUTjCrZlYJw8ijG2XwU3y9xvUtz3kjN4Y1XJxz8dbmH6kYZS+L8RYmOk5E6fe+2CuMZ9XBF8YqOTSJr2w==} 649 645 cpu: [arm64] 650 646 os: [linux] 651 647 652 - '@libsql/linux-arm64-musl@0.5.13': 653 - resolution: {integrity: sha512-xnVAbZIanUgX57XqeI5sNaDnVilp0Di5syCLSEo+bRyBobe/1IAeehNZpyVbCy91U2N6rH1C/mZU7jicVI9x+A==} 648 + '@libsql/linux-arm64-musl@0.5.15': 649 + resolution: {integrity: sha512-P0NWPCogDNig489dOCuQQOSOYS+040yo5nDtPERtsee9mgHL9Qc7QZdmJ/2F8UHumyhW4ETnA9I2dB6CQxUwPA==} 654 650 cpu: [arm64] 655 651 os: [linux] 656 652 657 - '@libsql/linux-x64-gnu@0.5.13': 658 - resolution: {integrity: sha512-/mfMRxcQAI9f8t7tU3QZyh25lXgXKzgin9B9TOSnchD73PWtsVhlyfA6qOCfjQl5kr4sHscdXD5Yb3KIoUgrpQ==} 653 + '@libsql/linux-x64-gnu@0.5.15': 654 + resolution: {integrity: sha512-4/IFOhqwdm8Un3Y14GJNZKgFyRf8ejmrN+tSu5XBGAtDOv2AM3xBrGO5UCd8DUTyUVUI6G6dGEIFwzE8NCXsfg==} 659 655 cpu: [x64] 660 656 os: [linux] 661 657 662 - '@libsql/linux-x64-musl@0.5.13': 663 - resolution: {integrity: sha512-rdefPTpQCVwUjIQYbDLMv3qpd5MdrT0IeD0UZPGqhT9AWU8nJSQoj2lfyIDAWEz7PPOVCY4jHuEn7FS2sw9kRA==} 658 + '@libsql/linux-x64-musl@0.5.15': 659 + resolution: {integrity: sha512-f0Fm7I55ruVtUuGX0Sq8VfcD/MuD8Rag/v8bDlBa5L3cVbjD069SsRy8Nq3Sw9smctC4Zsul7APf09mGLlu/tQ==} 664 660 cpu: [x64] 665 661 os: [linux] 666 662 667 - '@libsql/win32-x64-msvc@0.5.13': 668 - resolution: {integrity: sha512-aNcmDrD1Ws+dNZIv9ECbxBQumqB9MlSVEykwfXJpqv/593nABb8Ttg5nAGUPtnADyaGDTrGvPPP81d/KsKho4Q==} 663 + '@libsql/win32-x64-msvc@0.5.15': 664 + resolution: {integrity: sha512-uAmRXE2tZV+9gg51m54NEvjfP9AKuoZeQLmzTnBylsHxy4VZviWCBz1i4tHSyk75rVOefmfWapBJ5ZdLegmpGg==} 669 665 cpu: [x64] 670 666 os: [win32] 671 667 ··· 687 683 '@phosphor-icons/core@2.1.1': 688 684 resolution: {integrity: sha512-v4ARvrip4qBCImOE5rmPUylOEK4iiED9ZyKjcvzuezqMaiRASCHKcRIuvvxL/twvLpkfnEODCOJp5dM4eZilxQ==} 689 685 690 - '@pkgr/core@0.2.7': 691 - resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} 686 + '@pkgr/core@0.2.9': 687 + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} 692 688 engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 693 689 694 690 '@rtsao/scc@1.1.0': 695 691 resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} 696 692 697 - '@scalar/code-highlight@0.1.5': 698 - resolution: {integrity: sha512-gFTorMvDq91IKf0cV17+UvgGsBichGURsS3qBEo72ihc4yUX207/AT2Obm6kT+ckkIYvXydD6MPapk9rEnCPuA==} 693 + '@scalar/code-highlight@0.1.8': 694 + resolution: {integrity: sha512-SH7gqBVGotf9Hw2srAKd/s854Wjf5lpR4FgAf/l3AlCYC5QXJ4hbj+fk1/3tvzeRFm+wvS6/ah4FuiIzvDPOug==} 699 695 engines: {node: '>=20'} 700 696 701 - '@scalar/components@0.14.16': 702 - resolution: {integrity: sha512-JcF8r93isL+rdTpCccPM8BEdIO17ERTkjNBVviqGHmQ57jXX8c2v1/1HtOz9qez5fE8uEEUJ3KJXUgskeLdWmQ==} 697 + '@scalar/components@0.14.19': 698 + resolution: {integrity: sha512-UvHh7vBiq+2Veo4IP7Ku6xCStTA6H66jjIXwDextTMuaeudZeIz2fh/qcl62o1/yTKJg1hBcL5K08rpF5I6Sqw==} 703 699 engines: {node: '>=20'} 704 700 705 - '@scalar/core@0.3.7': 706 - resolution: {integrity: sha512-Qeq+DfOWxjVHFff9qx0w9gVK6FmgqJtpN3je5C3elKVXNPC/7rxG4BfAuced+SdnogaVzpb9rvvHPblMgsKrwQ==} 701 + '@scalar/core@0.3.9': 702 + resolution: {integrity: sha512-y+IdzpbsEef5Zr3cLoTPQpZ2iay32r0fEJnY4Q8+YtgRJjqWeEdOJMD5EcU6OnlUbtJyhCpdAwlHZLxschrmyA==} 707 703 engines: {node: '>=20'} 708 704 709 705 '@scalar/helpers@0.0.6': 710 706 resolution: {integrity: sha512-VrkpJmEq3zLu0lYFVRplNLA54rZ9rBkiahEI8laVpLnzGl1QilIn2EhxBT9lK7/2jbPprCbTfgnZZv+zHgGYTw==} 711 707 engines: {node: '>=20'} 712 708 713 - '@scalar/hono-api-reference@0.9.9': 714 - resolution: {integrity: sha512-8oJ1xaYVHT3/7Go5FtcZqqsm4NkJL0Jxf3ZipXjoJcvhyiBXyQdXGNnKJVXSci2BhQMqMav6pXzkje8gq74ZAg==} 709 + '@scalar/hono-api-reference@0.9.11': 710 + resolution: {integrity: sha512-9/2Zf856W+QUxYRHN3dTz3op7RNmz1glqEs3nPuiLvg0HWwrwfsUbnFCAQuW0uOAtJQPk/K4vlfNNNBiQzUUDw==} 715 711 engines: {node: '>=20'} 716 712 peerDependencies: 717 713 hono: ^4.0.0 ··· 724 720 resolution: {integrity: sha512-4u2gtyhA119T+HdQ4dVKYzQOCOos5Iaj08C1H2Hi6WW64sTNJaZuh9hpVtY94e0I9feRiCyNEtWvmbOjOAxbTw==} 725 721 engines: {node: '>=20'} 726 722 727 - '@scalar/oas-utils@0.4.11': 728 - resolution: {integrity: sha512-ptekTIpxCczQxP3iXtSpDWEf0nV0nsYJh/b0/wD3krfw6hUAGVqctRTnOuZBQmiVfVeP47NsVavdpG1fiWuZ5Q==} 723 + '@scalar/oas-utils@0.4.14': 724 + resolution: {integrity: sha512-c+lQhL0JuZRyUI7ZtQJjAknhzPBitNPtrk1ItmcumRd6j0m+6jU1Wg+6xpm4eNWzQV0iyhc1f7DtsAvZ+RvwOw==} 729 725 engines: {node: '>=20'} 730 726 731 727 '@scalar/object-utils@1.2.2': ··· 736 732 resolution: {integrity: sha512-xlJRmizgAlYp+pUMVmohL1aNwEpPcwJ/FpsWZsDtIW9esddHJ3Zt5dAG1TDO/jsyDsMJg2Lz28IhNObOzIQpzg==} 737 733 engines: {node: '>=20'} 738 734 739 - '@scalar/openapi-to-markdown@0.2.19': 740 - resolution: {integrity: sha512-o/dbYLmggUllLgVXdAMVJT4Bdxy/MPC2UFlzeJ4hoxBSgvTO1CWr6v61HIBrDn0eqId7PF1V9p+EV1RNtgz/jA==} 735 + '@scalar/openapi-to-markdown@0.2.22': 736 + resolution: {integrity: sha512-/HGIuSkFbDwYMZMLB8cnBFT9jqw7a/lZGgSIHqV2FQl9yvVDlihGVJ/0N3P7EZ5c1OWAN6G0meX6M2ViprXdvg==} 741 737 engines: {node: '>=20'} 742 738 743 - '@scalar/openapi-types@0.3.5': 744 - resolution: {integrity: sha512-/iTUSJMMHVMIFJngeIjTVtU5lwIMNyEIm25e0XtDV0veW6zmIhLsaH2/nwpIgR1iXVyd/uWMyMrtQW329s3c4w==} 739 + '@scalar/openapi-types@0.3.6': 740 + resolution: {integrity: sha512-hkLIgDIQxSgZNYCqNkty2p/V8hjeMf711uT8IKIjNw8oaT/cjT1HC/3V0FVhJ6x2eaufir+WXt5Zqv/iVk5pyQ==} 745 741 engines: {node: '>=20'} 746 742 747 - '@scalar/snippetz@0.4.0': 748 - resolution: {integrity: sha512-smfJ0UiXsHmPOk6k+oAdShAIwZ7LTgK23l/ecTUQVYg0ub4yIadWFqo3cqjpZJ1zF88LLIfiHcthe2iQ1LHzXw==} 743 + '@scalar/snippetz@0.4.2': 744 + resolution: {integrity: sha512-hb3rQw08LAh9ZLaofYlgGC+5RYGBBpb4zRQs36MlofVzZrvzYL5JbhGJdQIhbRFkjOGUM3PAO3AP+4RU+Ioe7A==} 749 745 engines: {node: '>=20'} 750 746 751 - '@scalar/themes@0.13.8': 752 - resolution: {integrity: sha512-qWAOFpLYEVVkQnHFb5js6njFLHwwXVVRC06edthBTtUvaL8HOQexg6bXp2uksCFStm1bb1VYy9UOp8EqEnfN5Q==} 747 + '@scalar/themes@0.13.10': 748 + resolution: {integrity: sha512-B0Lv4MMtC4jaW95P0YtKwvE4kWARUHu+YRpSojyhx3lA6RaKLYvLEeeRdcOOCFdO49e7RiNeQ2YVjdktpW2DAQ==} 753 749 engines: {node: '>=20'} 754 750 755 - '@scalar/types@0.2.7': 756 - resolution: {integrity: sha512-C4sbkqzCeQWYWaOUIQPdVm6g3FhUkcqpVorArApv7WfCEgVn1KLOOYELFMWwCHim2GnrZblVVUPubf0UXjUcLA==} 751 + '@scalar/types@0.2.9': 752 + resolution: {integrity: sha512-rRnu60g5PSahdsCYSR9kFZG5f9rtYBpAsWDih2y67V6enVNpsfP8l4VAgNCXYbQuYjmI+W+mA1llMRdaVp0gNA==} 757 753 engines: {node: '>=20'} 758 754 759 755 '@scalar/use-hooks@0.2.4': ··· 764 760 resolution: {integrity: sha512-u+o77cdTNZ5ePqHPu8ZcFw1BLlISv+cthN0bR1zJHXmqBjvanFTy2kL+Gmv3eW9HxZiHdqycKVETlYd0mWiqJQ==} 765 761 engines: {node: '>=20'} 766 762 767 - '@scalar/workspace-store@0.8.0': 768 - resolution: {integrity: sha512-HFtXNCU/qfY08cXhdd5UhnGbrWS6w6w9RAnNql4O3J0P/MiotMIZiUreCfGbiCVOXCj59ClzeOJIhA8R59Z2OA==} 763 + '@scalar/workspace-store@0.10.1': 764 + resolution: {integrity: sha512-zv+bZPOZbCntOh0P99mEOhHa5M/553Zkc/CIbH8TQqjyQWqCWBkonYWCoAylE+1heJQeeIAfGAhnBYWM6qGQDg==} 769 765 engines: {node: '>=18'} 770 766 771 767 '@sinclair/typebox@0.34.37': 772 768 resolution: {integrity: sha512-2TRuQVgQYfy+EzHRTIvkhv2ADEouJ2xNS/Vq+W5EuuewBdOrvATvljZTxHWZSTYr2sTjTHpGvucaGAt67S2akw==} 773 769 774 - '@skyware/jetstream@0.2.4': 775 - resolution: {integrity: sha512-QA94YMamBnULAHhDLX3DdvDaEkGEIzEmMmN2NPr+J2xKQ/D9NczOe50kBaGmOST4E19w8CR12/y6ykWNOMlE+Q==} 770 + '@skyware/jetstream@0.2.5': 771 + resolution: {integrity: sha512-fM/zs03DLwqRyzZZJFWN20e76KrdqIp97Tlm8Cek+vxn96+tu5d/fx79V6H85L0QN6HvGiX2l9A8hWFqHvYlOA==} 776 772 777 773 '@swc/helpers@0.5.17': 778 774 resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} ··· 809 805 '@types/ms@2.1.0': 810 806 resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} 811 807 812 - '@types/node@22.16.2': 813 - resolution: {integrity: sha512-Cdqa/eJTvt4fC4wmq1Mcc0CPUjp/Qy2FGqLza3z3pKymsI969TcZ54diNJv8UYUgeWxyb8FSbCkhdR6WqmUFhA==} 808 + '@types/node@22.16.5': 809 + resolution: {integrity: sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==} 814 810 815 - '@types/node@24.0.12': 816 - resolution: {integrity: sha512-LtOrbvDf5ndC9Xi+4QZjVL0woFymF/xSTKZKPgrrl7H7XoeDvnD+E2IclKVDyaK9UM756W/3BXqSU+JEHopA9g==} 811 + '@types/node@24.0.15': 812 + resolution: {integrity: sha512-oaeTSbCef7U/z7rDeJA138xpG3NuKc64/rZ2qmUFkFJmnMsAPaluIifqyWd8hSSMxyP9oie3dLAqYPblag9KgA==} 817 813 818 814 '@types/triple-beam@1.3.5': 819 815 resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} ··· 827 823 '@types/ws@8.18.1': 828 824 resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} 829 825 830 - '@typescript-eslint/eslint-plugin@8.36.0': 831 - resolution: {integrity: sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==} 826 + '@typescript-eslint/eslint-plugin@8.37.0': 827 + resolution: {integrity: sha512-jsuVWeIkb6ggzB+wPCsR4e6loj+rM72ohW6IBn2C+5NCvfUVY8s33iFPySSVXqtm5Hu29Ne/9bnA0JmyLmgenA==} 832 828 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 833 829 peerDependencies: 834 - '@typescript-eslint/parser': ^8.36.0 830 + '@typescript-eslint/parser': ^8.37.0 835 831 eslint: ^8.57.0 || ^9.0.0 836 832 typescript: '>=4.8.4 <5.9.0' 837 833 838 - '@typescript-eslint/parser@8.36.0': 839 - resolution: {integrity: sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==} 834 + '@typescript-eslint/parser@8.37.0': 835 + resolution: {integrity: sha512-kVIaQE9vrN9RLCQMQ3iyRlVJpTiDUY6woHGb30JDkfJErqrQEmtdWH3gV0PBAfGZgQXoqzXOO0T3K6ioApbbAA==} 840 836 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 841 837 peerDependencies: 842 838 eslint: ^8.57.0 || ^9.0.0 843 839 typescript: '>=4.8.4 <5.9.0' 844 840 845 - '@typescript-eslint/project-service@8.36.0': 846 - resolution: {integrity: sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==} 841 + '@typescript-eslint/project-service@8.37.0': 842 + resolution: {integrity: sha512-BIUXYsbkl5A1aJDdYJCBAo8rCEbAvdquQ8AnLb6z5Lp1u3x5PNgSSx9A/zqYc++Xnr/0DVpls8iQ2cJs/izTXA==} 847 843 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 848 844 peerDependencies: 849 845 typescript: '>=4.8.4 <5.9.0' 850 846 851 - '@typescript-eslint/scope-manager@8.36.0': 852 - resolution: {integrity: sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==} 847 + '@typescript-eslint/scope-manager@8.37.0': 848 + resolution: {integrity: sha512-0vGq0yiU1gbjKob2q691ybTg9JX6ShiVXAAfm2jGf3q0hdP6/BruaFjL/ManAR/lj05AvYCH+5bbVo0VtzmjOA==} 853 849 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 854 850 855 - '@typescript-eslint/tsconfig-utils@8.36.0': 856 - resolution: {integrity: sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==} 851 + '@typescript-eslint/tsconfig-utils@8.37.0': 852 + resolution: {integrity: sha512-1/YHvAVTimMM9mmlPvTec9NP4bobA1RkDbMydxG8omqwJJLEW/Iy2C4adsAESIXU3WGLXFHSZUU+C9EoFWl4Zg==} 857 853 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 858 854 peerDependencies: 859 855 typescript: '>=4.8.4 <5.9.0' 860 856 861 - '@typescript-eslint/type-utils@8.36.0': 862 - resolution: {integrity: sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==} 857 + '@typescript-eslint/type-utils@8.37.0': 858 + resolution: {integrity: sha512-SPkXWIkVZxhgwSwVq9rqj/4VFo7MnWwVaRNznfQDc/xPYHjXnPfLWn+4L6FF1cAz6e7dsqBeMawgl7QjUMj4Ow==} 863 859 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 864 860 peerDependencies: 865 861 eslint: ^8.57.0 || ^9.0.0 866 862 typescript: '>=4.8.4 <5.9.0' 867 863 868 - '@typescript-eslint/types@8.36.0': 869 - resolution: {integrity: sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==} 864 + '@typescript-eslint/types@8.37.0': 865 + resolution: {integrity: sha512-ax0nv7PUF9NOVPs+lmQ7yIE7IQmAf8LGcXbMvHX5Gm+YJUYNAl340XkGnrimxZ0elXyoQJuN5sbg6C4evKA4SQ==} 870 866 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 871 867 872 - '@typescript-eslint/typescript-estree@8.36.0': 873 - resolution: {integrity: sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==} 868 + '@typescript-eslint/typescript-estree@8.37.0': 869 + resolution: {integrity: sha512-zuWDMDuzMRbQOM+bHyU4/slw27bAUEcKSKKs3hcv2aNnc/tvE/h7w60dwVw8vnal2Pub6RT1T7BI8tFZ1fE+yg==} 874 870 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 875 871 peerDependencies: 876 872 typescript: '>=4.8.4 <5.9.0' 877 873 878 - '@typescript-eslint/utils@8.36.0': 879 - resolution: {integrity: sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==} 874 + '@typescript-eslint/utils@8.37.0': 875 + resolution: {integrity: sha512-TSFvkIW6gGjN2p6zbXo20FzCABbyUAuq6tBvNRGsKdsSQ6a7rnV6ADfZ7f4iI3lIiXc4F4WWvtUfDw9CJ9pO5A==} 880 876 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 881 877 peerDependencies: 882 878 eslint: ^8.57.0 || ^9.0.0 883 879 typescript: '>=4.8.4 <5.9.0' 884 880 885 - '@typescript-eslint/visitor-keys@8.36.0': 886 - resolution: {integrity: sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==} 881 + '@typescript-eslint/visitor-keys@8.37.0': 882 + resolution: {integrity: sha512-YzfhzcTnZVPiLfP/oeKtDp2evwvHLMe0LOy7oe+hb9KKIumLNohYS9Hgp1ifwpu42YWxhZE8yieggz6JpqO/1w==} 887 883 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 888 884 889 885 '@ungap/structured-clone@1.3.0': ··· 1206 1202 resolution: {integrity: sha512-tCPWVZWZqWVx2XUsVpJRnH9Mx0ClVOf5YUHerZ5so1OKSlqww4zy1R5ksEdGRcO3tM3zj0PYN6V48TbQCL1RfA==} 1207 1203 hasBin: true 1208 1204 1209 - drizzle-orm@0.44.2: 1210 - resolution: {integrity: sha512-zGAqBzWWkVSFjZpwPOrmCrgO++1kZ5H/rZ4qTGeGOe18iXGVJWf3WPfHOVwFIbmi8kHjfJstC6rJomzGx8g/dQ==} 1205 + drizzle-orm@0.44.3: 1206 + resolution: {integrity: sha512-8nIiYQxOpgUicEL04YFojJmvC4DNO4KoyXsEIqN44+g6gNBr6hmVpWk3uyAt4CaTiRGDwoU+alfqNNeonLAFOQ==} 1211 1207 peerDependencies: 1212 1208 '@aws-sdk/client-rds-data': '>=3' 1213 1209 '@cloudflare/workers-types': '>=4' ··· 1351 1347 engines: {node: '>=12'} 1352 1348 hasBin: true 1353 1349 1354 - esbuild@0.25.6: 1355 - resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==} 1350 + esbuild@0.25.8: 1351 + resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} 1356 1352 engines: {node: '>=18'} 1357 1353 hasBin: true 1358 1354 ··· 1364 1360 resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1365 1361 engines: {node: '>=12'} 1366 1362 1367 - eslint-config-prettier@10.1.5: 1368 - resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} 1363 + eslint-config-prettier@10.1.8: 1364 + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} 1369 1365 hasBin: true 1370 1366 peerDependencies: 1371 1367 eslint: '>=7.0.0' ··· 1409 1405 '@typescript-eslint/parser': 1410 1406 optional: true 1411 1407 1412 - eslint-plugin-prettier@5.5.1: 1413 - resolution: {integrity: sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==} 1408 + eslint-plugin-prettier@5.5.3: 1409 + resolution: {integrity: sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==} 1414 1410 engines: {node: ^14.18.0 || >=16.0.0} 1415 1411 peerDependencies: 1416 1412 '@types/eslint': '>=8.0.0' ··· 1435 1431 resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 1436 1432 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1437 1433 1438 - eslint@9.30.1: 1439 - resolution: {integrity: sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==} 1434 + eslint@9.31.0: 1435 + resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==} 1440 1436 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1441 1437 hasBin: true 1442 1438 peerDependencies: ··· 1691 1687 highlightjs-vue@1.0.0: 1692 1688 resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} 1693 1689 1694 - hono@4.8.4: 1695 - resolution: {integrity: sha512-KOIBp1+iUs0HrKztM4EHiB2UtzZDTBihDtOF5K6+WaJjCPeaW4Q92R8j63jOhvJI5+tZSMuKD9REVEXXY9illg==} 1690 + hono@4.8.5: 1691 + resolution: {integrity: sha512-Up2cQbtNz1s111qpnnECdTGqSIUIhZJMLikdKkshebQSEBcoUKq6XJayLGqSZWidiH0zfHRCJqFu062Mz5UuRA==} 1696 1692 engines: {node: '>=16.9.0'} 1697 1693 1698 1694 html-minifier-terser@7.2.0: ··· 1913 1909 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1914 1910 engines: {node: '>= 0.8.0'} 1915 1911 1916 - libsql@0.5.13: 1917 - resolution: {integrity: sha512-5Bwoa/CqzgkTwySgqHA5TsaUDRrdLIbdM4egdPcaAnqO3aC+qAgS6BwdzuZwARA5digXwiskogZ8H7Yy4XfdOg==} 1912 + libsql@0.5.15: 1913 + resolution: {integrity: sha512-N1ZhjpTadoxDW8UNssgJyZz+cAX/gi9OxOFHapH8AY6p7Qk/6umTC5UwQ+6bPnACDcxqbzhRlbLO+Mk60owFRA==} 1918 1914 cpu: [x64, arm64, wasm32, arm] 1919 1915 os: [darwin, linux, win32] 1920 1916 ··· 2447 2443 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2448 2444 engines: {node: '>= 0.4'} 2449 2445 2450 - synckit@0.11.8: 2451 - resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} 2446 + synckit@0.11.11: 2447 + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} 2452 2448 engines: {node: ^14.18.0 || >=16.0.0} 2453 2449 2454 2450 tailwind-merge@2.6.0: ··· 2530 2526 resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 2531 2527 engines: {node: '>= 0.4'} 2532 2528 2533 - typescript-eslint@8.36.0: 2534 - resolution: {integrity: sha512-fTCqxthY+h9QbEgSIBfL9iV6CvKDFuoxg6bHPNpJ9HIUzS+jy2lCEyCmGyZRWEBSaykqcDPf1SJ+BfCI8DRopA==} 2529 + typescript-eslint@8.37.0: 2530 + resolution: {integrity: sha512-TnbEjzkE9EmcO0Q2zM+GE8NQLItNAJpMmED1BdgoBMYNdqMhzlbqfdSwiRlAzEK2pA9UzVW0gzaaIzXWg2BjfA==} 2535 2531 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2536 2532 peerDependencies: 2537 2533 eslint: ^8.57.0 || ^9.0.0 ··· 2686 2682 2687 2683 snapshots: 2688 2684 2689 - '@atcute/atproto@3.1.0': 2685 + '@atcute/atproto@3.1.1': 2690 2686 dependencies: 2691 2687 '@atcute/lexicons': 1.1.0 2692 2688 2693 - '@atcute/bluesky@3.1.4': 2689 + '@atcute/bluesky@3.1.5': 2694 2690 dependencies: 2695 - '@atcute/atproto': 3.1.0 2691 + '@atcute/atproto': 3.1.1 2696 2692 '@atcute/lexicons': 1.1.0 2697 2693 2698 2694 '@atcute/client@4.0.3': ··· 2738 2734 2739 2735 '@babel/parser@7.28.0': 2740 2736 dependencies: 2741 - '@babel/types': 7.28.0 2737 + '@babel/types': 7.28.1 2742 2738 2743 - '@babel/types@7.28.0': 2739 + '@babel/types@7.28.1': 2744 2740 dependencies: 2745 2741 '@babel/helper-string-parser': 7.27.1 2746 2742 '@babel/helper-validator-identifier': 7.27.1 2747 2743 2748 2744 '@badrap/valita@0.4.5': {} 2749 2745 2750 - '@clipprjs/lexicons@0.1.4': 2746 + '@clipprjs/lexicons@1.0.1': 2751 2747 dependencies: 2752 - '@atcute/atproto': 3.1.0 2748 + '@atcute/atproto': 3.1.1 2753 2749 '@atcute/lexicons': 1.1.0 2754 2750 2755 2751 '@colors/colors@1.6.0': {} ··· 2772 2768 '@esbuild-kit/core-utils': 3.3.2 2773 2769 get-tsconfig: 4.10.1 2774 2770 2775 - '@esbuild/aix-ppc64@0.25.6': 2771 + '@esbuild/aix-ppc64@0.25.8': 2776 2772 optional: true 2777 2773 2778 2774 '@esbuild/android-arm64@0.18.20': 2779 2775 optional: true 2780 2776 2781 - '@esbuild/android-arm64@0.25.6': 2777 + '@esbuild/android-arm64@0.25.8': 2782 2778 optional: true 2783 2779 2784 2780 '@esbuild/android-arm@0.18.20': 2785 2781 optional: true 2786 2782 2787 - '@esbuild/android-arm@0.25.6': 2783 + '@esbuild/android-arm@0.25.8': 2788 2784 optional: true 2789 2785 2790 2786 '@esbuild/android-x64@0.18.20': 2791 2787 optional: true 2792 2788 2793 - '@esbuild/android-x64@0.25.6': 2789 + '@esbuild/android-x64@0.25.8': 2794 2790 optional: true 2795 2791 2796 2792 '@esbuild/darwin-arm64@0.18.20': 2797 2793 optional: true 2798 2794 2799 - '@esbuild/darwin-arm64@0.25.6': 2795 + '@esbuild/darwin-arm64@0.25.8': 2800 2796 optional: true 2801 2797 2802 2798 '@esbuild/darwin-x64@0.18.20': 2803 2799 optional: true 2804 2800 2805 - '@esbuild/darwin-x64@0.25.6': 2801 + '@esbuild/darwin-x64@0.25.8': 2806 2802 optional: true 2807 2803 2808 2804 '@esbuild/freebsd-arm64@0.18.20': 2809 2805 optional: true 2810 2806 2811 - '@esbuild/freebsd-arm64@0.25.6': 2807 + '@esbuild/freebsd-arm64@0.25.8': 2812 2808 optional: true 2813 2809 2814 2810 '@esbuild/freebsd-x64@0.18.20': 2815 2811 optional: true 2816 2812 2817 - '@esbuild/freebsd-x64@0.25.6': 2813 + '@esbuild/freebsd-x64@0.25.8': 2818 2814 optional: true 2819 2815 2820 2816 '@esbuild/linux-arm64@0.18.20': 2821 2817 optional: true 2822 2818 2823 - '@esbuild/linux-arm64@0.25.6': 2819 + '@esbuild/linux-arm64@0.25.8': 2824 2820 optional: true 2825 2821 2826 2822 '@esbuild/linux-arm@0.18.20': 2827 2823 optional: true 2828 2824 2829 - '@esbuild/linux-arm@0.25.6': 2825 + '@esbuild/linux-arm@0.25.8': 2830 2826 optional: true 2831 2827 2832 2828 '@esbuild/linux-ia32@0.18.20': 2833 2829 optional: true 2834 2830 2835 - '@esbuild/linux-ia32@0.25.6': 2831 + '@esbuild/linux-ia32@0.25.8': 2836 2832 optional: true 2837 2833 2838 2834 '@esbuild/linux-loong64@0.18.20': 2839 2835 optional: true 2840 2836 2841 - '@esbuild/linux-loong64@0.25.6': 2837 + '@esbuild/linux-loong64@0.25.8': 2842 2838 optional: true 2843 2839 2844 2840 '@esbuild/linux-mips64el@0.18.20': 2845 2841 optional: true 2846 2842 2847 - '@esbuild/linux-mips64el@0.25.6': 2843 + '@esbuild/linux-mips64el@0.25.8': 2848 2844 optional: true 2849 2845 2850 2846 '@esbuild/linux-ppc64@0.18.20': 2851 2847 optional: true 2852 2848 2853 - '@esbuild/linux-ppc64@0.25.6': 2849 + '@esbuild/linux-ppc64@0.25.8': 2854 2850 optional: true 2855 2851 2856 2852 '@esbuild/linux-riscv64@0.18.20': 2857 2853 optional: true 2858 2854 2859 - '@esbuild/linux-riscv64@0.25.6': 2855 + '@esbuild/linux-riscv64@0.25.8': 2860 2856 optional: true 2861 2857 2862 2858 '@esbuild/linux-s390x@0.18.20': 2863 2859 optional: true 2864 2860 2865 - '@esbuild/linux-s390x@0.25.6': 2861 + '@esbuild/linux-s390x@0.25.8': 2866 2862 optional: true 2867 2863 2868 2864 '@esbuild/linux-x64@0.18.20': 2869 2865 optional: true 2870 2866 2871 - '@esbuild/linux-x64@0.25.6': 2867 + '@esbuild/linux-x64@0.25.8': 2872 2868 optional: true 2873 2869 2874 - '@esbuild/netbsd-arm64@0.25.6': 2870 + '@esbuild/netbsd-arm64@0.25.8': 2875 2871 optional: true 2876 2872 2877 2873 '@esbuild/netbsd-x64@0.18.20': 2878 2874 optional: true 2879 2875 2880 - '@esbuild/netbsd-x64@0.25.6': 2876 + '@esbuild/netbsd-x64@0.25.8': 2881 2877 optional: true 2882 2878 2883 - '@esbuild/openbsd-arm64@0.25.6': 2879 + '@esbuild/openbsd-arm64@0.25.8': 2884 2880 optional: true 2885 2881 2886 2882 '@esbuild/openbsd-x64@0.18.20': 2887 2883 optional: true 2888 2884 2889 - '@esbuild/openbsd-x64@0.25.6': 2885 + '@esbuild/openbsd-x64@0.25.8': 2890 2886 optional: true 2891 2887 2892 - '@esbuild/openharmony-arm64@0.25.6': 2888 + '@esbuild/openharmony-arm64@0.25.8': 2893 2889 optional: true 2894 2890 2895 2891 '@esbuild/sunos-x64@0.18.20': 2896 2892 optional: true 2897 2893 2898 - '@esbuild/sunos-x64@0.25.6': 2894 + '@esbuild/sunos-x64@0.25.8': 2899 2895 optional: true 2900 2896 2901 2897 '@esbuild/win32-arm64@0.18.20': 2902 2898 optional: true 2903 2899 2904 - '@esbuild/win32-arm64@0.25.6': 2900 + '@esbuild/win32-arm64@0.25.8': 2905 2901 optional: true 2906 2902 2907 2903 '@esbuild/win32-ia32@0.18.20': 2908 2904 optional: true 2909 2905 2910 - '@esbuild/win32-ia32@0.25.6': 2906 + '@esbuild/win32-ia32@0.25.8': 2911 2907 optional: true 2912 2908 2913 2909 '@esbuild/win32-x64@0.18.20': 2914 2910 optional: true 2915 2911 2916 - '@esbuild/win32-x64@0.25.6': 2912 + '@esbuild/win32-x64@0.25.8': 2917 2913 optional: true 2918 2914 2919 - '@eslint-community/eslint-utils@4.7.0(eslint@9.30.1(jiti@2.4.2))': 2915 + '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@2.4.2))': 2920 2916 dependencies: 2921 - eslint: 9.30.1(jiti@2.4.2) 2917 + eslint: 9.31.0(jiti@2.4.2) 2922 2918 eslint-visitor-keys: 3.4.3 2923 2919 2924 2920 '@eslint-community/regexpp@4.12.1': {} ··· 2932 2928 - supports-color 2933 2929 2934 2930 '@eslint/config-helpers@0.3.0': {} 2935 - 2936 - '@eslint/core@0.14.0': 2937 - dependencies: 2938 - '@types/json-schema': 7.0.15 2939 2931 2940 2932 '@eslint/core@0.15.1': 2941 2933 dependencies: ··· 2955 2947 transitivePeerDependencies: 2956 2948 - supports-color 2957 2949 2958 - '@eslint/js@9.30.1': {} 2950 + '@eslint/js@9.31.0': {} 2959 2951 2960 2952 '@eslint/object-schema@2.1.6': {} 2961 2953 ··· 2993 2985 '@tanstack/vue-virtual': 3.13.12(vue@3.5.17(typescript@5.8.3)) 2994 2986 vue: 3.5.17(typescript@5.8.3) 2995 2987 2996 - '@hono/node-server@1.15.0(hono@4.8.4)': 2988 + '@hono/node-server@1.17.1(hono@4.8.5)': 2997 2989 dependencies: 2998 - hono: 4.8.4 2990 + hono: 4.8.5 2999 2991 3000 2992 '@humanfs/core@0.19.1': {} 3001 2993 ··· 3019 3011 3020 3012 '@hyperjump/json-pointer@1.1.1': {} 3021 3013 3022 - '@hyperjump/json-schema@1.16.1(@hyperjump/browser@1.3.1)': 3014 + '@hyperjump/json-schema@1.16.2(@hyperjump/browser@1.3.1)': 3023 3015 dependencies: 3024 3016 '@hyperjump/browser': 1.3.1 3025 3017 '@hyperjump/json-pointer': 1.1.1 ··· 3061 3053 '@jridgewell/resolve-uri': 3.1.2 3062 3054 '@jridgewell/sourcemap-codec': 1.5.4 3063 3055 3064 - '@libsql/client@0.15.9': 3056 + '@libsql/client@0.15.10': 3065 3057 dependencies: 3066 - '@libsql/core': 0.15.9 3058 + '@libsql/core': 0.15.10 3067 3059 '@libsql/hrana-client': 0.7.0 3068 3060 js-base64: 3.7.7 3069 - libsql: 0.5.13 3061 + libsql: 0.5.15 3070 3062 promise-limit: 2.7.0 3071 3063 transitivePeerDependencies: 3072 3064 - bufferutil 3073 3065 - utf-8-validate 3074 3066 3075 - '@libsql/core@0.15.9': 3067 + '@libsql/core@0.15.10': 3076 3068 dependencies: 3077 3069 js-base64: 3.7.7 3078 3070 3079 - '@libsql/darwin-arm64@0.5.13': 3071 + '@libsql/darwin-arm64@0.5.15': 3080 3072 optional: true 3081 3073 3082 - '@libsql/darwin-x64@0.5.13': 3074 + '@libsql/darwin-x64@0.5.15': 3083 3075 optional: true 3084 3076 3085 3077 '@libsql/hrana-client@0.7.0': ··· 3102 3094 - bufferutil 3103 3095 - utf-8-validate 3104 3096 3105 - '@libsql/linux-arm-gnueabihf@0.5.13': 3097 + '@libsql/linux-arm-gnueabihf@0.5.15': 3106 3098 optional: true 3107 3099 3108 - '@libsql/linux-arm-musleabihf@0.5.13': 3100 + '@libsql/linux-arm-musleabihf@0.5.15': 3109 3101 optional: true 3110 3102 3111 - '@libsql/linux-arm64-gnu@0.5.13': 3103 + '@libsql/linux-arm64-gnu@0.5.15': 3112 3104 optional: true 3113 3105 3114 - '@libsql/linux-arm64-musl@0.5.13': 3106 + '@libsql/linux-arm64-musl@0.5.15': 3115 3107 optional: true 3116 3108 3117 - '@libsql/linux-x64-gnu@0.5.13': 3109 + '@libsql/linux-x64-gnu@0.5.15': 3118 3110 optional: true 3119 3111 3120 - '@libsql/linux-x64-musl@0.5.13': 3112 + '@libsql/linux-x64-musl@0.5.15': 3121 3113 optional: true 3122 3114 3123 - '@libsql/win32-x64-msvc@0.5.13': 3115 + '@libsql/win32-x64-msvc@0.5.15': 3124 3116 optional: true 3125 3117 3126 3118 '@neon-rs/load@0.0.4': {} ··· 3139 3131 3140 3132 '@phosphor-icons/core@2.1.1': {} 3141 3133 3142 - '@pkgr/core@0.2.7': {} 3134 + '@pkgr/core@0.2.9': {} 3143 3135 3144 3136 '@rtsao/scc@1.1.0': {} 3145 3137 3146 - '@scalar/code-highlight@0.1.5': 3138 + '@scalar/code-highlight@0.1.8': 3147 3139 dependencies: 3148 3140 hast-util-to-text: 4.0.2 3149 3141 highlight.js: 11.11.1 ··· 3165 3157 transitivePeerDependencies: 3166 3158 - supports-color 3167 3159 3168 - '@scalar/components@0.14.16(typescript@5.8.3)': 3160 + '@scalar/components@0.14.19(typescript@5.8.3)': 3169 3161 dependencies: 3170 3162 '@floating-ui/utils': 0.2.10 3171 3163 '@floating-ui/vue': 1.1.7(vue@3.5.17(typescript@5.8.3)) 3172 3164 '@headlessui/vue': 1.7.23(vue@3.5.17(typescript@5.8.3)) 3173 - '@scalar/code-highlight': 0.1.5 3165 + '@scalar/code-highlight': 0.1.8 3174 3166 '@scalar/icons': 0.4.6(typescript@5.8.3) 3175 - '@scalar/oas-utils': 0.4.11(typescript@5.8.3) 3176 - '@scalar/themes': 0.13.8 3167 + '@scalar/oas-utils': 0.4.14(typescript@5.8.3) 3168 + '@scalar/themes': 0.13.10 3177 3169 '@scalar/use-hooks': 0.2.4(typescript@5.8.3) 3178 3170 '@scalar/use-toasts': 0.8.0(typescript@5.8.3) 3179 3171 '@vueuse/core': 10.11.1(vue@3.5.17(typescript@5.8.3)) ··· 3187 3179 - supports-color 3188 3180 - typescript 3189 3181 3190 - '@scalar/core@0.3.7': 3182 + '@scalar/core@0.3.9': 3191 3183 dependencies: 3192 - '@scalar/types': 0.2.7 3184 + '@scalar/types': 0.2.9 3193 3185 3194 3186 '@scalar/helpers@0.0.6': {} 3195 3187 3196 - '@scalar/hono-api-reference@0.9.9(hono@4.8.4)': 3188 + '@scalar/hono-api-reference@0.9.11(hono@4.8.5)': 3197 3189 dependencies: 3198 - '@scalar/core': 0.3.7 3199 - hono: 4.8.4 3190 + '@scalar/core': 0.3.9 3191 + hono: 4.8.5 3200 3192 3201 3193 '@scalar/icons@0.4.6(typescript@5.8.3)': 3202 3194 dependencies: 3203 3195 '@phosphor-icons/core': 2.1.1 3204 - '@types/node': 22.16.2 3196 + '@types/node': 22.16.5 3205 3197 chalk: 5.4.1 3206 3198 vue: 3.5.17(typescript@5.8.3) 3207 3199 transitivePeerDependencies: ··· 3209 3201 3210 3202 '@scalar/json-diff@0.0.4': {} 3211 3203 3212 - '@scalar/oas-utils@0.4.11(typescript@5.8.3)': 3204 + '@scalar/oas-utils@0.4.14(typescript@5.8.3)': 3213 3205 dependencies: 3214 3206 '@hyperjump/browser': 1.3.1 3215 - '@hyperjump/json-schema': 1.16.1(@hyperjump/browser@1.3.1) 3207 + '@hyperjump/json-schema': 1.16.2(@hyperjump/browser@1.3.1) 3216 3208 '@scalar/helpers': 0.0.6 3217 3209 '@scalar/object-utils': 1.2.2 3218 - '@scalar/openapi-types': 0.3.5 3219 - '@scalar/themes': 0.13.8 3220 - '@scalar/types': 0.2.7 3221 - '@scalar/workspace-store': 0.8.0(typescript@5.8.3) 3210 + '@scalar/openapi-types': 0.3.6 3211 + '@scalar/themes': 0.13.10 3212 + '@scalar/types': 0.2.9 3213 + '@scalar/workspace-store': 0.10.1(typescript@5.8.3) 3222 3214 '@types/har-format': 1.2.16 3223 3215 flatted: 3.3.3 3224 3216 microdiff: 1.5.0 ··· 3246 3238 leven: 4.0.0 3247 3239 yaml: 2.8.0 3248 3240 3249 - '@scalar/openapi-to-markdown@0.2.19(typescript@5.8.3)': 3241 + '@scalar/openapi-to-markdown@0.2.22(typescript@5.8.3)': 3250 3242 dependencies: 3251 - '@scalar/components': 0.14.16(typescript@5.8.3) 3252 - '@scalar/oas-utils': 0.4.11(typescript@5.8.3) 3243 + '@scalar/components': 0.14.19(typescript@5.8.3) 3244 + '@scalar/oas-utils': 0.4.14(typescript@5.8.3) 3253 3245 '@scalar/openapi-parser': 0.18.1 3254 - '@scalar/openapi-types': 0.3.5 3255 - '@scalar/snippetz': 0.4.0 3256 - '@scalar/types': 0.2.7 3246 + '@scalar/openapi-types': 0.3.6 3247 + '@scalar/snippetz': 0.4.2 3248 + '@scalar/types': 0.2.9 3257 3249 html-minifier-terser: 7.2.0 3258 3250 object-to-xml: 2.0.0 3259 3251 rehype-parse: 9.0.1 ··· 3269 3261 - supports-color 3270 3262 - typescript 3271 3263 3272 - '@scalar/openapi-types@0.3.5': 3264 + '@scalar/openapi-types@0.3.6': 3273 3265 dependencies: 3274 3266 zod: 3.24.1 3275 3267 3276 - '@scalar/snippetz@0.4.0': 3268 + '@scalar/snippetz@0.4.2': 3277 3269 dependencies: 3278 - '@scalar/types': 0.2.7 3270 + '@scalar/types': 0.2.9 3279 3271 stringify-object: 5.0.0 3280 3272 3281 - '@scalar/themes@0.13.8': 3273 + '@scalar/themes@0.13.10': 3282 3274 dependencies: 3283 - '@scalar/types': 0.2.7 3275 + '@scalar/types': 0.2.9 3284 3276 nanoid: 5.1.5 3285 3277 3286 - '@scalar/types@0.2.7': 3278 + '@scalar/types@0.2.9': 3287 3279 dependencies: 3288 - '@scalar/openapi-types': 0.3.5 3280 + '@scalar/openapi-types': 0.3.6 3289 3281 nanoid: 5.1.5 3290 3282 zod: 3.24.1 3291 3283 ··· 3309 3301 transitivePeerDependencies: 3310 3302 - typescript 3311 3303 3312 - '@scalar/workspace-store@0.8.0(typescript@5.8.3)': 3304 + '@scalar/workspace-store@0.10.1(typescript@5.8.3)': 3313 3305 dependencies: 3314 - '@scalar/code-highlight': 0.1.5 3306 + '@scalar/code-highlight': 0.1.8 3315 3307 '@scalar/helpers': 0.0.6 3316 3308 '@scalar/json-diff': 0.0.4 3317 3309 '@scalar/openapi-parser': 0.18.1 3318 - '@scalar/openapi-types': 0.3.5 3319 - '@scalar/types': 0.2.7 3310 + '@scalar/openapi-types': 0.3.6 3311 + '@scalar/types': 0.2.9 3320 3312 '@sinclair/typebox': 0.34.37 3321 3313 github-slugger: 2.0.0 3322 3314 vue: 3.5.17(typescript@5.8.3) ··· 3327 3319 3328 3320 '@sinclair/typebox@0.34.37': {} 3329 3321 3330 - '@skyware/jetstream@0.2.4': 3322 + '@skyware/jetstream@0.2.5': 3331 3323 dependencies: 3332 - '@atcute/atproto': 3.1.0 3333 - '@atcute/bluesky': 3.1.4 3324 + '@atcute/atproto': 3.1.1 3325 + '@atcute/bluesky': 3.1.5 3334 3326 '@atcute/lexicons': 1.1.0 3335 3327 partysocket: 1.1.4 3336 3328 tiny-emitter: 2.1.0 ··· 3368 3360 3369 3361 '@types/ms@2.1.0': {} 3370 3362 3371 - '@types/node@22.16.2': 3363 + '@types/node@22.16.5': 3372 3364 dependencies: 3373 3365 undici-types: 6.21.0 3374 3366 3375 - '@types/node@24.0.12': 3367 + '@types/node@24.0.15': 3376 3368 dependencies: 3377 3369 undici-types: 7.8.0 3378 3370 ··· 3384 3376 3385 3377 '@types/ws@8.18.1': 3386 3378 dependencies: 3387 - '@types/node': 24.0.12 3379 + '@types/node': 24.0.15 3388 3380 3389 - '@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': 3381 + '@typescript-eslint/eslint-plugin@8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': 3390 3382 dependencies: 3391 3383 '@eslint-community/regexpp': 4.12.1 3392 - '@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 3393 - '@typescript-eslint/scope-manager': 8.36.0 3394 - '@typescript-eslint/type-utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 3395 - '@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 3396 - '@typescript-eslint/visitor-keys': 8.36.0 3397 - eslint: 9.30.1(jiti@2.4.2) 3384 + '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 3385 + '@typescript-eslint/scope-manager': 8.37.0 3386 + '@typescript-eslint/type-utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 3387 + '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 3388 + '@typescript-eslint/visitor-keys': 8.37.0 3389 + eslint: 9.31.0(jiti@2.4.2) 3398 3390 graphemer: 1.4.0 3399 3391 ignore: 7.0.5 3400 3392 natural-compare: 1.4.0 ··· 3403 3395 transitivePeerDependencies: 3404 3396 - supports-color 3405 3397 3406 - '@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': 3398 + '@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': 3407 3399 dependencies: 3408 - '@typescript-eslint/scope-manager': 8.36.0 3409 - '@typescript-eslint/types': 8.36.0 3410 - '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) 3411 - '@typescript-eslint/visitor-keys': 8.36.0 3400 + '@typescript-eslint/scope-manager': 8.37.0 3401 + '@typescript-eslint/types': 8.37.0 3402 + '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) 3403 + '@typescript-eslint/visitor-keys': 8.37.0 3412 3404 debug: 4.4.1 3413 - eslint: 9.30.1(jiti@2.4.2) 3405 + eslint: 9.31.0(jiti@2.4.2) 3414 3406 typescript: 5.8.3 3415 3407 transitivePeerDependencies: 3416 3408 - supports-color 3417 3409 3418 - '@typescript-eslint/project-service@8.36.0(typescript@5.8.3)': 3410 + '@typescript-eslint/project-service@8.37.0(typescript@5.8.3)': 3419 3411 dependencies: 3420 - '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) 3421 - '@typescript-eslint/types': 8.36.0 3412 + '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3) 3413 + '@typescript-eslint/types': 8.37.0 3422 3414 debug: 4.4.1 3423 3415 typescript: 5.8.3 3424 3416 transitivePeerDependencies: 3425 3417 - supports-color 3426 3418 3427 - '@typescript-eslint/scope-manager@8.36.0': 3419 + '@typescript-eslint/scope-manager@8.37.0': 3428 3420 dependencies: 3429 - '@typescript-eslint/types': 8.36.0 3430 - '@typescript-eslint/visitor-keys': 8.36.0 3421 + '@typescript-eslint/types': 8.37.0 3422 + '@typescript-eslint/visitor-keys': 8.37.0 3431 3423 3432 - '@typescript-eslint/tsconfig-utils@8.36.0(typescript@5.8.3)': 3424 + '@typescript-eslint/tsconfig-utils@8.37.0(typescript@5.8.3)': 3433 3425 dependencies: 3434 3426 typescript: 5.8.3 3435 3427 3436 - '@typescript-eslint/type-utils@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': 3428 + '@typescript-eslint/type-utils@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': 3437 3429 dependencies: 3438 - '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) 3439 - '@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 3430 + '@typescript-eslint/types': 8.37.0 3431 + '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) 3432 + '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 3440 3433 debug: 4.4.1 3441 - eslint: 9.30.1(jiti@2.4.2) 3434 + eslint: 9.31.0(jiti@2.4.2) 3442 3435 ts-api-utils: 2.1.0(typescript@5.8.3) 3443 3436 typescript: 5.8.3 3444 3437 transitivePeerDependencies: 3445 3438 - supports-color 3446 3439 3447 - '@typescript-eslint/types@8.36.0': {} 3440 + '@typescript-eslint/types@8.37.0': {} 3448 3441 3449 - '@typescript-eslint/typescript-estree@8.36.0(typescript@5.8.3)': 3442 + '@typescript-eslint/typescript-estree@8.37.0(typescript@5.8.3)': 3450 3443 dependencies: 3451 - '@typescript-eslint/project-service': 8.36.0(typescript@5.8.3) 3452 - '@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3) 3453 - '@typescript-eslint/types': 8.36.0 3454 - '@typescript-eslint/visitor-keys': 8.36.0 3444 + '@typescript-eslint/project-service': 8.37.0(typescript@5.8.3) 3445 + '@typescript-eslint/tsconfig-utils': 8.37.0(typescript@5.8.3) 3446 + '@typescript-eslint/types': 8.37.0 3447 + '@typescript-eslint/visitor-keys': 8.37.0 3455 3448 debug: 4.4.1 3456 3449 fast-glob: 3.3.3 3457 3450 is-glob: 4.0.3 ··· 3462 3455 transitivePeerDependencies: 3463 3456 - supports-color 3464 3457 3465 - '@typescript-eslint/utils@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': 3458 + '@typescript-eslint/utils@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)': 3466 3459 dependencies: 3467 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) 3468 - '@typescript-eslint/scope-manager': 8.36.0 3469 - '@typescript-eslint/types': 8.36.0 3470 - '@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3) 3471 - eslint: 9.30.1(jiti@2.4.2) 3460 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) 3461 + '@typescript-eslint/scope-manager': 8.37.0 3462 + '@typescript-eslint/types': 8.37.0 3463 + '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) 3464 + eslint: 9.31.0(jiti@2.4.2) 3472 3465 typescript: 5.8.3 3473 3466 transitivePeerDependencies: 3474 3467 - supports-color 3475 3468 3476 - '@typescript-eslint/visitor-keys@8.36.0': 3469 + '@typescript-eslint/visitor-keys@8.37.0': 3477 3470 dependencies: 3478 - '@typescript-eslint/types': 8.36.0 3471 + '@typescript-eslint/types': 8.37.0 3479 3472 eslint-visitor-keys: 4.2.1 3480 3473 3481 3474 '@ungap/structured-clone@1.3.0': {} ··· 3670 3663 3671 3664 bun-types@1.2.17: 3672 3665 dependencies: 3673 - '@types/node': 24.0.12 3666 + '@types/node': 24.0.15 3674 3667 optional: true 3675 3668 3676 3669 call-bind-apply-helpers@1.0.2: ··· 3842 3835 dependencies: 3843 3836 '@drizzle-team/brocli': 0.10.2 3844 3837 '@esbuild-kit/esm-loader': 2.6.5 3845 - esbuild: 0.25.6 3846 - esbuild-register: 3.6.0(esbuild@0.25.6) 3838 + esbuild: 0.25.8 3839 + esbuild-register: 3.6.0(esbuild@0.25.8) 3847 3840 transitivePeerDependencies: 3848 3841 - supports-color 3849 3842 3850 - drizzle-orm@0.44.2(@libsql/client@0.15.9)(bun-types@1.2.17): 3843 + drizzle-orm@0.44.3(@libsql/client@0.15.10)(bun-types@1.2.17): 3851 3844 optionalDependencies: 3852 - '@libsql/client': 0.15.9 3845 + '@libsql/client': 0.15.10 3853 3846 bun-types: 1.2.17 3854 3847 3855 3848 dunder-proto@1.0.1: ··· 3946 3939 is-date-object: 1.1.0 3947 3940 is-symbol: 1.1.1 3948 3941 3949 - esbuild-register@3.6.0(esbuild@0.25.6): 3942 + esbuild-register@3.6.0(esbuild@0.25.8): 3950 3943 dependencies: 3951 3944 debug: 4.4.1 3952 - esbuild: 0.25.6 3945 + esbuild: 0.25.8 3953 3946 transitivePeerDependencies: 3954 3947 - supports-color 3955 3948 ··· 3978 3971 '@esbuild/win32-ia32': 0.18.20 3979 3972 '@esbuild/win32-x64': 0.18.20 3980 3973 3981 - esbuild@0.25.6: 3974 + esbuild@0.25.8: 3982 3975 optionalDependencies: 3983 - '@esbuild/aix-ppc64': 0.25.6 3984 - '@esbuild/android-arm': 0.25.6 3985 - '@esbuild/android-arm64': 0.25.6 3986 - '@esbuild/android-x64': 0.25.6 3987 - '@esbuild/darwin-arm64': 0.25.6 3988 - '@esbuild/darwin-x64': 0.25.6 3989 - '@esbuild/freebsd-arm64': 0.25.6 3990 - '@esbuild/freebsd-x64': 0.25.6 3991 - '@esbuild/linux-arm': 0.25.6 3992 - '@esbuild/linux-arm64': 0.25.6 3993 - '@esbuild/linux-ia32': 0.25.6 3994 - '@esbuild/linux-loong64': 0.25.6 3995 - '@esbuild/linux-mips64el': 0.25.6 3996 - '@esbuild/linux-ppc64': 0.25.6 3997 - '@esbuild/linux-riscv64': 0.25.6 3998 - '@esbuild/linux-s390x': 0.25.6 3999 - '@esbuild/linux-x64': 0.25.6 4000 - '@esbuild/netbsd-arm64': 0.25.6 4001 - '@esbuild/netbsd-x64': 0.25.6 4002 - '@esbuild/openbsd-arm64': 0.25.6 4003 - '@esbuild/openbsd-x64': 0.25.6 4004 - '@esbuild/openharmony-arm64': 0.25.6 4005 - '@esbuild/sunos-x64': 0.25.6 4006 - '@esbuild/win32-arm64': 0.25.6 4007 - '@esbuild/win32-ia32': 0.25.6 4008 - '@esbuild/win32-x64': 0.25.6 3976 + '@esbuild/aix-ppc64': 0.25.8 3977 + '@esbuild/android-arm': 0.25.8 3978 + '@esbuild/android-arm64': 0.25.8 3979 + '@esbuild/android-x64': 0.25.8 3980 + '@esbuild/darwin-arm64': 0.25.8 3981 + '@esbuild/darwin-x64': 0.25.8 3982 + '@esbuild/freebsd-arm64': 0.25.8 3983 + '@esbuild/freebsd-x64': 0.25.8 3984 + '@esbuild/linux-arm': 0.25.8 3985 + '@esbuild/linux-arm64': 0.25.8 3986 + '@esbuild/linux-ia32': 0.25.8 3987 + '@esbuild/linux-loong64': 0.25.8 3988 + '@esbuild/linux-mips64el': 0.25.8 3989 + '@esbuild/linux-ppc64': 0.25.8 3990 + '@esbuild/linux-riscv64': 0.25.8 3991 + '@esbuild/linux-s390x': 0.25.8 3992 + '@esbuild/linux-x64': 0.25.8 3993 + '@esbuild/netbsd-arm64': 0.25.8 3994 + '@esbuild/netbsd-x64': 0.25.8 3995 + '@esbuild/openbsd-arm64': 0.25.8 3996 + '@esbuild/openbsd-x64': 0.25.8 3997 + '@esbuild/openharmony-arm64': 0.25.8 3998 + '@esbuild/sunos-x64': 0.25.8 3999 + '@esbuild/win32-arm64': 0.25.8 4000 + '@esbuild/win32-ia32': 0.25.8 4001 + '@esbuild/win32-x64': 0.25.8 4009 4002 4010 4003 escape-string-regexp@4.0.0: {} 4011 4004 4012 4005 escape-string-regexp@5.0.0: {} 4013 4006 4014 - eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)): 4007 + eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@2.4.2)): 4015 4008 dependencies: 4016 - eslint: 9.30.1(jiti@2.4.2) 4009 + eslint: 9.31.0(jiti@2.4.2) 4017 4010 4018 4011 eslint-import-resolver-node@0.3.9: 4019 4012 dependencies: ··· 4023 4016 transitivePeerDependencies: 4024 4017 - supports-color 4025 4018 4026 - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.30.1(jiti@2.4.2)): 4019 + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)): 4027 4020 dependencies: 4028 4021 debug: 3.2.7 4029 4022 optionalDependencies: 4030 - '@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 4031 - eslint: 9.30.1(jiti@2.4.2) 4023 + '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 4024 + eslint: 9.31.0(jiti@2.4.2) 4032 4025 eslint-import-resolver-node: 0.3.9 4033 4026 transitivePeerDependencies: 4034 4027 - supports-color 4035 4028 4036 - eslint-plugin-drizzle@0.2.3(eslint@9.30.1(jiti@2.4.2)): 4029 + eslint-plugin-drizzle@0.2.3(eslint@9.31.0(jiti@2.4.2)): 4037 4030 dependencies: 4038 - eslint: 9.30.1(jiti@2.4.2) 4031 + eslint: 9.31.0(jiti@2.4.2) 4039 4032 4040 - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2)): 4033 + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2)): 4041 4034 dependencies: 4042 4035 '@rtsao/scc': 1.1.0 4043 4036 array-includes: 3.1.9 ··· 4046 4039 array.prototype.flatmap: 1.3.3 4047 4040 debug: 3.2.7 4048 4041 doctrine: 2.1.0 4049 - eslint: 9.30.1(jiti@2.4.2) 4042 + eslint: 9.31.0(jiti@2.4.2) 4050 4043 eslint-import-resolver-node: 0.3.9 4051 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.30.1(jiti@2.4.2)) 4044 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)) 4052 4045 hasown: 2.0.2 4053 4046 is-core-module: 2.16.1 4054 4047 is-glob: 4.0.3 ··· 4060 4053 string.prototype.trimend: 1.0.9 4061 4054 tsconfig-paths: 3.15.0 4062 4055 optionalDependencies: 4063 - '@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 4056 + '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 4064 4057 transitivePeerDependencies: 4065 4058 - eslint-import-resolver-typescript 4066 4059 - eslint-import-resolver-webpack 4067 4060 - supports-color 4068 4061 4069 - eslint-plugin-prettier@5.5.1(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2): 4062 + eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(prettier@3.6.2): 4070 4063 dependencies: 4071 - eslint: 9.30.1(jiti@2.4.2) 4064 + eslint: 9.31.0(jiti@2.4.2) 4072 4065 prettier: 3.6.2 4073 4066 prettier-linter-helpers: 1.0.0 4074 - synckit: 0.11.8 4067 + synckit: 0.11.11 4075 4068 optionalDependencies: 4076 - eslint-config-prettier: 10.1.5(eslint@9.30.1(jiti@2.4.2)) 4069 + eslint-config-prettier: 10.1.8(eslint@9.31.0(jiti@2.4.2)) 4077 4070 4078 4071 eslint-scope@8.4.0: 4079 4072 dependencies: ··· 4084 4077 4085 4078 eslint-visitor-keys@4.2.1: {} 4086 4079 4087 - eslint@9.30.1(jiti@2.4.2): 4080 + eslint@9.31.0(jiti@2.4.2): 4088 4081 dependencies: 4089 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) 4082 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2)) 4090 4083 '@eslint-community/regexpp': 4.12.1 4091 4084 '@eslint/config-array': 0.21.0 4092 4085 '@eslint/config-helpers': 0.3.0 4093 - '@eslint/core': 0.14.0 4086 + '@eslint/core': 0.15.1 4094 4087 '@eslint/eslintrc': 3.3.1 4095 - '@eslint/js': 9.30.1 4088 + '@eslint/js': 9.31.0 4096 4089 '@eslint/plugin-kit': 0.3.3 4097 4090 '@humanfs/node': 0.16.6 4098 4091 '@humanwhocodes/module-importer': 1.0.1 ··· 4457 4450 4458 4451 highlightjs-vue@1.0.0: {} 4459 4452 4460 - hono@4.8.4: {} 4453 + hono@4.8.5: {} 4461 4454 4462 4455 html-minifier-terser@7.2.0: 4463 4456 dependencies: ··· 4656 4649 prelude-ls: 1.2.1 4657 4650 type-check: 0.4.0 4658 4651 4659 - libsql@0.5.13: 4652 + libsql@0.5.15: 4660 4653 dependencies: 4661 4654 '@neon-rs/load': 0.0.4 4662 4655 detect-libc: 2.0.2 4663 4656 optionalDependencies: 4664 - '@libsql/darwin-arm64': 0.5.13 4665 - '@libsql/darwin-x64': 0.5.13 4666 - '@libsql/linux-arm-gnueabihf': 0.5.13 4667 - '@libsql/linux-arm-musleabihf': 0.5.13 4668 - '@libsql/linux-arm64-gnu': 0.5.13 4669 - '@libsql/linux-arm64-musl': 0.5.13 4670 - '@libsql/linux-x64-gnu': 0.5.13 4671 - '@libsql/linux-x64-musl': 0.5.13 4672 - '@libsql/win32-x64-msvc': 0.5.13 4657 + '@libsql/darwin-arm64': 0.5.15 4658 + '@libsql/darwin-x64': 0.5.15 4659 + '@libsql/linux-arm-gnueabihf': 0.5.15 4660 + '@libsql/linux-arm-musleabihf': 0.5.15 4661 + '@libsql/linux-arm64-gnu': 0.5.15 4662 + '@libsql/linux-arm64-musl': 0.5.15 4663 + '@libsql/linux-x64-gnu': 0.5.15 4664 + '@libsql/linux-x64-musl': 0.5.15 4665 + '@libsql/win32-x64-msvc': 0.5.15 4673 4666 4674 4667 locate-path@6.0.0: 4675 4668 dependencies: ··· 5479 5472 5480 5473 supports-preserve-symlinks-flag@1.0.0: {} 5481 5474 5482 - synckit@0.11.8: 5475 + synckit@0.11.11: 5483 5476 dependencies: 5484 - '@pkgr/core': 0.2.7 5477 + '@pkgr/core': 0.2.9 5485 5478 5486 5479 tailwind-merge@2.6.0: {} 5487 5480 ··· 5527 5520 5528 5521 tsx@4.20.3: 5529 5522 dependencies: 5530 - esbuild: 0.25.6 5523 + esbuild: 0.25.8 5531 5524 get-tsconfig: 4.10.1 5532 5525 optionalDependencies: 5533 5526 fsevents: 2.3.3 ··· 5571 5564 possible-typed-array-names: 1.1.0 5572 5565 reflect.getprototypeof: 1.0.10 5573 5566 5574 - typescript-eslint@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): 5567 + typescript-eslint@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3): 5575 5568 dependencies: 5576 - '@typescript-eslint/eslint-plugin': 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 5577 - '@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 5578 - '@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) 5579 - eslint: 9.30.1(jiti@2.4.2) 5569 + '@typescript-eslint/eslint-plugin': 8.37.0(@typescript-eslint/parser@8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 5570 + '@typescript-eslint/parser': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 5571 + '@typescript-eslint/typescript-estree': 8.37.0(typescript@5.8.3) 5572 + '@typescript-eslint/utils': 8.37.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3) 5573 + eslint: 9.31.0(jiti@2.4.2) 5580 5574 typescript: 5.8.3 5581 5575 transitivePeerDependencies: 5582 5576 - supports-color
+20 -3
backend/src/db/schema.ts
··· 4 4 * SPDX-License-Identifier: AGPL-3.0-only 5 5 */ 6 6 7 - // noinspection Annotator 8 - 9 7 import { int, sqliteTable, text } from "drizzle-orm/sqlite-core"; 10 8 import { sql } from "drizzle-orm"; 11 9 ··· 33 31 createdAt: int("createdAt", { mode: "timestamp_ms" }) 34 32 .notNull() 35 33 .default(sql`(unixepoch() * 1000)`), 34 + indexedAt: int("indexedAt", { mode: "timestamp_ms" }) 35 + .notNull() 36 + .default(sql`(unixepoch() * 1000)`), 36 37 }); 37 38 38 39 export const tagsTable = sqliteTable("tags", { ··· 43 44 did: text("did").notNull(), 44 45 recordKey: text("rkey").notNull(), 45 46 name: text("name").notNull(), 47 + description: text("description"), 46 48 color: text("color"), 47 49 createdAt: int("createdAt", { mode: "timestamp_ms" }) 48 50 .notNull() 49 51 .default(sql`(unixepoch() * 1000)`), 52 + indexedAt: int("indexedAt", { mode: "timestamp_ms" }) 53 + .notNull() 54 + .default(sql`(unixepoch() * 1000)`), 50 55 }); 51 56 52 57 export const usersTable = sqliteTable("profiles", { ··· 54 59 timestamp: int("time_us", { mode: "timestamp_ms" }) 55 60 .notNull() 56 61 .default(sql`(unixepoch() * 1000)`), 57 - did: text("did").notNull(), 62 + did: text("did").notNull().unique(), 58 63 displayName: text("displayName"), 59 64 description: text("description"), 60 65 avatar: text("avatar"), ··· 62 67 .notNull() 63 68 .default(sql`(unixepoch() * 1000)`), 64 69 }); 70 + 71 + export const preferencesTable = sqliteTable("preferences", { 72 + id: int("id").primaryKey({ autoIncrement: true }), 73 + did: text("did").notNull().unique(), 74 + handle: text("handle").notNull(), 75 + publishingScopesPref: text("publishingScopesPref", { mode: "json" }) 76 + .$type<string[]>() 77 + .default(sql`'[]'`), 78 + lastModified: int("lastModified", { mode: "timestamp_ms" }) 79 + .notNull() 80 + .default(sql`(unixepoch() * 1000)`), 81 + });
+34 -18
backend/src/network/commit.ts
··· 38 38 39 39 if (event.commit.record.$type !== "social.clippr.feed.clip") { 40 40 Logger.verbose( 41 - "Invalid type for incoming clip record", 41 + `Mismatched type for incoming clip record (${event.did}/${event.commit.rkey})`, 42 42 event.commit.record, 43 43 ); 44 44 } 45 45 46 46 if (!is(SocialClipprFeedClip.mainSchema, event.commit.record)) { 47 47 Logger.verbose( 48 - "Invalid schema for incoming clip record", 48 + `Invalid schema for incoming clip record (${event.did}/${event.commit.rkey})`, 49 49 event.commit.record, 50 50 ); 51 51 return; ··· 70 70 71 71 if (urlHash !== event.commit.rkey) { 72 72 Logger.verbose( 73 - `Record key hash (${event.commit.rkey}) does not match hash of URL (${urlHash}) in incoming clip record`, 73 + `Record key hash (${event.commit.rkey}) does not match hash of URL (${urlHash}) in incoming clip record (${event.did})`, 74 74 event.commit.record, 75 75 ); 76 76 return; ··· 86 86 timestamp: convertMicroToDate(event.time_us), 87 87 recordKey: event.commit.rkey, 88 88 createdAt: new Date(record.createdAt), 89 + indexedAt: new Date(), 89 90 url: record.url, 90 91 title: record.title, 91 92 description: record.description, ··· 96 97 languages: record.languages, 97 98 }); 98 99 99 - Logger.verbose("Indexed new clip:", event.did, event.commit.rkey); 100 + Logger.verbose(`Indexed new clip: ${event.did}/${event.commit.rkey}`, event); 100 101 } 101 102 102 103 export async function handleTag( ··· 110 111 } // We currently do not handle these. 111 112 112 113 if (event.commit.record.$type !== "social.clippr.feed.tag") { 113 - Logger.verbose("Invalid type for incoming tag record", event.commit.record); 114 + Logger.verbose( 115 + `Mismatched type for incoming tag record (${event.did}/${event.commit.rkey})`, 116 + event.commit.record, 117 + ); 114 118 return; 115 119 } 116 120 117 121 if (!is(SocialClipprFeedTag.mainSchema, event.commit.record)) { 118 122 Logger.verbose( 119 - "Invalid schema for incoming tag record", 123 + `Invalid schema for incoming tag record (${event.did}/${event.commit.rkey})`, 120 124 event.commit.record, 121 125 ); 122 126 return; ··· 127 131 createdAt: event.commit.record.createdAt, 128 132 name: event.commit.record.name, 129 133 color: event.commit.record.color, 134 + description: event.commit.record.description, 130 135 }; 131 136 132 137 if (record.name !== event.commit.rkey) { 133 138 Logger.verbose( 134 - "Record key does not match name of incoming tag record", 139 + `Record key does not match name of incoming tag record (${event.did}/${event.commit.rkey})`, 135 140 event.commit.record, 136 141 ); 137 142 return; ··· 143 148 } 144 149 145 150 await db.insert(tagsTable).values({ 151 + timestamp: convertMicroToDate(event.time_us), 146 152 did: convertDidToString(event.did), 147 - timestamp: convertMicroToDate(event.time_us), 148 153 recordKey: event.commit.rkey, 149 - createdAt: new Date(record.createdAt), 150 154 name: record.name, 155 + description: record.description, 151 156 color: record.color, 157 + createdAt: new Date(record.createdAt), 158 + indexedAt: new Date(), 152 159 }); 153 160 154 - Logger.verbose("Indexed new tag:", event.did, event.commit.rkey); 161 + Logger.verbose(`Indexed new tag: ${event.did}/${event.commit.rkey}`, event); 155 162 } 156 163 157 164 export async function handleProfile( ··· 166 173 167 174 if (event.commit.record.$type !== "social.clippr.actor.profile") { 168 175 Logger.verbose( 169 - "Invalid type for incoming profile record", 176 + `Mismatched type for incoming profile record (${event.did})`, 170 177 event.commit.record, 171 178 ); 172 179 return; ··· 174 181 175 182 if (!is(SocialClipprActorProfile.mainSchema, event.commit.record)) { 176 183 Logger.verbose( 177 - "Invalid schema for incoming profile record", 184 + `Invalid schema for incoming profile record (${event.did})`, 178 185 event.commit.record, 179 186 ); 180 187 return; ··· 190 197 191 198 if (event.commit.rkey !== "self") { 192 199 Logger.verbose( 193 - "Record key of incoming profile record does not match 'self'", 200 + `Record key of incoming profile record does not match 'self' (${event.did})`, 194 201 event.commit.record, 195 202 ); 196 203 return; ··· 199 206 // This needs to be here so the avatar can be recognized as a proper blob. 200 207 if (record.avatar) { 201 208 if (!isBlob(record.avatar)) { 202 - Logger.verbose("Avatar in incoming profile record is not a blob", record); 209 + Logger.verbose( 210 + `Avatar in incoming profile record is not a blob (${event.did})`, 211 + record, 212 + ); 203 213 return; 204 214 } 205 215 206 216 if (record.avatar.mimeType.match(/^image\/(png|jpeg)$/i) === null) { 207 217 Logger.verbose( 208 - "Avatar in incoming profile record is not a PNG or JPEG", 218 + `Avatar in incoming profile record is not a PNG or JPEG (${event.did})`, 209 219 record, 210 220 ); 211 221 return; ··· 213 223 214 224 if (record.avatar.ref?.$link === undefined) { 215 225 Logger.verbose( 216 - "Avatar in incoming profile record has no link to blob", 226 + `Avatar in incoming profile record has no link to blob (${event.did})`, 217 227 record, 218 228 ); 219 229 return; 220 230 } 221 231 222 232 if (record.avatar.size > 1000000) { 223 - Logger.verbose("Avatar in incoming profile record is too large", record); 233 + Logger.verbose( 234 + `Avatar in incoming profile record is too large (${event.did})`, 235 + record, 236 + ); 224 237 return; 225 238 } 226 239 } ··· 239 252 description: record.description, 240 253 }); 241 254 242 - Logger.verbose("Indexed new profile for:", convertDidToString(event.did)); 255 + Logger.verbose( 256 + `Indexed new profile: ${convertDidToString(event.did)}`, 257 + event, 258 + ); 243 259 }
+9 -28
backend/src/network/validator.ts
··· 87 87 return false; 88 88 } 89 89 90 - if (record.name.length < 1) { 91 - Logger.verbose("Name from incoming tag record is too short", record); 92 - } 93 - 94 90 if (record.color) { 95 91 if (record.color.length > 7) { 96 92 Logger.verbose("Color from incoming tag record is too long", record); 97 93 return false; 98 94 } 99 95 100 - if (record.color.length < 4) { 101 - Logger.verbose("Color from incoming tag record is too short", record); 96 + if (!record.color.match("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$")) { 97 + Logger.verbose( 98 + "Invalid hexadecimal color for incoming tag record", 99 + record, 100 + ); 102 101 return false; 103 102 } 103 + } 104 104 105 - if (!record.color.match("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$")) { 105 + if (record.description) { 106 + if (record.description.length > 500) { 106 107 Logger.verbose( 107 - "Invalid hexadecimal color for incoming tag record", 108 + "Description from incoming tag record is too long", 108 109 record, 109 110 ); 110 111 return false; ··· 127 128 return false; 128 129 } 129 130 130 - if (record.url.length < 3) { 131 - Logger.verbose("Too short url from incoming clip record", record); 132 - return false; 133 - } 134 - 135 131 if (record.title.length > 2048) { 136 132 Logger.verbose("Too long title from incoming clip record", record); 137 133 return false; 138 134 } 139 135 140 - if (record.title.length < 1) { 141 - Logger.verbose("Too short title from incoming clip record", record); 142 - return false; 143 - } 144 - 145 136 if (record.description.length > 4096) { 146 137 Logger.verbose("Too long description from incoming clip record", record); 147 138 return false; 148 139 } 149 140 150 - if (record.description.length < 1) { 151 - Logger.verbose("Too short description from incoming clip record", record); 152 - return false; 153 - } 154 - 155 141 if (record.notes) { 156 142 if (record.notes.length > 10000) { 157 143 Logger.verbose("Too long notes from incoming clip record", record); 158 - return false; 159 - } 160 - 161 - if (record.notes.length < 1) { 162 - Logger.verbose("Too short notes from incoming clip record", record); 163 144 return false; 164 145 } 165 146 }